21 return p ?
p->Release() : 0;
43 static const WCHAR valA[] =
L"hello";
46 DWORD dwValue = 0xBEEFCAFE;
65 IQuerySourceOld *pSrc =
NULL;
67 IID_IQuerySourceOld, (
PVOID*)&pSrc);
69 ok(pSrc !=
NULL,
"pSrc was NULL\n");
74 hr = pSrc->EnumValues(&pEnum);
75 ok(pSrc &&
hr ==
S_OK,
"EnumValues failed: 0x%08X\n",
hr);
82 hr = pEnum->
Next(1, &psz, &fetched);
93 hr = pEnum->
Next(1, &psz, &fetched);
104 hr = pEnum->
Next(1, &psz, &fetched);
118 IQuerySourceOld *pSrc =
NULL;
120 IID_IQuerySourceOld, (
PVOID*)&pSrc);
122 ok(pSrc !=
NULL,
"pSrc was NULL\n");
125 hr = pSrc->EnumSources(&pEnum);
127 ok(pEnum !=
NULL,
"pEnum was NULL\n");
134 hr = pEnum->
Next(1, &psz, &fetched);
145 hr = pEnum->
Next(1, &psz, &fetched);
156 hr = pEnum->
Next(1, &psz, &fetched);
168 IQuerySourceOld *pSrc =
NULL;
170 IID_IQuerySourceOld, (
PVOID*)&pSrc);
172 ok(pSrc !=
NULL,
"pSrc was NULL\n");
194 hr = pSrc->QueryValueExists(
NULL,
L"ValueA");
197 hr = pSrc->QueryValueExists(
NULL,
L"ValueB");
203 dwValue = 0xDEADFACE;
206 hr = pSrc->QueryValueDword(
NULL,
L"ValueA", &dwValue);
210 dwValue = 0xDEADFACE;
213 hr = pSrc->QueryValueDword(
NULL,
L"ValueB", &dwValue);
217 FLAGGED_BYTE_BLOB *pBlob;
223 hr = pSrc->QueryValueDirect(
NULL,
L"ValueA", &pBlob);
225 ok(pBlob !=
NULL,
"pBlob was %p\n", pBlob);
226 ok(pBlob && pBlob->clSize == 12,
"pBlob->clSize was %ld\n", pBlob->clSize);
227 ok(pBlob && !
memcmp(pBlob->abData,
L"hello", 12),
"pBlob->abData mismatch\n");
233 hr = pSrc->QueryValueDirect(
NULL,
L"ValueB", &pBlob);
235 ok(pBlob !=
NULL,
"pBlob was %p\n", pBlob);
236 ok(pBlob && pBlob->clSize == 4,
"pBlob->clSize was %ld\n", pBlob->clSize);
237 dwValue = 0xBEEFCAFE;
238 ok(pBlob && !
memcmp(pBlob->abData, &dwValue,
sizeof(dwValue)),
"pBlob->abData mismatch\n");
265 skip(
"Vista+ is not tested well\n");
273 skip(
"QuerySourceCreateFromKey not found\n");
#define ok_hr(status, expected)
HRESULT(WINAPI * FN_QuerySourceCreateFromKey)(HKEY, PCWSTR, BOOL, REFIID, PVOID *)
static void SetupRegistry(void)
static void CleanupRegistry(void)
static HRESULT QSCFK(HKEY hKey, PCWSTR pszKey, BOOL Create, REFIID riid, PVOID *ppv)
static const WCHAR k_SubKeyB[]
static FN_QuerySourceCreateFromKey g_pQuerySourceCreateFromKey
static void Test_CheckValues(void)
static const WCHAR k_SubKeyA[]
static const WCHAR k_Root[]
static void Test_EnumValues(void)
static void Test_EnumSources(void)
static HRESULT ShimverQSCFK(HKEY hKey, PCWSTR pszKey, BOOL Create, PVOID *ppv)
static LONG SafeRelease(T *p)
#define ok_long(expression, result)
#define ok_int(expression, result)
#define RegCloseKey(hKey)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
void WINAPI CoTaskMemFree(void *ptr)
#define GetProcAddress(x, y)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
DWORD WINAPI SHDeleteKeyW(HKEY hkey, const WCHAR *subkey)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPOLESTR *rgelt, [out] ULONG *pceltFetched)
nsresult QueryInterface(nsIIDRef riid, void **result)
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
EXTERN_C HRESULT WINAPI QuerySourceCreateFromKey(_In_ HKEY hKey, _In_opt_ PCWSTR lpSubKey, _In_ BOOL bCreate, _In_ REFIID riid, _Outptr_ PVOID *ppv)
#define E_DATATYPE_MISMATCH
VERSIONHELPERAPI IsWindowsVistaOrGreater()
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define HKEY_CURRENT_USER
#define MAKEINTRESOURCEA(i)