7 int main( int argc
, char **argv
) {
10 WCHAR ValueNameWC
[100];
16 printf( "Usage: regqueryvalue [key] [value]\n" );
17 printf( "Returns an HKEY_LOCAL_MACHINE value from the given key.\n" );
21 if ( RegOpenKeyExA( HKEY_LOCAL_MACHINE
, argv
[1], 0, KEY_READ
, &RegKey
)
23 printf( "Could not open key %s\n", argv
[1] );
27 for( i
= 0; argv
[2][i
]; i
++ ) ValueNameWC
[i
] = argv
[2][i
];
30 if(RegQueryValueExW( RegKey
, ValueNameWC
, NULL
, NULL
, NULL
, &ResultSize
)
32 printf( "The value %S does not exist.\n", ValueNameWC
);
36 WcharResult
= malloc( (ResultSize
+ 1) * sizeof(WCHAR
) );
39 printf( "Could not alloc %d wchars\n", (int)(ResultSize
+ 1) );
43 RegQueryValueExW( RegKey
, ValueNameWC
, NULL
, NULL
, (LPBYTE
)WcharResult
,
46 printf( "wchar Value: %S\n", WcharResult
);
49 RegQueryValueExA( RegKey
, argv
[2], NULL
, NULL
, NULL
, &ResultSize
);
51 CharResult
= malloc( ResultSize
+ 1 );
54 printf( "Could not alloc %d chars\n", (int)(ResultSize
+ 1) );
58 RegQueryValueExA( RegKey
, argv
[2], NULL
, NULL
, (PBYTE
)CharResult
, &ResultSize
);
60 printf( " char Value: %s\n", CharResult
);