Essential COM

, , . IDL (Interface Definition Language ) , . IDL- - IApe:

[object, uuid(753A8A7C-A7FF-11d0-8C30-0080C73925BA)] interface IApe : Unknown { import "unknwn.idl"; HRESULT EatBanana(void); HRESULT SwingFromTree(void); [propget] HRESULT Weight([out, retval] long *plbs); }

IApe : EatBanana, SwingFromTree Weight. , I QueryInterface, , I . . , , , , . - .

I . ( ), I . I , , EatBanana, , , ( I ), ( ) . .

, . . , . , , , - , (coclasses).

- , . - , - GUID (globally unique identifier ), GUID - , CLSID. , , . - , . . , - , , , 1.

, CLSID, , (programmatic identifiers), ProgID. ProgID libraryname.classname.version , CLSID, . ProgID CLSID API- CLSIDFromProgID ProgIDFromCLSID:

HRESULT CLSIDFromProgID([in, string] const OLECHAR *pwszProgID, [out] CLSID *pclsid); HRESULT ProgIDFromCLSID([in] REFCLSID rclsid, [out, string] OLECHAR **ppwszProgID);

ProgID CLSID CLSIDFromProgID:

HRESULT GetGorillaCLSID(CLSID& rclsid) { const OLECHAR wszProgID[] = OLESTR("Apes.Gorilla.1"); return CLSIDFromProgID(wszProgID, &rclsid); }

ProgID Apes.Gorilla.1 CLSID, .


1 " " , , , , . , (taxonomy) (component categories). , , , , , , .

Категории