|
-
June 13th, 2011, 09:52 AM
#1
64-bit COM, can't obtain an interface
I have a server that exposes a COM interface which I am trying to convert to 64-bit. I am having trouble getting an interface from the 64-bit version, however, and I don't understand why.
When I call QueryInterface with my IID, I can see that the request is handled on the server side, a valid pointer is passed back, and the return is S_OK. On the client side, though, I receive E_NOINTERFACE and a null pointer. However, if I query for IUnknown or IConnectionPointContainer I get a good pointer. So it seems to be OK with the interfaces defined by Windows, but not the ones defined by me.
I've tried using CoCreateInstanceEx with the MULTI_QI structure requesting my interface directly, and I've tried getting IUnknown first, then calling QueryInterface to get my interface. Both result in the same E_NOINTERFACE.
I don't understand how my server can be returning the right data, but the client gets E_NOINTERFACE.
-
June 13th, 2011, 10:35 AM
#2
Re: 64-bit COM, can't obtain an interface
Did you build and register proxy/stub DLL for your interfaces?
If you are going to use your COM server with both 32-bit and 64-bit applications, you need to build and register both 32-bit and 64-bit proxy/stub DLL for your interfaces.
-
June 13th, 2011, 10:51 AM
#3
Re: 64-bit COM, can't obtain an interface
Now that you mention it... probably not. I'm relying on some 3rd party libraries for some of these interfaces. I'd forgotten all about the proxies, and I'm sure they don't have a 64-bit version.
Thanks, I think you've got me looking in the right direction now!
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|