thiscall calling convention

Jarrett Billingsley kb3ctd2 at yahoo.com
Mon Oct 23 06:59:56 PDT 2006


"Max Samuha" <maxter at i.com.ua> wrote in message 
news:o14pj2teu31k82a6rnqfc7jbk422lrm05l at 4ax.com...
>I have a COM object which uses __thiscall linkage for its methods
> (guys who created the object have perfect sense of humor). Would you
> advice me of a good way to call those methods from D?

To use any COM interface from D, you can just create an interface which 
derives from IUnknown.  D will make the interface COM-compatible.


import std.c.windows.com;

interface SomeInterface : IUnknown
{
    HRESULT method1();
}

extern(Windows) export CreateSomeInterface();

...

SomeInterface i = CreateSomeInterface();
i.method1();


Of course, if the library you're using (what are you using anyway?) doesn't 
have a function which creates an instance of the COM object for you, you'll 
have to use QueryInterface from a base COM object, but.. 





More information about the Digitalmars-d-learn mailing list