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)
static INT RunControlPanel(LPCWSTR lpCmd)
INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow)
VOID WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
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 RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define HeapFree(x, y, z)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
#define HKEY_LOCAL_MACHINE