ivanleo@gmail.com wrote:
It looks like someone was implementing some stuff and left it half way through,
That was me. I didn't have any documentation on how the extensions processing was meant to work.
so the result is GetClassMediaFile was hard coded to fail because process_extensions always fails.
Err, no. Did you read the code? The fallback is the more common method of recognising a byte sequence at the start of the file.
This patch is needed by the IAMMultiMediaStreamImpl_OpenFile which will follow. The two together allow Crimson Skies to start and get to the menu instead of crashing.
--- winenew/dlls/quartz/filesource.c 2006-05-23 13:48:29.000000000 +0100 +++ wine/dlls/quartz/filesource.c 2006-06-15 22:50:40.000000000 +0100 @@ -65,7 +65,10 @@ static HRESULT process_extensions(HKEY hkeyExtensions, LPCOLESTR pszFileName, GUID * majorType, GUID * minorType) { /* FIXME: implement */
- return E_NOTIMPL;
- FIXME("(%p, %s, %p, %p), stub!\n", hkeyExtensions, debugstr_w(pszFileName), majorType, minorType);
- return S_OK;
}
Great. Now majorType and minorType will be left uninitialised, causing weird and hard-to-debug problems later on.