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