static void test_SHCreateSessionKey(void) { HKEY hkey, hkey2; HRESULT hr; if (!pSHCreateSessionKey) { skip("SHCreateSessionKey is not implemented\n"); return; } if (0) /* crashes on native */ hr = pSHCreateSessionKey(KEY_READ, NULL); hkey = (HKEY)0xdeadbeef; hr = pSHCreateSessionKey(0, &hkey); ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr); ok(hkey == NULL, "got %p\n", hkey); hr = pSHCreateSessionKey(KEY_READ, &hkey); ok(hr == S_OK, "got 0x%08x\n", hr); hr = pSHCreateSessionKey(KEY_READ, &hkey2); ok(hr == S_OK, "got 0x%08x\n", hr); ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2); RegCloseKey(hkey); RegCloseKey(hkey2); }
static void test_SHCreateSessionKey(void) { static const WCHAR session_format[] = { 'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', 'W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', 'E','x','p','l','o','r','e','r','\\','S','e','s','s','i','o','n','I','n','f','o','\\','%','u',0}; HKEY hkey, hkey2; HRESULT hr; DWORD session; WCHAR sessionW[ARRAY_SIZE(session_format) + 16]; LONG ret; if (!pSHCreateSessionKey) { win_skip("SHCreateSessionKey is not implemented\n"); return; } if (0) /* crashes on native */ hr = pSHCreateSessionKey(KEY_READ, NULL); hkey = (HKEY)0xdeadbeef; hr = pSHCreateSessionKey(0, &hkey); ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr); ok(hkey == NULL, "got %p\n", hkey); hr = pSHCreateSessionKey(KEY_READ, &hkey); ok(hr == S_OK, "got 0x%08x\n", hr); hr = pSHCreateSessionKey(KEY_READ, &hkey2); ok(hr == S_OK, "got 0x%08x\n", hr); ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2); RegCloseKey(hkey); RegCloseKey(hkey2); /* check the registry */ ProcessIdToSessionId( GetCurrentProcessId(), &session); if (session) { wsprintfW(sessionW, session_format, session); ret = RegOpenKeyW(HKEY_CURRENT_USER, sessionW, &hkey); ok(!ret, "key not found\n"); RegCloseKey(hkey); } }