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