29#define NO_SHLWAPI_STREAM
31#include "wine/unicode.h"
37static const WCHAR lpszContentTypeW[] = {
'C',
'o',
'n',
't',
'e',
'n',
't',
' ',
'T',
'y',
'p',
'e',
'\0'};
41 'D',
'a',
't',
'a',
'b',
'a',
's',
'e',
'\\',
'C',
'o',
'n',
't',
'e',
'n',
't',
42 ' ',
'T',
'y',
'p',
'e',
'\\', 0 };
115 phNewUSKey, fIgnoreHKCU);
126 LONG ret2, ret1 = ~ERROR_SUCCESS;
130 hRelativeUSKey, phNewUSKey, fIgnoreHKCU);
166 TRACE(
"one or more opens failed: HKCU=%d HKLM=%d\n", ret1, ret2);
265 relative_key, new_uskey,
flags);
295 *new_uskey = ret_key;
320 FIXME(
"(%p, %s, 0x%08x) stub\n", hUSKey,
debugstr_a(pszValue), delRegFlags);
331 FIXME(
"(%p, %s, 0x%08x) stub\n", hUSKey,
debugstr_w(pszValue), delRegFlags);
352 FIXME(
"(%p, %s, 0x%08x) stub\n", hUSKey,
debugstr_a(pszValue), delRegFlags);
363 FIXME(
"(%p, %s, 0x%08x) stub\n", hUSKey,
debugstr_w(pszValue), delRegFlags);
393 TRACE(
"(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
394 pszValueName, pcchValueNameLen, pdwType,
pvData,
pcbData, enumRegFlags);
399 return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
406 return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
409 FIXME(
"no support for SHREGENUM_BOTH\n");
424 TRACE(
"(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
425 pszValueName, pcchValueNameLen, pdwType,
pvData,
pcbData, enumRegFlags);
430 return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
437 return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
440 FIXME(
"no support for SHREGENUM_BOTH\n");
461 DWORD dwDefaultDataSize)
472 TRACE(
"HKCU RegQueryValue returned %08x\n",
ret);
480 TRACE(
"HKLM RegQueryValue returned %08x\n",
ret);
485 if (pvDefaultData && (dwDefaultDataSize != 0)) {
486 maxmove = (dwDefaultDataSize >= *
pcbData) ? *
pcbData : dwDefaultDataSize;
489 for(
i=0;
i<maxmove;
i++) *
dst++ = *
src++;
491 TRACE(
"setting default data\n");
512 DWORD dwDefaultDataSize)
523 TRACE(
"HKCU RegQueryValue returned %08x\n",
ret);
531 TRACE(
"HKLM RegQueryValue returned %08x\n",
ret);
536 if (pvDefaultData && (dwDefaultDataSize != 0)) {
537 maxmove = (dwDefaultDataSize >= *
pcbData) ? *
pcbData : dwDefaultDataSize;
540 for(
i=0;
i<maxmove;
i++) *
dst++ = *
src++;
542 TRACE(
"setting default data\n");
569 DWORD wDefaultDataSize)
575 TRACE(
"key '%s', value '%s', datalen %d, %s\n",
577 (flagIgnoreHKCU) ?
"Ignoring HKCU" :
"Tries HKCU then HKLM");
582 pcbData, flagIgnoreHKCU, pDefaultData,
602 DWORD wDefaultDataSize)
608 TRACE(
"key '%s', value '%s', datalen %d, %s\n",
610 (flagIgnoreHKCU) ?
"Ignoring HKCU" :
"Tries HKCU then HKLM");
615 pcbData, flagIgnoreHKCU, pDefaultData,
724 TRACE(
"key '%s', value '%s', %s\n",
726 (fIgnoreHKCU) ?
"Ignoring HKCU" :
"Tries HKCU then HKLM");
731 fIgnoreHKCU, 0, 0)) {
751 FIXME(
"Unsupported registry data type %d\n",
type);
754 TRACE(
"got value (type=%d), returning <%s>\n",
type,
755 (
ret) ?
"TRUE" :
"FALSE");
759 TRACE(
"returning default data <%s>\n",
760 (
ret) ?
"TRUE" :
"FALSE");
776 static const WCHAR wYES[]= {
'Y',
'E',
'S',
'\0'};
777 static const WCHAR wTRUE[]= {
'T',
'R',
'U',
'E',
'\0'};
778 static const WCHAR wNO[]= {
'N',
'O',
'\0'};
779 static const WCHAR wFALSE[]={
'F',
'A',
'L',
'S',
'E',
'\0'};
784 TRACE(
"key '%s', value '%s', %s\n",
786 (fIgnoreHKCU) ?
"Ignoring HKCU" :
"Tries HKCU then HKLM");
791 fIgnoreHKCU, 0, 0)) {
811 FIXME(
"Unsupported registry data type %d\n",
type);
814 TRACE(
"got value (type=%d), returning <%s>\n",
type,
815 (
ret) ?
"TRUE" :
"FALSE");
819 TRACE(
"returning default data <%s>\n",
820 (
ret) ?
"TRUE" :
"FALSE");
845 TRACE(
"(%p,%p,%p,%p,%p,%d)\n",
846 hUSKey,pcSubKeys,pcchMaxSubKeyLen,pcValues,
847 pcchMaxValueNameLen,enumRegFlags);
854 pcSubKeys, pcchMaxSubKeyLen, 0,
855 pcValues, pcchMaxValueNameLen, 0, 0, 0);
864 pcSubKeys, pcchMaxSubKeyLen, 0,
865 pcValues, pcchMaxValueNameLen, 0, 0, 0);
886 TRACE(
"(%p,%p,%p,%p,%p,%d)\n",
887 hUSKey,pcSubKeys,pcchMaxSubKeyLen,pcValues,
888 pcchMaxValueNameLen,enumRegFlags);
895 pcSubKeys, pcchMaxSubKeyLen, 0,
896 pcValues, pcchMaxValueNameLen, 0, 0, 0);
905 pcSubKeys, pcchMaxSubKeyLen, 0,
906 pcValues, pcchMaxValueNameLen, 0, 0, 0);
929 TRACE(
"(%p,%d,%p,%p(%d),%d)\n",
930 hUSKey, dwIndex, pszName, pcchValueNameLen,
931 *pcchValueNameLen, enumRegFlags);
936 return RegEnumKeyExA(dokey, dwIndex, pszName, pcchValueNameLen,
943 return RegEnumKeyExA(dokey, dwIndex, pszName, pcchValueNameLen,
946 FIXME(
"no support for SHREGENUM_BOTH\n");
964 TRACE(
"(%p,%d,%p,%p(%d),%d)\n",
965 hUSKey, dwIndex, pszName, pcchValueNameLen,
966 *pcchValueNameLen, enumRegFlags);
971 return RegEnumKeyExW(dokey, dwIndex, pszName, pcchValueNameLen,
978 return RegEnumKeyExW(dokey, dwIndex, pszName, pcchValueNameLen,
981 FIXME(
"no support for SHREGENUM_BOTH\n");
1044 TRACE(
"Creating HKCU key, ret = %d\n",
ret);
1059 TRACE(
"Writing HKCU value, ret = %d\n",
ret);
1070 TRACE(
"Creating HKLM key, ret = %d\n",
ret);
1085 TRACE(
"Writing HKLM value, ret = %d\n",
ret);
1287 if (lpszSubKey && *lpszSubKey)
1295 if (hSubKey !=
hKey)
1315 if (lpszSubKey && *lpszSubKey)
1323 if (hSubKey !=
hKey)
1340 TRACE(
"(hkey=%p,%p,%p,%p,%p)\n",
hKey, pwSubKeys, pwSubKeyMax,
1341 pwValues, pwValueMax);
1354 TRACE(
"(hkey=%p,%p,%p,%p,%p)\n",
hKey, pwSubKeys, pwSubKeyMax,
1355 pwValues, pwValueMax);
1406 DWORD dwRet, dwType, dwUnExpDataLen = 0, dwExpDataLen;
1417 DWORD nBytesToAlloc;
1428 nBytesToAlloc = dwUnExpDataLen;
1433 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
1443 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
1450 if ( pwType ) *pwType = dwType;
1465 DWORD dwRet, dwType, dwUnExpDataLen = 0, dwExpDataLen;
1478 DWORD nBytesToAlloc;
1489 nBytesToAlloc = dwUnExpDataLen;
1494 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
1504 dwUnExpDataLen =
max(nBytesToAlloc, dwExpDataLen);
1511 if ( pwType ) *pwType = dwType;
1563 if (dwMaxSubkeyLen >
sizeof(szNameBuf)/
sizeof(
WCHAR))
1581 if (lpszName != szNameBuf)
1610 DWORD dwRet, dwKeyCount = 0;
1639 DWORD dwRet, dwKeyCount = 0;
1677 DWORD dwKeyCount = 0, dwValueCount = 0, dwRet;
1689 if(!dwRet && !dwKeyCount && !dwValueCount)
1706 DWORD dwKeyCount = 0, dwValueCount = 0, dwRet;
1718 if(!dwRet && !dwKeyCount && !dwValueCount)
1836 TRACE(
"(hkey=%p,%d,%s,%p,%p,%p,%p)\n",
hKey, dwIndex,
1852 TRACE(
"(hkey=%p,%d,%s,%p,%p,%p,%p)\n",
hKey, dwIndex,
1915 WARN(
"Invalid lpszValue would crash under Win32!\n");
1932 WARN(
"Invalid lpszValue would crash under Win32!\n");
1990 size_t dwStrLen =
strlen(lpszType);
2048 DWORD dwlen = iLen - 1, dwType;
2051 if (iLen > 0 && lpExt)
2054 if (lpszType && lpExt && iLen > 2 &&
2059 if (lpExt[1] ==
'.')
2076 DWORD dwlen = iLen - 1, dwType;
2079 if (iLen > 0 && lpExt)
2082 if (lpszType && lpExt && iLen > 2 &&
2087 if (lpExt[1] ==
'.')
2119 dwLen =
strlen(lpszExt) + 1;
2219 TRACE(
"new key is %p\n", newKey);
2263 DWORD dwKeyCount = 0, dwValueCount = 0, dwMaxKeyLen = 0;
2264 DWORD dwMaxValueLen = 0, dwMaxDataLen = 0,
i;
2272 if(!hKeyDst || !hKeySrc)
2286 NULL, &dwValueCount, &dwMaxValueLen, &dwMaxDataLen,
2290 if (dwMaxValueLen > dwMaxKeyLen)
2291 dwMaxKeyLen = dwMaxValueLen;
2296 if (dwMaxDataLen >
sizeof(
buff))
2299 if (!lpszName || !lpBuff)
2306 for(
i = 0;
i < dwKeyCount && !dwRet;
i++)
2308 HKEY hSubKeySrc, hSubKeyDst;
2335 for (
i = 0;
i < dwValueCount && !dwRet;
i++)
2337 DWORD dwNameSize = dwMaxKeyLen, dwType, dwLen = dwMaxDataLen;
2339 dwRet =
RegEnumValueW(hKeySrc,
i, lpszName, &dwNameSize,
NULL, &dwType, lpBuff, &dwLen);
2351 if (lpszSrcSubKey && hKeyDst)
2385 if(*szBuff >=
'0' && *szBuff <=
'9')
2426 static const WCHAR szClassIdKey[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
2427 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
2428 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
2429 'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
'C',
'L',
'S',
'I',
'D',
'\\' };
2431#define szClassIdKeyLen (sizeof(szClassIdKey)/sizeof(WCHAR))
2441 wcscpy(szKey, bUseHKCU ?
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\" :
L"CLSID\\");
2451 memcpy(szKey, szClassIdKey,
sizeof(szClassIdKey));
PRTL_UNICODE_STRING_BUFFER Path
ACPI_SIZE strlen(const char *String)
static DWORD const LPVOID const lpReserved
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define RegCloseKey(hKey)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INVALID_FUNCTION
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
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 RegEnumValueA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpdwReserved, _Out_opt_ LPDWORD lpdwType, _Out_opt_ LPBYTE lpData, _Inout_opt_ LPDWORD lpcbData)
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
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)
LONG WINAPI RegEnumKeyExA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
INT WINAPI StrToIntW(LPCWSTR lpString)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
#define MultiByteToWideChar
DWORD WINAPI ExpandEnvironmentStringsA(IN LPCSTR lpSrc, IN LPSTR lpDst, IN DWORD nSize)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL NTAPI IsBadWritePtr(IN LPVOID lp, IN UINT_PTR ucb)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
HRESULT WINAPI SHRegisterValidateTemplate(LPCWSTR filename, BOOL unknown)
BOOL WINAPI UnregisterMIMETypeForExtensionW(LPCWSTR lpszSubKey)
DWORD WINAPI SHCopyKeyW(HKEY hKeySrc, LPCWSTR lpszSrcSubKey, HKEY hKeyDst, DWORD dwReserved)
LONG WINAPI SHEnumKeyExW(HKEY hKey, DWORD dwIndex, LPWSTR lpszSubKey, LPDWORD pwLen)
static const char lpszContentTypeA[]
LONG WINAPI SHRegOpenUSKeyW(LPCWSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU)
LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags)
DWORD WINAPI SHCopyKeyA(HKEY hKeySrc, LPCSTR lpszSrcSubKey, HKEY hKeyDst, DWORD dwReserved)
struct SHUSKEY * LPSHUSKEY
DWORD WINAPI SHGetValueGoodBootA(HKEY hkey, LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pbData)
BOOL WINAPI UnregisterMIMETypeForExtensionA(LPCSTR lpszSubKey)
LONG WINAPI SHRegQueryUSValueA(HUSKEY hUSKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize)
BOOL WINAPI RegisterMIMETypeForExtensionA(LPCSTR lpszSubKey, LPCSTR lpszValue)
DWORD WINAPI SHRegSetPathA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, LPCSTR lpszPath, DWORD dwFlags)
static HKEY REG_GetHKEYFromHUSKEY(HUSKEY hUSKey, BOOL which)
LONG WINAPI SHRegEnumUSKeyA(HUSKEY hUSKey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchValueNameLen, SHREGENUM_FLAGS enumRegFlags)
DWORD WINAPI SHDeleteValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue)
DWORD WINAPI SHDeleteKeyW(HKEY hKey, LPCWSTR lpszSubKey)
LONG WINAPI SHQueryInfoKeyA(HKEY hKey, LPDWORD pwSubKeys, LPDWORD pwSubKeyMax, LPDWORD pwValues, LPDWORD pwValueMax)
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
LONG WINAPI SHRegGetUSValueA(LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
DWORD WINAPI SHDeleteOrphanKeyW(HKEY hKey, LPCWSTR lpszSubKey)
BOOL WINAPI GetMIMETypeSubKeyW(LPCWSTR lpszType, LPWSTR lpszBuffer, DWORD dwLen)
DWORD WINAPI SHRegGetPathW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPWSTR lpszPath, DWORD dwFlags)
LONG WINAPI SHEnumValueA(HKEY hKey, DWORD dwIndex, LPSTR lpszValue, LPDWORD pwLen, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
static const DWORD dwLenMimeDbContent
LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY hUSKey, LPCSTR pszValue, SHREGDEL_FLAGS delRegFlags)
DWORD WINAPI SHGetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
HRESULT WINAPI SHRegGetCLSIDKeyW(REFGUID, LPCWSTR, BOOL, BOOL, PHKEY)
LONG WINAPI SHRegWriteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
LONG WINAPI SHRegEnumUSKeyW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pszName, LPDWORD pcchValueNameLen, SHREGENUM_FLAGS enumRegFlags)
LONG WINAPI SHEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpszSubKey, LPDWORD pwLen)
DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey)
LONG WINAPI SHRegSetUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
LONG WINAPI SHRegOpenUSKeyA(LPCSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU)
LONG WINAPI SHRegCreateUSKeyA(LPCSTR path, REGSAM samDesired, HUSKEY relative_key, PHUSKEY new_uskey, DWORD flags)
BOOL WINAPI RegisterExtensionForMIMETypeW(LPCWSTR lpszExt, LPCWSTR lpszType)
DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey)
HRESULT WINAPI SHRegGetCLSIDKeyA(REFGUID guid, LPCSTR lpszValue, BOOL bUseHKCU, BOOL bCreate, PHKEY phKey)
BOOL WINAPI RegisterExtensionForMIMETypeA(LPCSTR lpszExt, LPCSTR lpszType)
LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY hUSKey, LPCWSTR pszValue, SHREGDEL_FLAGS delRegFlags)
LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags)
LONG WINAPI SHRegWriteUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
BOOL WINAPI UnregisterExtensionForMIMETypeA(LPCSTR lpszType)
static const char szMimeDbContentA[]
BOOL WINAPI GetMIMETypeSubKeyA(LPCSTR lpszType, LPSTR lpszBuffer, DWORD dwLen)
LONG WINAPI SHRegSetUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags)
LONG WINAPI SHRegCloseUSKey(HUSKEY hUSKey)
LONG WINAPI SHRegCreateUSKeyW(LPCWSTR path, REGSAM samDesired, HUSKEY relative_key, PHUSKEY new_uskey, DWORD flags)
BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault)
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
static const WCHAR szMimeDbContentW[]
BOOL WINAPI MIME_GetExtensionW(LPCWSTR lpszType, LPWSTR lpExt, INT iLen)
DWORD WINAPI SHQueryValueExA(HKEY hKey, LPCSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
LONG WINAPI SHQueryInfoKeyW(HKEY hKey, LPDWORD pwSubKeys, LPDWORD pwSubKeyMax, LPDWORD pwValues, LPDWORD pwValueMax)
DWORD WINAPI SHSetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
HKEY WINAPI SHRegDuplicateHKey(HKEY hKey)
DWORD WINAPI SHDeleteOrphanKeyA(HKEY hKey, LPCSTR lpszSubKey)
BOOL WINAPI MIME_GetExtensionA(LPCSTR lpszType, LPSTR lpExt, INT iLen)
static const char szExtensionA[]
DWORD WINAPI SHRegGetPathA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, LPSTR lpszPath, DWORD dwFlags)
DWORD WINAPI SHGetValueGoodBootW(HKEY hkey, LPCWSTR pSubKey, LPCWSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pbData)
DWORD WINAPI SHSetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
INT WINAPI SHStringFromGUIDW(REFGUID, LPWSTR, INT)
static const WCHAR szExtensionW[]
DWORD WINAPI SHRegSetPathW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPCWSTR lpszPath, DWORD dwFlags)
int WINAPI SHRegGetIntW(HKEY hKey, LPCWSTR lpszValue, int iDefault)
LONG WINAPI SHRegGetUSValueW(LPCWSTR pSubKey, LPCWSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
BOOL WINAPI UnregisterExtensionForMIMETypeW(LPCWSTR lpszType)
LONG WINAPI SHRegEnumUSValueW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pszValueName, LPDWORD pcchValueNameLen, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags)
BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault)
static const WCHAR lpszContentTypeW[]
LONG WINAPI SHRegEnumUSValueA(HUSKEY hUSKey, DWORD dwIndex, LPSTR pszValueName, LPDWORD pcchValueNameLen, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags)
DWORD WINAPI SHDeleteValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue)
LONG WINAPI SHRegDeleteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, SHREGDEL_FLAGS delRegFlags)
BOOL WINAPI RegisterMIMETypeForExtensionW(LPCWSTR lpszSubKey, LPCWSTR lpszValue)
LONG WINAPI SHEnumValueW(HKEY hKey, DWORD dwIndex, LPWSTR lpszValue, LPDWORD pwLen, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
DWORD WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey)
LONG WINAPI SHRegQueryUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize)
LONG WINAPI SHRegDeleteUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, SHREGDEL_FLAGS delRegFlags)
static unsigned char buff[32768]
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
int const JOCTET unsigned int datalen
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
static const WCHAR szName[]
_In_ int _In_ BOOL bCreate
#define SHREGSET_FORCE_HKLM
#define SHREGSET_FORCE_HKCU
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_updates_bytes_to_ pdwDataLen BYTE * pbData
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
_In_ ULONG _In_opt_ PVOID pvData
#define HRESULT_FROM_WIN32(x)
#define ERROR_KEY_HAS_CHILDREN
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_CONFIG
#define HKEY_CURRENT_USER
#define HKEY_PERFORMANCE_DATA
#define HKEY_CLASSES_ROOT
int WINAPI GetSystemMetrics(_In_ int)