// options dialog proc INT_PTR CALLBACK Options::ExportOptionsDlgProcS(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { Options* exp; if (message == WM_INITDIALOG) { // record exp instance pointer for subsequent callbacks exp = (Options*) lParam; SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG)lParam); } else { exp = (Options*)(size_t) GetWindowLongPtr(hWnd, GWLP_USERDATA); } // hand off to message-handler method return exp ? exp->ExportOptionsDlgProc(hWnd, message, wParam, lParam) : false; }