Multi-Threaded Issues

OLE provides support for multithreaded applications, allowing applications to make OLE calls from multiple threads. This multithreaded support is called the apartment model, it is important that all OLE components using multiple threads follow this model. The apartment model requires that interface pointers are marshaled (using CoMarshalInterface, and CoUnmarshalInterface) when passed between threads.

Processes, Threads, and Apartments