Essential COM

, . C++, . , IDL - IDL- . MIDL , (Network Data Representation NDR), - . NDR , , . NDR C . , MIDL CoMarshalInterface / CoUnmarshalInterface . :

 HRESULT Method([out] IRacer **ppRacer); 

ppRacer IID IRacer (IID_IRacer) CoMarshalInterface / CoUnmarshalInterface. :

 HRESULT Method([in] REFIID riid, [out, iid_is(riid)] void **ppv); 

, IID, .

MIDL , library. -IDL

 // sports.idl //    .      [local, object] interface IBoxer : IUnknown { ... } [object] interface IRacer : IUnknown { ... } [object] interface ISwimmer : IUnknown { ... } [helpstring("Sports Lib")] library SportsLibrary {     interface IRacer; // include def. of IRacer in TLB  //     IRacer       TLB [object] interface IWrestler : IUnknown { ... }  } 
IRacer ISwimmer . MIDL IBoxer, [local] . MIDL IWrestler, .

MIDL IDL , . sports.h / ++- , sports_i. - IID LIBID, a sports.tlb (tokenized) IDL IRacer IWrestler, , . sports_p.c , NDR. - (vtable) MIDL. , (DllGetClassObject ) . dlldata.c.

, (makefile), - (sports_i. , sports_p.c, dlldata.c) DLL. , . , dlldata.c DllGetClassObject DllCanUnloadNow. , RPC Windows NT 3.50 . Windows NT 3.51 ( Windows 95), - REGISTER_PROXY_DLL dlldata.c, . / .

Windows NT 4.0 (interpretive) . (working set). . Microsoft Transaction Server (MTS) 1. , MIDL /Oicf :

 midl.exe /0icf sports.idl 

, , MIDL _p.c, . , /Oicf, Windows NT 4.0, - _WIN32_WINNT , 0 400. - .

. , VARIANT2, . [oleautomation] :

 [ uuid(F99D19A3-D8BA-11d0-8C4F-0080C73925BA), version(1.0)]  library SportsLib {     importlib("stdole32.tlb");     [      uuid(F99D1907-D8BA-11D0-8C4F-0080C73925BA), object,      oleautomation      ]     interface IWrestler : IUnknown {          import "oaidl.idl";         HRESULT HalfNelson([in] double nmsec);     }  } 

[oleautomation] RegisterTypeLib, :

 [HKCR\Interface\{F99D1907-D8BA-11d0-8C4F-0080C73925BA}] @="IWrestler" [HKCR\Interface\{F99D1907-D8BA-11d0-8C4F-0080C73925BA}\ProxyStubClsid32]  @="{O0020424-0000-0000-C000-000000000046}" [HKCR\Interface\{F99D1907-D8BA-11d0-8C4F-0080C73925BA}\ProxyStubClsid]  @="{O0020424-0000-0000-C000-000000000046}" [HKCR\Interface\{F99D1907-D8BA-11d0-8C4F-0080C73925BA}\TypeLib] @="{F99D19A -08BA-11d0-8C4F-0080C73925BA}" Version="1.0" 

CLSID {O0020424-0000-0000-C000-000000000046} , , , 16- Windows.

, 16- 32- . , Microsoft Transaction Server. : - , , DLL . . , , 3. Windows NT 4.0 CoMarshalInterface / CoUnmarshalInterface . /0icf- .


1 MTS , . MTS .

2 Variants - , (scripting environments) 2.

3 , . .



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