I'm a VB programmer who is trying to convert an old C console application to a C++ ATL COM DLL for use with a VB GUI. Good luck, you'll need I've done async multithreaded programming in VB, and believe me: it's ugly, and for seasoned C++ COM programmers. MS says: "VB clients are monothreaded." Well, you'll face 2 main problems, and I would start learning this topics to acomplish this: - Building a message loop. - Synchronizing Win32 objects: Events - marshalling interface pointers between threads If you fail to use them, your code will hang, or your code will cause a GPF. Tip: You'll need another thread that creates the object and stay forever in a message pump. Furor fit laesa saepius patientia