This commit is contained in:
dougt%meer.net 2006-04-25 00:09:40 +00:00
Родитель a8c7072023
Коммит 7f0a2898d1
1 изменённых файлов: 30 добавлений и 43 удалений

Просмотреть файл

@ -371,43 +371,34 @@ MOZCE_SHUNT_API LONG mozce_RegOpenKeyExA(HKEY inKey, LPCSTR inSubKey, DWORD inOp
MOZCE_SHUNT_API LONG mozce_RegQueryValueExA(HKEY inKey, LPCSTR inValueName, LPDWORD inReserved, LPDWORD outType, LPBYTE inoutBData, LPDWORD inoutDData)
{
MOZCE_PRECHECK
#ifdef DEBUG
mozce_printf("mozce_RegQueryValueExA called\n");
mozce_printf("mozce_RegQueryValueExA called\n");
#endif
LONG retval = ERROR_GEN_FAILURE;
LPTSTR wName = a2w_malloc(inValueName, -1, NULL);
if(NULL != wName)
{
DWORD tempSize = *inoutDData * sizeof(TCHAR); /* in bytes */
LPTSTR tempData = (LPTSTR)malloc(tempSize);
if(NULL != tempData)
TCHAR wPath[MAX_PATH], tempData[MAX_PATH];
DWORD tempSize = MAX_PATH;
DWORD ourOutType;
a2w_buffer(inValueName, -1, wPath, MAX_PATH);
retval = RegQueryValueEx(inKey, inValueName ? wPath : NULL, inReserved, &ourOutType, (LPBYTE)tempData, &tempSize);
if (ERROR_SUCCESS == retval)
{
if(REG_EXPAND_SZ == ourOutType || REG_SZ == ourOutType)
{
retval = RegQueryValueEx(inKey, wName, inReserved, outType, (LPBYTE)tempData, &tempSize);
/*
** Convert to ANSI if a string....
*/
if(ERROR_SUCCESS == retval && (
REG_EXPAND_SZ == *outType ||
REG_MULTI_SZ == *outType ||
REG_SZ == *outType
))
{
*inoutDData = (DWORD)w2a_buffer(tempData, tempSize / sizeof(TCHAR), (LPSTR)inoutBData, *inoutDData);
}
else
{
memcpy(inoutBData, tempData, tempSize);
*inoutDData = tempSize;
}
free(tempData);
w2a_buffer(tempData, tempSize, (LPSTR)inoutBData, *inoutDData);
}
else
{
memcpy(inoutBData, tempData, tempSize);
*inoutDData = tempSize;
}
free(wName);
if (outType)
*outType = ourOutType;
}
return retval;
@ -426,22 +417,16 @@ MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD
unsigned short valnamew[256];
LONG res;
LPBYTE lpDataNew = (LPBYTE) lpData;
DWORD dwDataSize = dwSize;
LPTSTR wName = NULL;
MultiByteToWideChar(CP_ACP, 0, valname, -1, valnamew, charcount(valnamew));
if(dwType == REG_SZ || dwType == REG_EXPAND_SZ)
{
dwDataSize = dwSize * 2;
lpDataNew = (LPBYTE) malloc(dwDataSize);
MultiByteToWideChar(CP_ACP, 0, (const char*) lpData, -1, (unsigned short *)lpDataNew, dwDataSize);
}
wName = a2w_malloc((char*)lpData, -1, NULL);
else
return -1;
res = RegSetValueExW(hKey, valnamew, dwReserved, dwType, lpDataNew, dwDataSize);
res = RegSetValueExW(hKey, valname ? valnamew : NULL, dwReserved, dwType, (const BYTE*)wName, (lstrlenW(wName) + 1)*sizeof(WCHAR));
free(lpDataNew);
return res;
@ -1395,8 +1380,10 @@ MOZCE_SHUNT_API HCURSOR mozce_LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorNa
MOZCE_PRECHECK
#ifdef DEBUG
mozce_printf("mozce_LoadCursorA called\n");
mozce_printf("-- mozce_LoadCursorA called\n");
#endif
return NULL;
unsigned short *lpCursorNameW;
HCURSOR hc;