On Thu, 2003-08-28 at 01:26, Evalet Olivier wrote:
I would like to know if it is possible to integrate the GtkSocket mechanism in wine. (To embed activex component in a gtk application.)
I've thought about this before. The primary problem is that you'd need some custom IPC mechanism, as simply instantiating an ActiveX control and embedding it in a window isn't terribly useful, you generally want to call its methods and set its properties.
I've pondered using DBUS for that. A simple DBUS<->COM bridge would be handy, though COM doesn't really map to DBUS very well, so it wouldn't be quite the same as using normal COM/DCOM.
I do not know exactly how to proceed, I need more informations:
I already put some basic support for processing XEMBED messages into Wine with my system tray patch, that isn't merged yet. You might want to take a look at that first.
- do I must embed GtkSocket code in wine?
No, there's no need for that, XEMBED is well documented and can be implemented in Wine directly.
- do I must synchronize GtkWidget and HWND?
You don't need to link against GTK to do what you want.
For the ActiveX, I use, with a dynamic link, the atl.dll to embed components. It is easy and It works with HTML editor and others stuffs... But I dont know if this is the right way to embed components?
The ATL is a C++ toolkit, beyond that I know little about it. The easiest way to embed an ActiveX control is to turn a program into a WineLib app. At that point the problem becomes one of internally using XEMBED to synchronize the Wine toolkit and GTK. That sort of thing shouldn't be very hard, I expect a simple Wine extension to Win32 would work here (setting an extended window style or something).
thanks -mike