21#define COPY_SRC KEY_WINE "\\reg_copy"
267 add_key(hkey,
"Subkey1", 0, &subkey);
269 add_value(subkey,
"Undefined hex", 0x100,
"%PATH%", 7);
272 add_key(hkey,
"Subkey2a", 0, &subkey);
278 add_key(hkey,
"Subkey2a\\Subkey2b", 0, &subkey);
283 add_key(hkey,
"Subkey3a", 0, &subkey);
284 add_value(subkey,
"Backslash",
REG_SZ,
"Use \\\\ to escape a backslash", 29);
287 add_key(hkey,
"Subkey3a\\Subkey3b\\Subkey3c", 0, &subkey);
292 add_key(hkey,
"Subkey4", 0, &subkey);
295 add_value(subkey,
"43981", 0xabcd,
"Value", 6);
396 "[HKEY_CURRENT_USER\\" COPY_SRC "]\n"
397 "\"Wine2a\"=hex(1):\n"
398 "\"Wine2b\"=hex(3):\n"
399 "\"Wine2c\"=hex(4):\n\n", &
r);
415 "[HKEY_CURRENT_USER\\" COPY_SRC "]\n"
416 "\"Wine3a\"=hex(1):56,00,61,00,6c,00,75,00,65,00,00,00\n"
417 "\"Wine3b\"=hex(3):12,34,56,78\n"
418 "\"Wine3c\"=hex(4):40,30,20,10\n\n", &
r);
438 "[HKEY_CURRENT_USER\\" COPY_SRC "]\n"
439 "\"Wine4a\"=dword:00000005\n"
440 "\"Wine4b\"=hex(1):00,00,00,00,00,00,00,00\n"
441 "\"Wine4c\"=\"Value\"\n"
442 "\"Wine4d\"=hex(1):00,00,61,00,62,00,63,00\n"
443 "\"Wine4e\"=dword:00000100\n"
444 "\"Wine4f\"=hex(1):00,00,56,00,61,00,6c,00,75,00,65,00,00,00\n"
445 "\"Wine4g\"=\"Value2\"\n"
446 "\"Wine4h\"=hex(1):61,00,62,00,63,00,00,00, \\\n"
447 " 64,00,65,00,66,00,00,00\n\n", &
r);
515 char class[] =
"class";
521 ok(rc ==
ERROR_SUCCESS,
"RegCreateKeyExA failed: got %d, expected 0\n", rc);
525 buf_size =
sizeof(
buf);
527 rc =
RegQueryInfoKeyA(hkey,
buf, &buf_size,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
528 ok(rc ==
ERROR_SUCCESS,
"RegQueryInfoKeyA failed: got %d, expected 0\n", rc);
529 ok(!
strcmp(
buf,
"class"),
"Incorrect key class set; got '%s', expected '%s'\n",
buf,
class);
541 buf_size =
sizeof(
buf);
543 rc =
RegQueryInfoKeyA(hkey,
buf, &buf_size,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
544 ok(rc ==
ERROR_SUCCESS,
"RegQueryInfoKeyA failed: got %d, expected 0\n", rc);
545 ok(
strlen(
buf) == 0,
"Key class should not exist\n");
603 add_value(subkey,
"Undefined hex", 0x100,
"%PATH%", 7);
609static void test_registry_view_win32(
void)
615 is_win32 = !
is_wow64 && (
sizeof(
void *) ==
sizeof(
int));
617 if (!is_win32)
return;
649static void test_registry_view_win64(
void)
701static void test_registry_view_wow64(
void)
758 win_skip(
"reg.exe not available, skipping 'copy' tests\n");
778 win_skip(
"reg.exe is not running with elevated privileges; "
779 "skipping registry view tests\n");
784 test_registry_view_win32();
785 test_registry_view_win64();
786 test_registry_view_wow64();
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
#define RegCloseKey(hKey)
LONG WINAPI RegQueryInfoKeyA(HKEY hKey, LPSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
#define GetCurrentProcess()
static const BOOL is_win64
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
static void test_copy_escaped_null_values(void)
static void test_copy_key_class(void)
static void test_copy_slashes(void)
static void test_copy_hex_data(void)
static void test_copy_complex_data(void)
static void test_copy_simple_data(void)
static void test_copy_key_order(void)
static void test_copy_value_order(void)
static void test_copy_overwrite(void)
static void test_copy_empty_key(void)
static void test_command_syntax(void)
static void test_copy_embedded_null_values(void)
const char * empty_hex_test2
const char * hex_types_test
const char * complex_data_test
const char * escaped_null_test
const char * key_order_test
const char * slashes_test
const char * embedded_null_test
const char * simple_data_test
const char * registry_view_test
const char * value_order_test
const char * empty_hex_test
const char * empty_key_test
BOOL is_elevated_process(void)
#define REG_OPTION_NON_VOLATILE
#define add_value(k, n, t, d, s)
#define compare_export(f, e, todo)
#define test_import_wstr(c, r)
#define add_key(r, p, s, k)
#define verify_reg(k, v, t, d, s, todo)
#define delete_tree(r, p, s)
#define open_key(r, p, s, k)
#define verify_key(r, p, s)
#define verify_key_nonexist(r, p, s)
#define run_reg_exe(c, r)
#define delete_key(r, p, s)
#define verify_reg_nonexist(k, v)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER