gameux: IGameExplorer::RemoveGame implementation.
This commit is contained in:
parent
9b7347b619
commit
bb9a6ea2b0
|
@ -480,6 +480,36 @@ static HRESULT GAMEUX_ParseGDFBinary(struct GAMEUX_GAME_DATA *GameData)
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
/*******************************************************************
|
||||||
|
* GAMEUX_RemoveRegistryRecord
|
||||||
|
*
|
||||||
|
* Helper function, removes registry key associated with given game instance
|
||||||
|
*/
|
||||||
|
static HRESULT GAMEUX_RemoveRegistryRecord(GUID* pInstanceID)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
LPWSTR lpRegistryPath = NULL;
|
||||||
|
TRACE("(%s)\n", debugstr_guid(pInstanceID));
|
||||||
|
|
||||||
|
/* first, check is game installed for all users */
|
||||||
|
hr = GAMEUX_buildGameRegistryPath(GIS_ALL_USERS, pInstanceID, &lpRegistryPath);
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
hr = HRESULT_FROM_WIN32(RegDeleteKeyExW(HKEY_LOCAL_MACHINE, lpRegistryPath, 0, 0));
|
||||||
|
|
||||||
|
HeapFree(GetProcessHeap(), 0, lpRegistryPath);
|
||||||
|
|
||||||
|
/* if not, check current user */
|
||||||
|
if(FAILED(hr))
|
||||||
|
{
|
||||||
|
hr = GAMEUX_buildGameRegistryPath(GIS_CURRENT_USER, pInstanceID, &lpRegistryPath);
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
hr = HRESULT_FROM_WIN32(RegDeleteKeyExW(HKEY_LOCAL_MACHINE, lpRegistryPath, 0, 0));
|
||||||
|
|
||||||
|
HeapFree(GetProcessHeap(), 0, lpRegistryPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* GAMEUX_RegisterGame
|
* GAMEUX_RegisterGame
|
||||||
*
|
*
|
||||||
|
@ -628,8 +658,7 @@ static HRESULT WINAPI GameExplorerImpl_RemoveGame(
|
||||||
GameExplorerImpl *This = impl_from_IGameExplorer(iface);
|
GameExplorerImpl *This = impl_from_IGameExplorer(iface);
|
||||||
|
|
||||||
TRACE("(%p, %s)\n", This, debugstr_guid(&instanceID));
|
TRACE("(%p, %s)\n", This, debugstr_guid(&instanceID));
|
||||||
FIXME("stub\n");
|
return GAMEUX_RemoveRegistryRecord(&instanceID);
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI GameExplorerImpl_UpdateGame(
|
static HRESULT WINAPI GameExplorerImpl_UpdateGame(
|
||||||
|
|
|
@ -446,10 +446,10 @@ static void test_add_remove_game(void)
|
||||||
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, TRUE);
|
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, TRUE);
|
||||||
|
|
||||||
hr = IGameExplorer_RemoveGame(ge, guid);
|
hr = IGameExplorer_RemoveGame(ge, guid);
|
||||||
todo_wine ok(SUCCEEDED(hr), "IGameExplorer::RemoveGame failed (error 0x%08x)\n", hr);
|
ok(SUCCEEDED(hr), "IGameExplorer::RemoveGame failed (error 0x%08x)\n", hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
todo_wine _validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, FALSE);
|
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, FALSE);
|
||||||
|
|
||||||
|
|
||||||
/* try to register game with empty guid */
|
/* try to register game with empty guid */
|
||||||
|
@ -464,10 +464,10 @@ static void test_add_remove_game(void)
|
||||||
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, TRUE);
|
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, TRUE);
|
||||||
|
|
||||||
hr = IGameExplorer_RemoveGame(ge, guid);
|
hr = IGameExplorer_RemoveGame(ge, guid);
|
||||||
todo_wine ok(SUCCEEDED(hr), "IGameExplorer::RemoveGame failed (error 0x%08x)\n", hr);
|
ok(SUCCEEDED(hr), "IGameExplorer::RemoveGame failed (error 0x%08x)\n", hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
todo_wine _validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, FALSE);
|
_validateGameRegistryKey(__LINE__, GIS_CURRENT_USER, &guid, &applicationId, sExePath, sExeName, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free allocated resources */
|
/* free allocated resources */
|
||||||
|
|
Loading…
Reference in New Issue