I have a COM object installed on my machine...



....from 3rd party developers.

This COM object is written to use the STA.

I wanted to pass an interface pointer (IMyInterface* for example) to a
worker thread, so I went to call CoMarshalInterThreadInterfaceInStream(
IID_IMyInterface, ... ) and the HRESULT was "interface not registered", this
made me think that the COM object was missing proxy code or there was a
registration issue, so I looked online for this.

I asked the guys who build the COM object where the proxy/stub code was and
they said the build a separate DLL for that, and that they don't install it
when because nobody has ever used their COM object between two threads.
Now, they let me look at their COM object's IDL file and in that IDL file is
only defined one interface (IMyOtherInterface for example) and they tell me
that the COM object class itself, of course, implements that interface and
also inherits IMyInterface (which is not mentioned in the IDL for the COM
object but is from an IDL project they have elsewhere.)

Now, my concern is that when they give me the proxy/stub code, and I try to
get IMyInterface pointer to marshall, will the IID_IMyInterface be defined
in the proxy/stub DLL?

They won't change the way they build the DLL(s), but they will change the
way they deploy the COM object.
What should I be telling them I need?

I presume that HKCR\Interface will have to have the GUID for IMyInterface
somewhere, correct? If not defined in the COM object's IDL, will it be
packaged up in the proxy as it appears to be in the COM object's DLL (I can
get the interface off of the COM object just fine, but I can't marshall it)?

WTH


.



Relevant Pages

  • Re: I have a COM object installed on my machine...
    ... > I wanted to pass an interface pointer to a ... they let me look at their COM object's IDL file and in that IDL file ... > only defined one interface and they tell ... > also inherits IMyInterface (which is not mentioned in the IDL for the COM ...
    (microsoft.public.vc.atl)
  • Re: Problem marshalling interface pointer into local server
    ... I hope by main you mean the project for the shared IDL, ... Now that would be correct - an Automation-compatible interface ... Further to this, I had an issue where I have a in-proc server, ... Both servers implements IFace and register their ...
    (microsoft.public.vc.atl)
  • Re: Interna einer Automations-App
    ... > dass diese Apps intern CoCreateInstance für ihre eigenen Objekte ... die einen Zeiger auf ein anderes Objekt ... wie es in der IDL steht. ... Wie Du siehst wird in IDispatchImpl, AGCom::Application als Interface ...
    (microsoft.public.de.vc)
  • Re: Why not multiple inheritance in C# and java
    ... "mirror" of the innards of the business objects. ... Windows control type, and that offends me. ... > You can mimic MI by delegating your interface to a class implementing the ... > IMyInterface GetMyInterface() ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Creating multiple instances of objects
    ... declared as an attribute in your IDL hptDBdata interface, ... The compiler may have been confused and failed to ... If you simply want to expose a database schema to the client, ...
    (comp.object.corba)