Re: odl or idl?
If you deselect ODL mode for your MFC project, you must also
rename it with IDL extension since it's no longer an ODL file.
ODL = Object Description Language - only describes type
libraries
IDL = Interface Definition Language - describes both interfaces
and type libraries (contains ODL as a subset)
Historically, initially IDL coudn't be used for type libraries, so
Microsoft invented ODL. Later they joined the two languages
under the IDL name. IDL itself is inherited from OSF DCE RPC
spec and extended to support COM interfaces. It does contain
the original IDL as a subset - you can still use it to define RPC
interfaces (e.g. don't specify [object] for the interface).
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"spforeman" <google@sforeman.com> wrote in message
news:1177576073.837488.202760@u32g2000prd.googlegroups.com...
Thanks Guys,
Taking on board what you said gave me enough to realise that the
problem wasn't the odl or idl file but something else.
I'm not getting any header file being generated even if I define
things outside of the library block. In fact if I do that I get
compiler errors. Digging further I came across the 'MkTypLib
compatible' setting in the MIDL settings. This was selected for my
(MFC) project and was why I couldn't define things outside of the
library block and also why I wasn't getting any header files being
generated. I had mistakenly thought this was because I was using an
odl file extension instead of idl.
So now I can use the #import approach or deselect the MkTypLib
compatible setting. Is there any reason why I should use one of these
over the other?
If anyone else is following this thread and wants to read up on this I
suggest reading:
http://msdn2.microsoft.com/en-us/library/aa367079.aspx - especially
the 'Differences Between MIDL and MkTypLib' link.
Steve