Default handler for OLE interface

olivier evalet evaleto at programmers.ch
Fri Nov 21 11:28:27 CST 2003


Hello, 

> I don't understand, sorry. ATL is a set of C++ convenience wrappers around
> COM and is redistributable. All the infrastructure for displaying embedded
> OLE/AcitveX controls is already in Wine... do you think we're missing
> something?
Humm, I don't know, I have a dll "atl.dll" with this fonction:
void AtlAxGetControl( HWND h, IUnknown** pp);

With this fonction it is really easy to embed controls in a windows.
Actually I try to have the same behavior without using the native dll. I
have found an example which describe howto embed IE in a HWND. This
example implement the following code:

// OleCreate
// site is an implementation of IOleClientSite, IOleInPlaceSite
// storage is an implementation of IStorage
// mpWebObject is an implementation of IOleContainer

OleCreate(CLSID_WebBrowser,IID_IOleObject,OLERENDER_DRAW,0,&site,&storage,(void**)&mpWebObject);
mpWebObject->SetHostNames(L"Web Host",L"Web View");
RECT rect;
GetClientRect(hwnd,&rect);

// DoVerb embed the component in the hwnd_parent
mpWebObject->DoVerb(OLEIVERB_SHOW,NULL,&site,-1,hwnd_parent,&rect);


I don't know how to start correctly my code to implement this in wine?
There are a lot of interface just for displaying an ActiveX. I think
that I must implement all interfaces but I don't know how to begin...
For example, the object "site" is an implementation of IOleClientSite
and IOleInPlaceSite, I have read the wine documentation and I don't see
how to implement multiple OLE interfaces in C.

  
Merci,
Olivier


 





More information about the wine-devel mailing list