IDL

IDL

IDL - . IDL , . IDL interface. : , , . :

 [ attribute1, attribute2, ...]  interface IThisInterface : IBaseInterface {    typedef1;    typedef2;    :   :   method1;    method2;  }  

IDL. [object] , -, DCE- . ( IDL- IThisInterface ).

, - , , . , . , , , , , , - . , , , : ICalculator.

- , , . , ICalculator, "ICalculator", . , ICalculator, , , , . , , .

, - , . (Globally Unique Identifiers GUIDs), squids1. GUID , . GUID 128- , , . GUID (Universally Unique Identifiers UUIDs), DCE RPC. GUID - (Interface IDs IIDs). GUID, GUID (Class IDs CLSIDs). , GUID :

 BDA4A270-A1BA-11d0-8C2C-0080C73925BA  

32 128- GUID. GUID .

GUID API- , 128- , :

 HRESULT CoCreateGuid(GUID *pguid);  

, CoCreateGuid, , ( , ). , CoCreateGuid HRESULT, , . CoCreateGuid , , SDK GUIDGEN.EXE. . 2.3 GUIDGEN. GUIDGEN CoCreateGuid GUID , C++ IDL. IDL ( ).

 . 2.3. guidgen

IDL, [uuid]. [uuid] GUID:

 [object, uuid(BDA4A270-A1BA-11dO-8C2C-0080C73925BA)]  interface ICalculator : IBaseInterface {   HRESULT Clear(void);   HRESULT Add([in] long n);   HRESULT Sum([out, retval] long *pn);  }  

C++ IID , IID_. , ICalculator IID, , IDL IID_ICalculator. C++.

C++ 128- , - 128- GUID IID CLSID :

 typedef struct _GUID {      DWORD Data1;     WORD Data2;     WORD Data3;     BYTE Data4[8]; } GUID;  typedef GUID IID;  typedef GUID CLSID;  

GUID , , GUID, . GUID (constant reference aliases) GUID:

 #define REFGUID const GUID&  #define REFIID const IID&  #define REFCLSID const CLSID&  

GUID, == != GUID:

 inline BOOL IsEqualGUID(REFGUID r1, REFGUID r2)  {      return !memcmp(&r1, &r2, sizeof(GUID));  }  #def1ne IsEqualIID(r1, r2) IsEqualGUID((r1) , (r2))  #define IsEqualCLSID(r1, r2) IsEqualGUID((r1), (r2))  inline BOOL operator == (REFGUID r1, REFGUID r2)  {      return !memcmp(&r1, &r2, sizeof(GUID));  }  inline BOOL operator != (REFGUID r1, REFGUID r2)  {      return !(r1 == r2);  }  

SDK , , .

, GUID, ; , Dynamic_Cast, , . , I tensibleObject IUnknown, .


1 GUID . , GUID fluid ( ), squid ( ), , , languid ( )



Suschnost' tehnologii SOM
Essential COM
ISBN: 0201634465
EAN: 2147483647
Year: N/A
Pages: 103
Authors: Don Box

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net