https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d6c44112073a23525501cf...
commit d6c44112073a23525501cf4435a94a0c39a7996d Author: Serge Gautherie reactos-git_serge_171003@gautherie.fr AuthorDate: Tue Mar 31 09:39:16 2020 +0200 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sat Jul 11 01:44:26 2020 +0200
[MSGINA] gui: Improve 'DlgData_Destroy()'
Addendum to 623dd26ccea5e79001aee769c230fb4f8e304fc8. --- dll/win32/msgina/gui.c | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c index 3cb30bb638f..106a4ebcb96 100644 --- a/dll/win32/msgina/gui.c +++ b/dll/win32/msgina/gui.c @@ -86,14 +86,29 @@ DlgData_LoadBitmaps(_Inout_ PDLG_DATA pDlgData) } }
-static void -DlgData_Destroy(PDLG_DATA pDlgData) +static VOID +DlgData_Destroy(_Inout_ HWND hwndDlg) { + PDLG_DATA pDlgData; + + pDlgData = (PDLG_DATA)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA); if (!pDlgData) + { return; + } + + SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR)NULL); + + if (pDlgData->hBarBitmap) + { + DeleteObject(pDlgData->hBarBitmap); + } + + if (pDlgData->hLogoBitmap) + { + DeleteObject(pDlgData->hLogoBitmap); + }
- DeleteObject(pDlgData->hLogoBitmap); - DeleteObject(pDlgData->hBarBitmap); HeapFree(GetProcessHeap(), 0, pDlgData); }
@@ -264,7 +279,7 @@ StatusDialogProc( { KillTimer(hwndDlg, IDT_BAR); } - DlgData_Destroy(pDlgData); + DlgData_Destroy(hwndDlg); return TRUE; } } @@ -434,7 +449,7 @@ WelcomeDialogProc( } case WM_DESTROY: { - DlgData_Destroy(pDlgData); + DlgData_Destroy(hwndDlg); return TRUE; } } @@ -1230,7 +1245,7 @@ LogonDialogProc( }
case WM_DESTROY: - DlgData_Destroy(pDlgData); + DlgData_Destroy(hwndDlg); return TRUE;
case WM_COMMAND: @@ -1489,7 +1504,7 @@ UnlockDialogProc( return TRUE; } case WM_DESTROY: - DlgData_Destroy(pDlgData); + DlgData_Destroy(hwndDlg); return TRUE;
case WM_COMMAND: @@ -1577,7 +1592,7 @@ LockedDialogProc( } case WM_DESTROY: { - DlgData_Destroy(pDlgData); + DlgData_Destroy(hwndDlg); return TRUE; } }