BOOL CDLUpdateDlg::OnInitDialog() { HRESULT hr = S_OK; CDialog::OnInitDialog(); FC_DEBUGPRINT1(_T("CEDL> CDLUpdateDlg::OnInitDialog(): thread id=0x%x\n"),::GetCurrentThreadId()); assert(m_pStation != NULL); //set the help id for context sensitive help SetWindowContextHelpId(IDD); // init the controls m_ImageList.Create(IDB_DOMIMAGELIST, DLG_BITMAP_WIDTH, 0, RGB(255, 0, 255)); m_ImageList.SetBkColor(GetSysColor(COLOR_WINDOW)); m_DomainListCtrl.SetImageList(&m_ImageList, LVSIL_SMALL); m_DomainListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT); DisplayColumnHeadings(IDS_COL_DOMAINLIST); m_DownloadBtn.EnableWindow(FALSE); m_strControlName.Format(_T("%s [%s]"), m_pStation->GetConfigName(), m_pStation->GetAddress()); ClearProgress(); // start the preparation for DL assert(m_pDLEvents != NULL); m_pDLEvents->SetListClient(this->GetSafeHwnd()); if (m_pStation->IsRequestPending()) { FC_DEBUGPRINT(_T("CEDL> OnInitDialog: Download Pending\n")); m_pStation->FireErrorMessage(E_CE_DL_PENDING); m_pStation->FireError(E_CE_DL_PENDING); m_strDomainName.LoadString(IDS_CONN_INTR); UpdateData(FALSE); return TRUE; } m_strDomainName.LoadString(IDS_CONN); UpdateData(FALSE); m_hSaveCursor = ::SetCursor(::LoadCursor(NULL, IDC_APPSTARTING)); m_hwndCapture = GetSafeHwnd(); if (m_hwndCapture) { ::SetCapture(m_hwndCapture); } m_pStation->SetSignal(BUILD_DL_LIST); m_pStation->ResetSignal(DOWN_LD); m_pStation->ResetSignal(DOWN_LD_ALL); m_pStation->ResetSignal(PRJ_NEW); m_pStation->ResetSignal(PRJ_CHANGED); m_pStation->SetState(CEDL_STAT_WAIT_CONNECT); m_pStation->DoStateMachine(); if(FAILED(hr)) { FC_DEBUGPRINT1(_T("CEDL> OnInitDialog: failed hr= 0x%x\n"),hr); m_pStation->FireErrorMessage(hr); m_pStation->FireError(hr); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
BOOL CDLStateDlg::OnInitDialog () { CDialog::OnInitDialog (); //set the help id for context sensitive help SetWindowContextHelpId(IDD); PrepareList (); m_Details.EnableWindow (m_iSelection != -1); return (TRUE); // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
BOOL CALLBACK KnownDllsDialogProc( HWND hdlg, UINT uMessage, WPARAM wParam, LPARAM lParam ) { static HWND hwndDlls; switch (uMessage) { case WM_INITDIALOG: { hwndDlls = GetDlgItem( hdlg, IDC_KNOWN_DLLS ); SetWindowContextHelpId( hwndDlls, IDH_DLLS_OPTIONS ); CenterWindow( GetParent( hdlg ), hwndFrame ); // // set/initialize the image list(s) // HIMAGELIST himlState = ImageList_Create( 16, 16, TRUE, 2, 0 ); ImageList_AddMasked( himlState, LoadBitmap (GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_CHECKSTATES)), RGB (255,0,0) ); ListView_SetImageList( hwndDlls, himlState, LVSIL_STATE ); // // set/initialize the columns // LV_COLUMN lvc = {0}; lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; lvc.pszText = "DLL Name"; lvc.iSubItem = 0; lvc.cx = 260; lvc.fmt = LVCFMT_LEFT; ListView_InsertColumn( hwndDlls, 0, &lvc ); } break; case WM_REFRESH_LIST: ListView_DeleteAllItems( hwndDlls ); goto refresh_list; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_KILLACTIVE: SetWindowLong( hdlg, DWL_MSGRESULT, 0 ); break; case PSN_APPLY: SaveOptions(); SendMessage( GetParent(hdlg), PSM_UNCHANGED, (LPARAM)hdlg, 0 ); SetWindowLong( hdlg, DWL_MSGRESULT, 0 ); break; case NM_CLICK: { DWORD dwpos = GetMessagePos(); LV_HITTESTINFO lvhti = {0}; lvhti.pt.x = LOWORD(dwpos); lvhti.pt.y = HIWORD(dwpos); MapWindowPoints( HWND_DESKTOP, hwndDlls, &lvhti.pt, 1 ); int iItemClicked = ListView_HitTest( hwndDlls, &lvhti ); if (iItemClicked == -1) { // // add a new item // LV_ITEM lvi = {0}; lvi.pszText = ""; lvi.iItem = ListView_GetItemCount( hwndDlls ); lvi.iSubItem = 0; lvi.iImage = 0; lvi.mask = LVIF_TEXT; lvi.state = 0; lvi.stateMask = 0; iItemClicked = ListView_InsertItem( hwndDlls, &lvi ); } ListView_EditLabel( hwndDlls, iItemClicked ); } break; case LVN_ENDLABELEDIT: { LV_DISPINFO *DispInfo = (LV_DISPINFO*)lParam; LPSTR p = ApiMonOptions.KnownDlls; ULONG i = 0; LPSTR nk = (LPSTR) MemAlloc( 2048 ); LPSTR p1 = nk; while( i != (ULONG)DispInfo->item.iItem ) { strcpy( p1, p ); p1 += (strlen(p) + 1); p += (strlen(p) + 1); i += 1; } p += (strlen(p) + 1); if (DispInfo->item.pszText && DispInfo->item.pszText[0]) { strcpy( p1, DispInfo->item.pszText ); p1 += (strlen(DispInfo->item.pszText) + 1); } while( p && *p ) { strcpy( p1, p ); p1 += (strlen(p) + 1); p += (strlen(p) + 1); } *p1 = 0; memcpy( ApiMonOptions.KnownDlls, nk, 2048 ); MemFree( nk ); PostMessage( hdlg, WM_REFRESH_LIST, 0, 0 ); } case PSN_SETACTIVE: refresh_list: { LPSTR p = ApiMonOptions.KnownDlls; LV_ITEM lvi = {0}; int iItem = 0; while( p && *p ) { lvi.pszText = p; lvi.iItem = iItem; iItem += 1; lvi.iSubItem = 0; lvi.iImage = 0; lvi.mask = LVIF_TEXT; lvi.state = 0; lvi.stateMask = 0; ListView_InsertItem( hwndDlls, &lvi ); p += (strlen(p) + 1); } } break; } break; case WM_HELP: { LPHELPINFO hi = (LPHELPINFO)lParam; ProcessHelpRequest( hdlg, hi->iCtrlId ); } break; } return FALSE; }
static INT_PTR CALLBACK MessageBoxProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { int i; PMSGBOXINFO mbi; HELPINFO hi; HWND owner; switch(message) { case WM_INITDIALOG: mbi = (PMSGBOXINFO)lParam; if(!GetPropW(hwnd, L"ROS_MSGBOX")) { SetPropW(hwnd, L"ROS_MSGBOX", (HANDLE)lParam); if(mbi->Icon) SendDlgItemMessageW(hwnd, MSGBOX_IDICON, STM_SETICON, (WPARAM)mbi->Icon, 0); SetWindowContextHelpId(hwnd, mbi->ContextHelpId); /* set control fonts */ SendDlgItemMessageW(hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)mbi->Font, 0); for(i = 0; i < mbi->nButtons; i++) { SendDlgItemMessageW(hwnd, mbi->Btns[i], WM_SETFONT, (WPARAM)mbi->Font, 0); } switch(mbi->Style & MB_TYPEMASK) { case MB_ABORTRETRYIGNORE: case MB_YESNO: RemoveMenu(GetSystemMenu(hwnd, FALSE), SC_CLOSE, MF_BYCOMMAND); break; } SetFocus(GetDlgItem(hwnd, mbi->DefBtn)); if(mbi->Timeout && (mbi->Timeout != (UINT)-1)) SetTimer(hwnd, 0, mbi->Timeout, NULL); } return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: case IDABORT: case IDRETRY: case IDIGNORE: case IDYES: case IDNO: case IDTRYAGAIN: case IDCONTINUE: EndDialog(hwnd, wParam); return 0; case IDHELP: /* send WM_HELP message to messagebox window */ hi.cbSize = sizeof(HELPINFO); hi.iContextType = HELPINFO_WINDOW; hi.iCtrlId = LOWORD(wParam); hi.hItemHandle = (HANDLE)lParam; hi.dwContextId = 0; GetCursorPos(&hi.MousePos); SendMessageW(hwnd, WM_HELP, 0, (LPARAM)&hi); return 0; } return 0; case WM_HELP: mbi = (PMSGBOXINFO)GetPropW(hwnd, L"ROS_MSGBOX"); if(!mbi) return 0; memcpy(&hi, (void *)lParam, sizeof(hi)); hi.dwContextId = GetWindowContextHelpId(hwnd); if (mbi->Callback) mbi->Callback(&hi); else { owner = GetWindow(hwnd, GW_OWNER); if(owner) SendMessageW(GetWindow(hwnd, GW_OWNER), WM_HELP, 0, (LPARAM)&hi); } return 0; case WM_CLOSE: mbi = (PMSGBOXINFO)GetPropW(hwnd, L"ROS_MSGBOX"); if(!mbi) return 0; switch(mbi->Style & MB_TYPEMASK) { case MB_ABORTRETRYIGNORE: case MB_YESNO: return 1; } EndDialog(hwnd, IDCANCEL); return 1; case WM_TIMER: if(wParam == 0) { EndDialog(hwnd, 32000); } return 0; } return 0; }
static INT_PTR CALLBACK ColorClipFloaterDlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: { SetWindowContextHelpId(hWnd, idh_colorclip_floater); CenterWindow(hWnd,GetParent(hWnd)); Color color(0.5f,0.5f,0.5f); for (int i=0; i<NUM_FLOAT_COLORS; i++) { TSTR name; name.printf(GetString(IDS_RB_COLORNUM),i); IColorSwatch *cs = GetIColorSwatch( GetDlgItem(hWnd,csIDs[i]),color,name); cs->SetUseAlpha(TRUE); ReleaseIColorSwatch(cs); } break; } case WM_SYSCOMMAND: if ((wParam & 0xfff0) == SC_CONTEXTHELP) { MaxSDK::IHelpSystem::GetInstance()->ShowProductHelpForTopic(idh_colorclip_floater); } return FALSE; case WM_DESTROY: { TSTR *fileName = DLGetWindowLongPtr<TSTR*>(hWnd); delete fileName; break; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_COLOR_LOAD: LoadColorFile(hWnd); break; case IDC_COLOR_SAVE: { TSTR *fileName = DLGetWindowLongPtr<TSTR*>(hWnd); if (fileName) SaveColorFile(hWnd,*fileName); else SaveAsColorFile(hWnd); break; } case IDC_COLOR_SAVEAS: SaveAsColorFile(hWnd); break; case IDOK: case IDCANCEL: DestroyWindow(hWnd); break; } break; default: return FALSE; } return TRUE; }
static INT_PTR CALLBACK MessageBoxProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { int i, Alert; PMSGBOXINFO mbi; HELPINFO hi; HWND owner; switch(message) { case WM_INITDIALOG: mbi = (PMSGBOXINFO)lParam; SetWindowLongPtrW(hwnd, GWLP_USERDATA, (LONG_PTR)mbi); NtUserxSetMessageBox(hwnd); if(!GetPropW(hwnd, L"ROS_MSGBOX")) { SetPropW(hwnd, L"ROS_MSGBOX", (HANDLE)lParam); if (mbi->dwContextHelpId) SetWindowContextHelpId(hwnd, mbi->dwContextHelpId); if (mbi->Icon) { SendDlgItemMessageW(hwnd, MSGBOX_IDICON, STM_SETICON, (WPARAM)mbi->Icon, 0); Alert = ALERT_SYSTEM_WARNING; } else // Setup the rest of the alerts. { switch(mbi->dwStyle & MB_ICONMASK) { case MB_ICONWARNING: Alert = ALERT_SYSTEM_WARNING; break; case MB_ICONERROR: Alert = ALERT_SYSTEM_ERROR; break; case MB_ICONQUESTION: Alert = ALERT_SYSTEM_QUERY; break; default: Alert = ALERT_SYSTEM_INFORMATIONAL; /* fall through */ } } /* Send out the alert notifications. */ NotifyWinEvent(EVENT_SYSTEM_ALERT, hwnd, OBJID_ALERT, Alert); /* set control fonts */ SendDlgItemMessageW(hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)mbi->Font, 0); for(i = 0; i < mbi->nButtons; i++) { SendDlgItemMessageW(hwnd, mbi->Btns[i], WM_SETFONT, (WPARAM)mbi->Font, 0); } switch(mbi->dwStyle & MB_TYPEMASK) { case MB_ABORTRETRYIGNORE: case MB_YESNO: RemoveMenu(GetSystemMenu(hwnd, FALSE), SC_CLOSE, MF_BYCOMMAND); break; } SetFocus(GetDlgItem(hwnd, mbi->DefBtn)); if(mbi->Timeout && (mbi->Timeout != (UINT)-1)) SetTimer(hwnd, 0, mbi->Timeout, NULL); } return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: case IDABORT: case IDRETRY: case IDIGNORE: case IDYES: case IDNO: case IDTRYAGAIN: case IDCONTINUE: EndDialog(hwnd, wParam); return 0; case IDHELP: /* send WM_HELP message to messagebox window */ hi.cbSize = sizeof(HELPINFO); hi.iContextType = HELPINFO_WINDOW; hi.iCtrlId = LOWORD(wParam); hi.hItemHandle = (HANDLE)lParam; hi.dwContextId = 0; GetCursorPos(&hi.MousePos); SendMessageW(hwnd, WM_HELP, 0, (LPARAM)&hi); return 0; } return 0; case WM_COPY: MessageBoxTextToClipboard(hwnd); return 0; case WM_HELP: mbi = (PMSGBOXINFO)GetPropW(hwnd, L"ROS_MSGBOX"); if(!mbi) return 0; memcpy(&hi, (void *)lParam, sizeof(hi)); hi.dwContextId = GetWindowContextHelpId(hwnd); if (mbi->lpfnMsgBoxCallback) mbi->lpfnMsgBoxCallback(&hi); else { owner = GetWindow(hwnd, GW_OWNER); if(owner) SendMessageW(GetWindow(hwnd, GW_OWNER), WM_HELP, 0, (LPARAM)&hi); } return 0; case WM_CLOSE: mbi = (PMSGBOXINFO)GetPropW(hwnd, L"ROS_MSGBOX"); if(!mbi) return 0; switch(mbi->dwStyle & MB_TYPEMASK) { case MB_ABORTRETRYIGNORE: case MB_YESNO: return 1; } EndDialog(hwnd, IDCANCEL); return 1; case WM_TIMER: if(wParam == 0) { EndDialog(hwnd, 32000); } return 0; } return 0; }