HRESULT CALLBACK WIZARD::Background_PaintHook (HWND hBkg, UINT msg, WPARAM wp, LPARAM lp) { PVOID oldProc = Subclass_FindNextHook (hBkg, WIZARD::Background_PaintHook); switch (msg) { case WM_PAINT: LPWIZARD pWiz; if ((pWiz = WIZARD::GetWizard (hBkg)) != NULL) { if (pWiz->Background_OnPaint()) return TRUE; } break; case WM_DESTROY: Subclass_RemoveHook (hBkg, WIZARD::Background_PaintHook); break; } if (oldProc) return CallWindowProc ((WNDPROC)oldProc, hBkg, msg, wp, lp); else return DefWindowProc (hBkg, msg, wp, lp); }
HRESULT CALLBACK WIZARD::Template_LeftPaneHook (HWND hLHS, UINT msg, WPARAM wp, LPARAM lp) { PVOID oldProc = Subclass_FindNextHook (hLHS, WIZARD::Template_LeftPaneHook); switch (msg) { case WM_PAINT: LPWIZARD pWiz; if ((pWiz = WIZARD::GetWizard (GetParent (hLHS))) != NULL) { if (pWiz->Template_OnPaintLHS (hLHS)) return TRUE; } break; case WM_DESTROY: Subclass_RemoveHook (hLHS, WIZARD::Template_LeftPaneHook); break; } if (oldProc) return (BOOL)CallWindowProc ((WNDPROC)oldProc, hLHS, msg, wp, lp); else return (BOOL)DefWindowProc (hLHS, msg, wp, lp); }
LRESULT CALLBACK Main_TabHookProc (HWND hTab, UINT msg, WPARAM wp, LPARAM lp) { LRESULT rc = CallWindowProc ((WNDPROC)Subclass_FindNextHook (hTab, Main_TabHookProc), hTab, msg, wp, lp); switch (msg) { // Since this is a subclass proc, it's not around when the window // is created. Any WM_CREATE processing we'd ordinarily do here // must therefore be done at the point where the tab control is // subclassed. // // case WM_CREATE: case WM_SIZE: if (lp != 0) ResizeWindow (hTab, awdTabChild, rwaFixupGuts); break; case WM_DESTROY: Subclass_RemoveHook (hTab, Main_TabHookProc); break; } return rc; }
BOOL CALLBACK PartitionPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp) { if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp)) return FALSE; switch (msg) { case WM_INITDIALOG: OnInitDialog(hwndDlg); CheckEnableButtons(); break; case WM_DESTROY_SHEET: Subclass_RemoveHook(g_pWiz->GetWindow(), WizardDlgProc); break; case WM_COMMAND: switch (LOWORD(wp)) { case IDNEXT: if (SavePartitionInfo(TRUE)) g_pWiz->SetState(sidSTEP_NINE); break; case IDBACK: if (SavePartitionInfo(FALSE)) g_pWiz->SetState(sidSTEP_SEVEN); break; case IDC_CREATE_PARTITION: g_CfgData.configPartition = CS_CONFIGURE; CheckEnableButtons(); EnableDriveListCtrls(); break; case IDC_DONT_CREATE_PARTITION: g_CfgData.configPartition = CS_DONT_CONFIGURE; CheckEnableButtons(); EnableDriveListCtrls(FALSE); break; case IDC_PARTITION_NAME: if (HIWORD(wp) == EN_CHANGE) { OnPartitionName(); SetFocus((HWND)lp); } break; } break; case WM_NOTIFY: switch (((LPNMHDR)lp)->code) { case FLN_ITEMSELECT: OnListSelection((LPFLN_ITEMSELECT_PARAMS)lp); } break; } return FALSE; }
void rwFindAndRemoveWnd (HWND hWnd) { for (size_t ii = 0; ii < (int)cwl; ii++) { if (awl[ii].hWnd == hWnd) { Subclass_RemoveHook (awl[ii].hWnd, hWnd); awl[ii].hWnd = NULL; return; } } }
void Elapsed_OnDestroy (ElapsedInfo *pei) { Subclass_RemoveHook (GetParent(pei->hElapsed), ElapsedDlgProc); pei->hElapsed = NULL; }
void Time_OnDestroy (TimeInfo *pti) { Subclass_RemoveHook (GetParent(pti->hTime), TimeDlgProc); pti->hTime = NULL; }
void SockAddr_OnDestroy (SockAddrInfo *psai) { Subclass_RemoveHook (GetParent(psai->hSockAddr), SockAddrDlgProc); psai->hSockAddr = NULL; }