How to COM interfaces work

StarGrazer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Mar 18 20:19:25 PDT 2017


On Sunday, 19 March 2017 at 02:45:48 UTC, evilrat wrote:
> 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

Reading that tells me nothing about how to get a dynamic COM 
interface of a dynamic COM interface... but I guess you knew 
that, didn't you? I'm sorry, but you are an ____.





More information about the Digitalmars-d-learn mailing list