. . , (concurrency constraints), , , , . , - , - , , , . , , , .
, , . API- , , API- , , . , . : , - , , , , . (proxy).
, . . , , , , . , API- , , .
, . 6 , CoInitializeEx . , CoInitializeEx . , CLSID (threading model), ThreadingModel:
[HKCR\CLSID\ {96556310-D779-11d0-8C4F-0080C73925BA}\InprocServer32] @="C:\racer.dll" ThreadingModel="Free"
CLSID DLL ThreadingModel. Windows NT 4.0 ThreadingModel CLSID. ThreadingModel="Both" , , STA. ThreadingModel="Free" , . ThreadingModel="Apartment" , STA. ThreadingModel , STA. STA STA, .
CLSID, CLSID . , , , 1. , CLSID, CLSID , . , STA- ThreadingModel="Free", ( ) . , MTA- ThreadingModel="Apartment", ( ) STA, . , STA, ( ) STA . STA, . . STA ( CoIniti lizeEx COINIT_APARTMENTTHREADED), STA , STA .
, , , , DLL , STA- . , , , ( ) . , , . , . , , InterlockedIncrement / InterlockedDecrement, 3. .
, ThreadingModel= "Apartment", , . , , , , . , ThreadingModel="Free" ThreadingModel="Both" , , . , , . , . , , , , , InterlockedIncrement/InterlockedDecrement, 2. .
, , ThreadingModel="Free", STA. , , - STA. , STA, , . ThreadingModel="Both" STA- , STA. , ( ) , , . , ThreadingModel="Free", STA , . , , STA, , , . , , STA. , . , , .
1 - , , .