Sorry, it took so long to get back to you, I don't visit the site every day. The reason I suggested that you consider how you want the 'function pointer' to be marshaled is that the COM Library is designed to use the RPC mechanism and a proxy/stub architecture to interact with other COM components, whether in the same process, in another thread in the same process, or even another process on a remote machine. I have no way of knowing how aware you are of COM internals,...so, I don't make any assumptions. The COM Library performs many operations that are invisible to the programmer when you make an activation request (for instance, CoCreateInstance or DllGetClassObject), depending on the server registration and how you configure your apartments. If it's an In-Process Server, you could, hypothetically, pass a 'function pointer' to another DLL in the same process, and the address would be accessible. In practice, this is a really dumb idea. The obvious question is: why not call the method directly? If the Com DLL is in another process address space, any virtual function pointer will be invalid (this will be true even if it's NOT a COM Dll). I'm assuming that you konw all this. Your question provides the very minimum of information, making it difficult to answer accurately. ...So, what's your point? If you want to define a 'function pointer', go ahead.