Re: ATL need Runtime DLLs?
Alexander Nickolov <agnickolov@mvps.org> wrote:
ATL per se can also be linked statically (actually it's comiled-in)
or linked against a DLL. One notable exception is when using
ATL's ActiveX Control containment code. The code can be linked
in, but it still requires the type library bundled with ATL.DLL to
function.
Not since VC7. The issue is a (brain-dead, in my humble opinion)
implementation of ambient dispatch as a dual interface, with
IDispatchImpl, requiring a type library. Starting with VC7, ATL provides
two improvements to mitigate this problem:
a) ATL ships atliface.idl file describing the two dual interfaces
IAxWinAmbientDispatch and IAxWinAmbientDispatchEx. One can import them
in one's own type library
b) IDispatchImpl takes special value 0xFFFF for wMajor and wMinor to
mean "the TLB is bound to the current executable: don't look in the
registry". CAxHostWindow uses these values when deriving from
IDispatchImpl<IAxWinAmbientDispatchEx>.
As a result, one can have a private TLB bound to one's executable with
type information for IAxWinAmbientDispatch[Ex].
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925