[MSGINA] gui: Improve 'DlgData_Destroy()'

Addendum to 623dd26cce.
This commit is contained in:
Serge Gautherie 2020-03-31 09:39:16 +02:00 committed by Mark Jansen
parent bd593ed366
commit d6c4411207

View file

@ -86,14 +86,29 @@ DlgData_LoadBitmaps(_Inout_ PDLG_DATA pDlgData)
} }
} }
static void static VOID
DlgData_Destroy(PDLG_DATA pDlgData) DlgData_Destroy(_Inout_ HWND hwndDlg)
{ {
if (!pDlgData) PDLG_DATA pDlgData;
return;
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); HeapFree(GetProcessHeap(), 0, pDlgData);
} }
@ -264,7 +279,7 @@ StatusDialogProc(
{ {
KillTimer(hwndDlg, IDT_BAR); KillTimer(hwndDlg, IDT_BAR);
} }
DlgData_Destroy(pDlgData); DlgData_Destroy(hwndDlg);
return TRUE; return TRUE;
} }
} }
@ -434,7 +449,7 @@ WelcomeDialogProc(
} }
case WM_DESTROY: case WM_DESTROY:
{ {
DlgData_Destroy(pDlgData); DlgData_Destroy(hwndDlg);
return TRUE; return TRUE;
} }
} }
@ -1230,7 +1245,7 @@ LogonDialogProc(
} }
case WM_DESTROY: case WM_DESTROY:
DlgData_Destroy(pDlgData); DlgData_Destroy(hwndDlg);
return TRUE; return TRUE;
case WM_COMMAND: case WM_COMMAND:
@ -1489,7 +1504,7 @@ UnlockDialogProc(
return TRUE; return TRUE;
} }
case WM_DESTROY: case WM_DESTROY:
DlgData_Destroy(pDlgData); DlgData_Destroy(hwndDlg);
return TRUE; return TRUE;
case WM_COMMAND: case WM_COMMAND:
@ -1577,7 +1592,7 @@ LockedDialogProc(
} }
case WM_DESTROY: case WM_DESTROY:
{ {
DlgData_Destroy(pDlgData); DlgData_Destroy(hwndDlg);
return TRUE; return TRUE;
} }
} }