Essential COM

, . , , - . , , ( Windows) . , . , . , , . ( ), , . (apartment)1. , . : , , . , , .

, ; . , , ; , . , , , , ; , , . .

. , . , (TLS - thread local storage), , . , . , , , , , , . HRESULT (RPC_E_WRONG_THREAD), . , , HRESULT; .

Windows NT 4.0 : ( - multithreaded apartments) (STA - singlethreaded apartments). ; STA. , , STA . , - STA; , , STA, , , - . (affinity) TLS (thread local storage), (locks), ( , Win32 (mutexes)).

, , , . STA , , , . , . , , , . , STA . (coarse-grained) , , STA.

, , , (RTA - rentalthreaded apartment). , RTA . , , RTA, (apartment-wide lock) ( ), . , RTA, . RTA , , . RTA , , . STA , RTA , ; RTA , , . RTA , STA, , RTA . RTA . SDK.

CreateProcess CreateThread, . , - API- .

Windows NT 5.0 . SDK.

 HRESULT CoinitializeEx(void *pvReserved, DWORD dwFlags);  HRESULT Coinitialize(void *pvReserved);  HRESULT OleInitialize(vo1d *pvReserved); 

API- .

CoInitializeEx API- , . , COINIT_MULTITHREADED:

 HRESULT hr = CoInitializeEx(0, COINIT_MULTITHREADED); 

STA COINIT_APARTMENTTHREADED:

 HRESULT hr = CoInitializeEx(0, COINIT_APARTMENTTHREADED); 

, CoInitializeEx COINIT_MULTITHREADED, . , CoIniti lizeEx COINIT_APARTMENTTHREADED, , . CoInitialize , CoInitializeEx COINIT_APARTMENTTHREADED. Olelnitialize CoInitialize, OLE- , OLE Drag and Drop OLE Clipboard. , CoInitialize CoInitializeEx.

API- . S_ . S_FALSE. CoInitialize CoInitializeEx CoUninitialize. OleInitialize OleUninitialize. (uninitialization) :

 void CoUninitialize(void); void OleUninitialize(void); 

, . , CoIniti lizeEx. HRESULT RPC_E_CHANGED_MODE. , CoUninitialize, CoInitializeEx.


1 , (execution context).



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