Esempio n. 1
0
INT_PTR CALLBACK Dialog::DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	Dialog * dlg = NULL;

	switch (uMsg) {
		case WM_INITDIALOG:
			dlg = (Dialog*)lParam;
			if (!dlg)
				return FALSE;
			dlg->m_hwnd = hwnd;
			::SetWindowLongPtr(hwnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(dlg));
			return dlg->OnInitDialog();
		default :
			dlg = (Dialog*)::GetWindowLongPtr(hwnd, GWLP_USERDATA);
			if (!dlg)
				return FALSE;
			return dlg->DlgMsgProc(uMsg, wParam, lParam);
	}

	return FALSE;
}