From 292b58be4628c1893267903e111fa6ca0ba572a1 Mon Sep 17 00:00:00 2001 From: freedom Date: Thu, 20 Jul 2023 04:15:21 -0600 Subject: [PATCH] dialogs shuffle around when progmgr is the default shell, shutdown dialog refuses to work (boo!) --- progmgr/lang/res_en-US.rc | Bin 5750 -> 5902 bytes progmgr/progmgr.c | 33 ++++++++++++++++++++++++++------- progmgr/progmgr.h | 3 +-- progmgr/resource.h | Bin 3034 -> 3412 bytes progmgr/shellint.c | 10 +++++----- progmgr/wndproc.c | 26 ++++++++++++++++---------- 6 files changed, 48 insertions(+), 24 deletions(-) diff --git a/progmgr/lang/res_en-US.rc b/progmgr/lang/res_en-US.rc index 7b689cac41e3141b58adce329aae24410830bc05..472b37324f77821e8531d8ca7a2ece725f6923a5 100644 GIT binary patch delta 310 zcmeyS)2Fu~fMfD3PLavCI4mYdu_>^+GDI+VPJYNIyg80@7PquMgFb@-gCj!$5auvs zG9)u3GL!)6e1^QuA4QZI>vQW^3XN`WkApn_Z=Oa$^%7>XGnsyrE7 z7=jt%8G;x>8T^2{AW#X&R|D$GW6%RbB{bC`K169KGs4;{9O)q9*$ez5B zPdFXb0_B0L=i&hXd(6h7_RL z 0) { diff --git a/progmgr/progmgr.h b/progmgr/progmgr.h index 63f7e66..ce8ecf9 100644 --- a/progmgr/progmgr.h +++ b/progmgr/progmgr.h @@ -20,7 +20,6 @@ processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") /* Macros and Defines */ #define GET_WM_COMMAND_ID(wParam, lParam) LOWORD(wParam) -#define CharSizeOf(x) (sizeof(x) / sizeof(*x)) // RunFileDlg flags #define RFF_NOBROWSE 0x0001 // Removes the browse button #define RFF_NODEFAULT 0x0002 // No default item selected @@ -46,7 +45,7 @@ extern WCHAR szWebsite[64]; /* Function Prototypes */ // SHELLINT.C BOOL RunFile(HWND hWndOwner, HICON hIcon, LPWSTR lpszDir, LPWSTR lpszTitle, LPWSTR lpszDesc, DWORD dwFlags); -BOOL ShutdownDlg(HWND hWndOwner); +BOOL ExitWindowsDialog(HWND hWndOwner); // WNDPROC.C LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam); \ No newline at end of file diff --git a/progmgr/resource.h b/progmgr/resource.h index 55ff830e59c0ef87e4853c9ce4979dae444fe572..0d45de395d946b38995005472af5f6cd9ac3cf1c 100644 GIT binary patch delta 389 zcmca5eno1-88%K=h6n~vh7bnM&9~V$G76hA7%=EE7&4eKSTg7^C@>f?7)Mc=AV1?a3E7<$xmZIbAh@I)IRufr~*O2o)GS z7*ZK>7z)6q88Vnd%{OPToIH_Bb@BlYoyqIC304up z;K&fn;LYI6;LZ>Pm*)hVWjL9a`|RXp+!BI8KvNL9IT=hQFXWaL$FA2DBqs2%5 delta 184 zcmca2bxVB188-f41`mc%h7bl927iWd2EWZ$*)}pVnopj|VLy2mm%`)&96Xa*I3*_E zfU-R}MS!vonWQIwU}pi#c5tczMHD&Y!Mt0X3e4sVCX+XEYERbSl2A8fFlR7j;AP-q z&<8>Vpk=8HISd61IzYA|P{x2k7f72;UI^6R#w9ZO28Y7rU0iaErjs{9?byY|HJOQ9 NWO58A$K(^-Cjc4PFn0g| diff --git a/progmgr/shellint.c b/progmgr/shellint.c index 575377a..46af869 100644 --- a/progmgr/shellint.c +++ b/progmgr/shellint.c @@ -35,25 +35,25 @@ BOOL RunFile(HWND hWndOwner, return TRUE; } - return 0; + return FALSE; } /* * * *\ - ShutdownDlg - + ExitWindowsDialog - Produces a Shutdown dialog window. RETURNS - True if successful, false if unsuccessful. \* * * */ -BOOL ShutdownDlg(HWND hWndOwner) +BOOL ExitWindowsDialog(HWND hWndOwner) { HMODULE hLib = LoadLibrary(L"shell32.dll"); if (hLib) { - FARPROC fLib = GetProcAddress(hLib, MAKEINTRESOURCEA(60)); + FARPROC fLib = GetProcAddress(hLib, (LPCSTR)60); if (fLib(hWndOwner)) FreeLibrary(hLib); return TRUE; } - return 0; + return FALSE; } diff --git a/progmgr/wndproc.c b/progmgr/wndproc.c index 5bd3d47..24594ee 100644 --- a/progmgr/wndproc.c +++ b/progmgr/wndproc.c @@ -53,12 +53,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_SYSCOMMAND: { - // if (wParam == IDM_TASKMGR) { - //ShellExecute(hwndProgMgr, &TEXT("OPEN\0"), &TEXT("TASKMGR.EXE\0"), NULL, NULL, SW_NORMAL); - // break; - // } - //break; - if (wParam == IDM_FILE_SHUTDOWN) { + if (wParam == IDM_SHUTDOWN) { + CmdProc(hWnd, wParam, lParam); + break; + } + if (wParam == IDM_TASKMGR) { + ShellExecute(hWndProgMgr, L"open", L"TASKMGR.EXE", NULL, NULL, SW_NORMAL); + break; + } + if (wParam == IDM_FILE_EXIT) { CmdProc(hWnd, wParam, lParam); break; } @@ -98,12 +101,16 @@ LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam) { switch (GET_WM_COMMAND_ID(wParam, lParam)) { + case IDM_SHUTDOWN: + ExitWindowsDialog(hWnd); + break; + case IDM_FILE_RUN: RunFile(hWnd, NULL, NULL, NULL, NULL, RFF_CALCDIRECTORY); break; - case IDM_FILE_SHUTDOWN: - ShutdownDlg(hWnd); + case IDM_FILE_EXIT: + PostQuitMessage(0); break; case IDM_HELP_INDEX: @@ -113,9 +120,8 @@ LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam) case IDM_HELP_ABOUT: { WCHAR szTitle[40]; - // OutputDebugString(L"ABOUT BALLS!"); - LoadString(hAppInstance, IDS_APPTITLE, szTitle, CharSizeOf(szTitle)); + LoadString(hAppInstance, IDS_APPTITLE, szTitle, ARRAYSIZE(szTitle)); ShellAbout(hWndProgMgr, szTitle, NULL, hProgMgrIcon); break; }