Huw Davies huw@codeweavers.com wrote:
+static struct surrogate surrogate = { { &Surrogate_Vtbl }, 0 };
In the next patch surrogate gets moved to be a local variable of wWinMain, so it might as well start off there.
Sure.
int WINAPI wWinMain(HINSTANCE hinst, HINSTANCE previnst, LPWSTR cmdline, int showcmd) { HRESULT hr; @@ -36,9 +105,20 @@ int WINAPI wWinMain(HINSTANCE hinst, HINSTANCE previnst, LPWSTR cmdline, int sho hr = CLSIDFromString(cmdline, &clsid); if (hr == S_OK) {
FIXME("hosting object %s is not implemented\n", wine_dbgstr_guid(&clsid));
CoRegisterSurrogate(&surrogate.ISurrogate_iface);
CoRegisterSurrogate() is currently a stub. Do we know what this is supposed to do?
I'd guess that the stored ISurrogate pointer is used from inside of CoFreeUnusedLibraries() to call ISurrogate::FreeSurrogate(). This part still needs to be investigated and implemented.