Interface inheritance between different COM modules?
Hi,
I have a - hopefully - simple problem. I need to write an Interface
INT_B in a COM component COM_B, which actually inherits from an
interface INT_A from COM component COM_A.
I try to do this by importlib'ing the COM_A.dll file in the COM_B.idl,
and write the following line:
interface IINT_B : IINT_A { };
Where IINT_A is defined in the COM_A.dll file. Alas I get a MIDL
compiler error: COM_B.idl(31) : warning MIDL2271 : [object] interfaces
must derive from another [object] interface such as IUnknown :
[ Interface 'IINT_A' (IINT_A' ) ].
If I use another interface defined in the same file it works
beautifully.
If I include the COM_A.idl file I get some weird errors saying "could
not find COM_A.h file".
If I do something else ... well, I don't know of something else :-) .
Can anybody help? I included parts of the IDL files below for
reference.
Many thanks in advance & greetings,
Axel.
p.s.: If I am off-topic here, please, where should I post this?
----------------- IDL files -----------------
I deleted the properties etc. from the files and all the other classes
for readability ...
=====================
COM_A.dl IDL file:
=====================
[
object,
uuid(F5BDF49A-0F59-4EFA-B328-74C2DEB83E4F),
dual,
helpstring("IServiceQualifier-Schnittstelle"),
pointer_default(unique)
]
interface IServiceQualifier : IDispatch{ };
library ComLscLib
{
importlib("stdole2.tlb");
[
uuid(8EF7F82E-5732-4472-902B-8B1CCEB408A3),
helpstring("ServiceQualifier Class")
]
coclass ServiceQualifier
{
[default] interface IServiceQualifier;
};
};
=====================
COM_B.dl IDL file:
=====================
[
object,
uuid(8DF23D05-A88B-4F59-B7DD-D991469F5B9A),
dual,
nonextensible,
helpstring("IConfigurationServiceQualifier-Schnittstelle"),
pointer_default(unique)
]
interface IConfigurationServiceQualifier : IServiceQualifier {
};
[
uuid(C4E69D50-01F7-42C1-9CCB-06DCFA02E524),
version(1.0),
helpstring("ServiceConfiguration 1.0-Typbibliothek")
]
library ServiceConfigurationLib
{
importlib("stdole2.tlb");
importlib("..\ComLsc\Debug\ComLsc.dll");
[
uuid(BC0136D0-2913-4B31-ACEA-7515F1E2ADAB),
helpstring("ConfigurationServiceQualifier Class")
]
coclass ConfigurationServiceQualifier
{
[default] interface IConfigurationServiceQualifier;
};
};