COM/interface question

Jarrett Billingsley kb3ctd2 at yahoo.com
Sun Dec 2 07:18:09 PST 2007


"Mike" <vertex at gmx.at> wrote in message 
news:fiuejb$2j6g$1 at digitalmars.com...
> I'm getting a strange compilation error with a COM interface I'm trying to 
> access. Here's the relevant part of the interface:
>
> extern(Windows) interface IASIO : IUnknown
> {
>    ASIOBool init(void*);
> [snip]
>    ASIOError getChannels(long*, long*);
> [snip]
> }
>
> And here's the problem:
>
> test.init(null); // Error: function expected before (), not null of type 
> IASIO*
> test.getChannels(&ichans, &ochans); // compiles
>
> test is of type IASIO*. ASIOBool and ASIOError are both aliases for long. 
> The null in the "init" is not the problem; if I give the function the 
> correct pointer it doesn't compile as well.
>
> Has anybody any idea why one call compiles and the other doesn't?

That's certainly odd, but you don't/shouldn't be using an IASIO*. 
Interfaces are already reference types, so where you'd use an IASIO* in 
C/C++, use an IASIO in D. 





More information about the Digitalmars-d mailing list