http://bugs.winehq.org/show_bug.cgi?id=20296
--- Comment #46 from Christoph Hohmann reboot@gmx.ch 2011-04-06 17:59:27 CDT --- On Windows you can see, after the League of Legends launcher is started, that svchost.exe start a dllhost.exe process with the parameter "/Processid:{24D8BC2F-47F2-4A20-B7E4-F9394EEAFB1B}". The Processid is the AppID for League of Legends's CRiotLauncherElevateCOM.
If you run the Windows' dllhost.exe with Wine it fails with:
wine: Call from 0x7edc8b17 to unimplemented function ole32.dll.CoRegisterSurrogateEx, aborting wine: Unimplemented function ole32.dll.CoRegisterSurrogateEx called at address 0x7edc8b17 (thread 0058), starting debugger...
I don't know enough about COM to say how this really works. But for me it looks like you just have to start the dllhost.exe process, like Windows, and implement the missing function in ole32.dll. For testing the Window dllhost.exe could be used and implemented later, when the functions in the COM system are working.
Changing the registry to load a DLL in process doesn't seem to be possible, as the parameter that specifies how an instance should be created is passed as a parameter from the program (CoGetClassObject: dwClsContext) and not a value in the registry.