28 static const WCHAR valA[] =
L"hello";
31 DWORD dwValue = 0xBEEFCAFE;
50 IQuerySourceOld *pSrc =
NULL;
52 IID_IQuerySourceOld, (
PVOID*)&pSrc);
54 ok(pSrc !=
NULL,
"pSrc was NULL\n");
59 hr = pSrc->EnumValues(&pEnum);
60 ok(pSrc &&
hr ==
S_OK,
"EnumValues failed: 0x%08X\n",
hr);
67 hr = pEnum->
Next(1, &psz, &fetched);
78 hr = pEnum->
Next(1, &psz, &fetched);
89 hr = pEnum->
Next(1, &psz, &fetched);
103 IQuerySourceOld *pSrc =
NULL;
105 IID_IQuerySourceOld, (
PVOID*)&pSrc);
107 ok(pSrc !=
NULL,
"pSrc was NULL\n");
110 hr = pSrc->EnumSources(&pEnum);
112 ok(pEnum !=
NULL,
"pEnum was NULL\n");
119 hr = pEnum->
Next(1, &psz, &fetched);
130 hr = pEnum->
Next(1, &psz, &fetched);
141 hr = pEnum->
Next(1, &psz, &fetched);
153 IQuerySourceOld *pSrc =
NULL;
155 IID_IQuerySourceOld, (
PVOID*)&pSrc);
157 ok(pSrc !=
NULL,
"pSrc was NULL\n");
179 hr = pSrc->QueryValueExists(
NULL,
L"ValueA");
182 hr = pSrc->QueryValueExists(
NULL,
L"ValueB");
188 dwValue = 0xDEADFACE;
191 hr = pSrc->QueryValueDword(
NULL,
L"ValueA", &dwValue);
195 dwValue = 0xDEADFACE;
198 hr = pSrc->QueryValueDword(
NULL,
L"ValueB", &dwValue);
202 FLAGGED_BYTE_BLOB *pBlob;
208 hr = pSrc->QueryValueDirect(
NULL,
L"ValueA", &pBlob);
210 ok(pBlob !=
NULL,
"pBlob was %p\n", pBlob);
211 ok(pBlob && pBlob->clSize == 12,
"pBlob->clSize was %ld\n", pBlob->clSize);
212 ok(pBlob && !
memcmp(pBlob->abData,
L"hello", 12),
"pBlob->abData mismatch\n");
218 hr = pSrc->QueryValueDirect(
NULL,
L"ValueB", &pBlob);
220 ok(pBlob !=
NULL,
"pBlob was %p\n", pBlob);
221 ok(pBlob && pBlob->clSize == 4,
"pBlob->clSize was %ld\n", pBlob->clSize);
222 dwValue = 0xBEEFCAFE;
223 ok(pBlob && !
memcmp(pBlob->abData, &dwValue,
sizeof(dwValue)),
"pBlob->abData mismatch\n");
234 skip(
"Vista+ is not tested well\n");
242 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 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)
#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)
#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, LPCWSTR lpszSubKey)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPOLESTR *rgelt, [out] ULONG *pceltFetched)
void WINAPI CoTaskMemFree(void *ptr)
_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)