У меня вопрос по маршалингу потоков.
В главном файле проекта делаю так:
CODE>
var
MAPIInbox:MAPIFolder;
OutlookApplication1:TOutlookApplication;
NameSpace1:TNameSpace;
OutlookPointer,NmSpacePointer:Pointer;
..........
CoInitializeEx(nil,COINIT_APARTMENTTHREADED);
OutlookApplication1.Connect;
CoMarshalInterThreadInterfaceInStream(IDispatch, OutlookApplication1, IStream(OutlookPointer));
NameSpace1.ConnectTo(OutlookApplication1.GetNamespace('MAPI'));
CoMarshalInterThreadInterfaceInStream(IDispatch, NameSpace1, IStream(NmSpacePointer));
MAPIInbox:=NameSpace1.GetDefaultfolder(olFolderInbox);
CoMarshalInterThreadInterfaceInStream(IDispatch, MAPIInbox, IStream(InboxPointer));
MAPIInbox.UnreadItemcount//(1)например,2 непрочтенных письма
MyThread:=Thread.Create(true);
MyThread.Resume;
В методе Execute этого потока пишу:
CoInitializeEx(nil,COINIT_APARTMENTTHREADED);
CoGetInterfaceAndReleaseStream(Istream(InboxPointer),IDispatch, MAPIInbox);
MAPIInbox.UnreadItemCount
...........
Counitialize;
И адреса у переменной MAPIInbox получаются разные в местах 1 и 2.
Подскажите, пожалуйста, что я не так делаю..