How to COM interfaces work

evilrat via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Mar 18 19:45:48 PDT 2017


On Sunday, 19 March 2017 at 02:04:53 UTC, StarGrazer wrote:
> I have a COM interface that is dynamically created using invoke 
> and such.
>
> One of the functions returns an interface. It is just a value 
> of IUnknown or whatever.
>
> If I use it as a pointer in to the the D interface equivalent, 
> it crashes as the value is not pointing to anything valid.
>
> What do these values represent? I tried to use QueryInterface 
> from the class who's function provides the "COM interface" but 
> it returns interface not supported.
>
> So, I have one dynamic COM interface that I initialize properly 
> and can call it's functions and all the ones I tested work 
> fine. Some of those functions returns interfaces. If I try to 
> call the functions on those interfaces, the app crashes.
>
> How to I get the interfaces the return values represent? Or for 
> that matter, the functions that ask for an interface, what do I 
> pass? Passing or using the generated D interfaces does not work.

I'm sorry, but probably you should read something like this[1] 
first, this tech(COM) is beyond D, so you must understand how it 
works before trying it in D.

[1] 
https://www.codeproject.com/Articles/633/Introduction-to-COM-What-It-Is-and-How-to-Use-It


More information about the Digitalmars-d-learn mailing list