Grabby/CommonCfg/UploadConfig.c

65 lines
1.2 KiB
C
Raw Normal View History

#include "stdafx.h"
static BOOL
UploadConfigCb(HKEY hKey,
LPTSTR szValName,
DWORD dwValSize,
DWORD dwValType,
PVOID pData)
{
UploadConfig *ucfg = pData;
if (!ucfg) return FALSE;
CopyIfMatch(hKey, ucfg,
Name, REG_SZ)
else CopyIfMatch(hKey, ucfg,
URL, REG_SZ)
else CopyIfMatch(hKey, ucfg,
Method, REG_SZ)
else CopyIfMatch(hKey, ucfg,
Username, REG_SZ)
else CopyIfMatch(hKey, ucfg,
Password, REG_SZ)
else CopyIfMatch(hKey, ucfg,
HTTPAuthMethod, REG_DWORD)
else CopyIfMatch(hKey, ucfg,
Headers, REG_MULTI_SZ)
else CopyIfMatch(hKey, ucfg,
Parameters, REG_MULTI_SZ)
return TRUE;
}
UploadConfig *
GetUploadConfig(void)
{
HKEY hkUploadKey = NULL;
HANDLE hHeap = GetProcessHeap();
LONG lRes;
UploadConfig *ucfg = HeapAlloc(hHeap,
HEAP_ZERO_MEMORY,
sizeof(UploadConfig));
if (!ucfg) return NULL;
// TODO: defaults?
lRes = RegOpenKeyEx(HKEY_CURRENT_USER,
_T(ROOT_KEYNAME "\\Upload"),
0,
KEY_READ,
&hkUploadKey);
if (lRes) {
SetLastError(lRes);
HeapFree(hHeap, 0, ucfg);
return NULL;
}
if (!RegGetAllValues(hkUploadKey, UploadConfigCb, ucfg)) {
HeapFree(hHeap, 0, ucfg);
return NULL;
}
return ucfg;
}