Ну, я сам на это отвечу
На самом деле это можно сделать тремя способами.В одном случае я опишу.
с использованием CComGitPtr из atlbase.h
Сделайте так:
CComGitPtr GitPtrName (указатель на инициализированный интерфейс)
Теперь извлеките файл cookie из DWORD. DwCokie = GitPtrName-> Detach ();
Теперь передайте файл cookie как содержимое структуры (необязательно) внутри рабочего потока.
Как только вы окажетесь внутри рабочего потока, извлеките файл cookie, вызовите CoInitilize и создайте экземпляр указателя требуемого интерфейса.
как COMInterfacethatneedMarshalling pReqd.
Теперь передайте файл cookie git в таблицу GI и получитемаршалированный COM-объект.
как:
// This is done inide the thread
// retrieve the passed cookie as dwCookie
CComGITPtr<COMInterfacethatneedMarshalling
pToGITTest (dwCookie);COMInterfacethatneedMarshalling pReqd;pToGITTest.CopyTo (& pReqd);
Now we have pToGITTest inside the thread, fully marshalled, go ahead and enjoy!
Спасибо.