12 #define WIN32_NO_STATUS 23 #define MAX_VALUE_NAME 16383 30 #define RUNDLL(param) \ 31 ((INT_PTR)ShellExecuteW(NULL, L"open", L"rundll32.exe", (param), NULL, SW_SHOWDEFAULT) > 32) 46 StringCbCopyW(szParameters,
sizeof(szParameters),
L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}");
47 StringCbCatW(szParameters,
sizeof(szParameters), lpFolderCLSID);
65 return RUNDLL(szParameters);
78 if (*lpCmdLine == 0 || !
_wcsicmp(lpCmdLine,
L"panel"))
86 else if (!
_wcsicmp(lpCmdLine,
L"folders"))
return RUNDLL(
L"shell32.dll,Options_RunDLL");
100 else if (!
_wcsicmp(lpCmdLine,
L"userpasswords2"))
return RUNDLL(
L"netplwiz.dll,UsersRunDll");
104 L"Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls",
111 for (dwIndex = 0; ; ++dwIndex)
131 if (!
_wcsicmp(lpCmdLine, szValueName))
140 dwDataSize + 2 *
sizeof(
WCHAR));
157 if (*pszData !=
L'\"')
159 *(--pszData) =
L'\"';
160 pszData[dwDataSize /
sizeof(
WCHAR)] =
L'\"';
161 pszData[(dwDataSize /
sizeof(
WCHAR)) + 1] = 0;
static INT OpenShellFolder(LPWSTR lpFolderCLSID)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
VOID WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow)
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)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow)
static INT RunControlPanel(LPCWSTR lpCmd)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define HKEY_LOCAL_MACHINE