Re: Oleaut32.dll needs/doesn't need type library??



sawer <sawer@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
If these 2 explanations are for different circumstances, can you
please tell me in what circumstance does oleaut32.dll needs type
library, and in what circumstances doesnt need?
Thanks you...

1-)"The third option is to use the universal marshaller oleaut32.dll.
The ProxyStubClsid32 entries of all interfaces should point to this
universal marshaller, and the TypeLib entries point to the registered
type library. The universal marshaller will find the registered type
library of the invoked interface, read the type information in it,
and create the proxy/stub DLL on the fly."
http://progtutorials.tripod.com/COM.htm

2-)"In short, oleaut32 knows how to handle all the networking details
of IDispatch (late binding) method invocations. It is the IDispatch
system proxy/stub that replaces the MIDL generated type library
you're used to and allows the IDispatch interface to invoke method
calls over the wire. As far as marshaling the method arguments goes,
even though you have no type library, all possible data types are
pre-defined by COM."
Applying COM+ book

oleaut32 knows how to marshal IDispatch. Since a dispinterface is
nothing more than an IDispatch plus an agreement on what individual
DISPIDs mean in IDispatch::Invoke call, oleaut32 also knows how to
marshal any calls on dispinterfaces (also known as late-bound calls).

If you want oleaut32 to marshal an interface other than IDispatch -
either a dual interface derived from IDispatch or a custom
automation-compatible interface - it needs type library describing this
interface.
--
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


.



Relevant Pages

  • IDispatch* , COM Server(LOCAL_SERVER), event data and C#.NET
    ... I have one main inbound interface called ... If IDispatch is the answer, I already did the following, ... I did code following C++ wrapper class for the _ICallInfo impl. ... // object before calling the base class. ...
    (microsoft.public.dotnet.framework.interop)
  • Re: Problems with IDispatchImpl
    ... you have your own dual interface defined in another type library. ... You have to check if this IApplication is indeed a dual interface. ... IDispatch by hand (based on your previous post, ... > The IDispatch methods are indeed implemented by IDispatchImpl, ...
    (microsoft.public.vc.atl)
  • Re: Problems with IDispatchImpl
    ... you have your own dual interface defined in another type library. ... You have to check if this IApplication is indeed a dual interface. ... IDispatch by hand (based on your previous post, ... > The IDispatch methods are indeed implemented by IDispatchImpl, ...
    (microsoft.public.vc.atl)
  • Re: Problems with IDispatchImpl
    ... > you have your own dual interface defined in another type library. ... > You have to check if this IApplication is indeed a dual interface. ... > IDispatch by hand (based on your previous post, ... >> perfnurt at hotmail dot com ...
    (microsoft.public.vc.atl)
  • Re: Creating object inside an ISAPI DLL - does registry settings required?
    ... interface needs hand-coding in ATL. ... > ActiveX implementation so the same DLL can server both purposes (that will ... > the ISAPI Dll does not utilize any sytem resources such as registry). ... > ATL IDispatch implementation is based on type library, ...
    (microsoft.public.vc.atl)

Loading