I tried all that, but it does not work. Whyever. When I add the .idl
to inherit.
Axel.
In addition to Igor's reply, you need to also include the external
IDL file in your project so it's processed by MIDL and its header
file generated.
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"Axel Bock" <axel.bock.news@googlemail.com> wrote in message
news:1182494652.692344.167660@w5g2000hsg.googlegroups.com...
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;
};
};