-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwallpaper.c
More file actions
35 lines (29 loc) · 896 Bytes
/
wallpaper.c
File metadata and controls
35 lines (29 loc) · 896 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <windows.h>
#include <winbase.h>
#include <windef.h>
#include <stdio.h>
#include <string.h>
void main()
{
PPERF_DATA_BLOCK readStringFromRegistry( void* keyname, void* valuename ) {
HKEY hkeyPtr;
DWORD keystatus;
DWORD buffersize = 1;
DWORD cbData = buffersize;
PPERF_DATA_BLOCK PerfData = (PPERF_DATA_BLOCK) malloc( buffersize );
keystatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT(keyname), 0,KEY_READ, &hkeyPtr);
if (ERROR_SUCCESS == keystatus)
{
keystatus = RegQueryValueEx( hkeyPtr, TEXT(valuename),NULL,NULL,(LPBYTE) PerfData,&cbData );
while( keystatus == ERROR_MORE_DATA )
{
buffersize += 1;
PerfData = (PPERF_DATA_BLOCK) realloc( PerfData, buffersize );
cbData = buffersize;
keystatus = RegQueryValueEx( hkeyPtr,TEXT(keyname),NULL,NULL,(LPBYTE) PerfData,&cbData );
}
}
RegCloseKey(hkeyPtr);
return PerfData;
}
}