STA, debugging and testing



  •  So I have a COM object (written by me in C#) which I am consuming in a MFC unmanaged C++ app.

     I was passing a ptr to the COM object between threads, which I learned the hard way is not allowed due to the way STA works w/ the Message pump.  Thats fixed.  It leaves me wondering what other parts of the COM contract I'm disobeying due to ignorance.

    I read that I need a message pump in my COM object.  I find this kind of hard to believe, and nothing seems broken.  How does one go about testing a COM object?  Even though I was passing the ptr between threads the app didn't crash every time, so whats the right way to test this suff?

    Does a COM object in C# need to be in a strong-named assembly?

    Also, what's the right way to destroy a created COM object?  Just delete the pointer to it?



  • @Eric Shinn said:

    Also, what's the right way to destroy a created COM object?  Just delete
    the pointer to it?

    COM objects are freed by <font face="Courier New">IUnknown::Release()</font>.


Log in to reply