are working here, using our own implementation of a COM-based RPC-Server. Its speciality is the hosting of COM-Binaries, that don't have to be registered, to instantiate Classes and invoke Methods on them.
If you want to test a Server/Client-Pair - here's our free Download: www.datenhaus.de/Downloads/dh_RPC.zip
For a successful test under Wine, you have to Install the Redistributables of an actual VB6-Runtime and some ADO-Distributable >=2.5 first.
I've tested the whole thing under a Debian-Sid with a somewhat older Kernel (2.6.9), but with a new "apt-getted" Wine-Version (0.97). The Installation of the VB6-Runtime and the ADO-Redist was not possible, until I figured out, that a prior install of IE6 was helpful, to install the two above mentioned packages.
After installing these prerequisites, I removed the IE6-ProgramFolder, unpacked our ZIP to c:\dh_RPC, started the Server and the Client - eh voilĂ - all was working fine (Linux->Linux and XP->Linux). The complete set of COM-DemoCalls was working "OutOfTheBox", even the "Disconnected ADO-Recordset"-Call was successful. (For the Linuxers, that are serialized DB-Resultsets, wich are often used in distributed COM-Scenarios). No Memory-Leaking, even under Stress (the server was able, to deliver max. 700 small COMRequsest per second, stressed from multiple Clients (XP-Box, comparable Hardware, reached ca. 2000). So Wine has ca. 3 times the Call-Overhead, regarding Object-Instantiation and Method-Invoking-By-Name. But the more realistic Recordset-Call was finished after 14ms, where the XP-Box needed 9ms - so for realistic Calls, we now see only factor 1.5 under Wine. And in the "Large-String- Reflection-Test" (2MB Up- and 4MB-Download) - Wine was a little bit faster than XP - good job, regarding your socket-bindings. Minimizing to the "KDE-SysTray", all was working; I was impressed.
Now the bad news: ;-) Not working was: 1. Running as Service (Service-Registering was successful, but ...) (Ok, no big problem, running as UserProcess was working, but are there plans, to simulate the Win-ServiceControlmanager?) 2. Win-Authentication and -Impersonation (LogonUser- and ImpersonateLoggedOnUser-APIs - already mapped to...?) 3. "Global ServerSingletons" using ROT-Entries with FileMoniker-Binding 4. "RPCServer-internal Singletons" (CoMarshalInterThreadInterfaceInStream and CoGetInterfaceAndReleaseStream against the IUnknown-Interface).
Any Ideas, especially for 3. and 4.?--> a good working X-Process-, respective X-Thread-Marshaling would be important, to take COM- Hosting under Linux/Wine seriously into account. My attempts, to get any useful information per WineDebug were not successful. It would be great, if anybody with more "Wine-Debugging-Experience" could look at the appropriate Calls using our free Server-Download.
Thanks.
Olaf Schmidt
P.S. As Dan Kegel has recommended in 'wine.user', I will try to isolate the Problems 3. und 4. in separate Binaries and post a link later.