BOOL CDialog::OnInitDialog() { // execute dialog RT_DLGINIT resource BOOL bDlgInit; if (m_lpDialogInit != NULL) bDlgInit = ExecuteDlgInit(m_lpDialogInit); else bDlgInit = ExecuteDlgInit(m_lpszTemplateName); if (!bDlgInit) { TRACE0("Warning: ExecuteDlgInit failed during dialog init.\n"); EndDialog(-1); return FALSE; } // transfer data into the dialog from member variables if (!UpdateData(FALSE)) { TRACE0("Warning: UpdateData failed during dialog init.\n"); EndDialog(-1); return FALSE; } // enable/disable help button automatically CWnd* pHelpButton = GetDlgItem(ID_HELP); if (pHelpButton != NULL) pHelpButton->ShowWindow(AfxHelpEnabled() ? SW_SHOW : SW_HIDE); return TRUE; // set focus to first one }
COleLinksDialog::COleLinksDialog(COleDocument* pDoc, CView* pView, DWORD dwFlags, CWnd* pParentWnd) : COleDialog(pParentWnd), m_xLinkInfo(pDoc) { ASSERT_VALID(pDoc); if (pView != NULL) ASSERT_VALID(pView); memset(&m_el, 0, sizeof(m_el)); // initialize structure to 0/NULL // fill in common part m_el.cbStruct = sizeof(m_el); m_el.dwFlags = dwFlags; if (!afxData.bWin4 && AfxHelpEnabled()) m_el.dwFlags |= ELF_SHOWHELP; m_el.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_EDITLINKS; // specific to this dialog if (pView != NULL) m_xLinkInfo.m_pSelectedItem = pDoc->GetPrimarySelectedItem(pView); else m_xLinkInfo.m_pSelectedItem = NULL; m_el.lpOleUILinkContainer = &m_xLinkInfo; }
COlePasteSpecialDialog::COlePasteSpecialDialog(DWORD dwFlags, COleDataObject* pDataObject, CWnd* pParentWnd) : COleDialog(pParentWnd) { memset(&m_ps, 0, sizeof(m_ps)); // initialize structure to 0/NULL // fill in common part m_ps.cbStruct = sizeof(m_ps); m_ps.dwFlags = dwFlags | PSF_STAYONCLIPBOARDCHANGE; if (!afxData.bWin4 && AfxHelpEnabled()) m_ps.dwFlags |= PSF_SHOWHELP; if (_AfxOlePropertiesEnabled()) m_ps.dwFlags |= PSF_HIDECHANGEICON; m_ps.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_PASTESPECIAL; // get LPDATAOBJECT for paste special dialog COleDataObject dataObject; if (pDataObject == NULL) { VERIFY(dataObject.AttachClipboard()); pDataObject = &dataObject; } ASSERT(pDataObject != NULL); m_ps.lpSrcDataObj = pDataObject->GetIDataObject(TRUE); // complete initialization m_ps.arrPasteEntries = NULL; m_ps.cPasteEntries = 0; m_ps.arrLinkTypes = m_arrLinkTypes; m_ps.cLinkTypes = 0; }
CFontDialog::CFontDialog(LPLOGFONT lplfInitial, DWORD dwFlags, CDC* pdcPrinter, CWnd* pParentWnd) : CCommonDialog(pParentWnd) { memset(&m_cf, 0, sizeof(m_cf)); memset(&m_lf, 0, sizeof(m_lf)); memset(&m_szStyleName, 0, sizeof(m_szStyleName)); m_nIDHelp = AFX_IDD_FONT; m_cf.lStructSize = sizeof(m_cf); m_cf.lpszStyle = (LPTSTR)&m_szStyleName; m_cf.Flags = dwFlags | CF_ENABLEHOOK; if (!afxData.bWin4 && AfxHelpEnabled()) m_cf.Flags |= CF_SHOWHELP; m_cf.lpfnHook = (COMMDLGPROC)_AfxCommDlgProc; if (lplfInitial) { m_cf.lpLogFont = lplfInitial; m_cf.Flags |= CF_INITTOLOGFONTSTRUCT; memcpy(&m_lf, m_cf.lpLogFont, sizeof(m_lf)); } else { m_cf.lpLogFont = &m_lf; } if (pdcPrinter) { ASSERT(pdcPrinter->m_hDC != NULL); m_cf.hDC = pdcPrinter->m_hDC; m_cf.Flags |= CF_PRINTERFONTS; } }
CFontDialog::CFontDialog(const CHARFORMAT& charformat, DWORD dwFlags, CDC* pdcPrinter, CWnd* pParentWnd) : CCommonDialog(pParentWnd) { memset(&m_cf, 0, sizeof(m_cf)); memset(&m_lf, 0, sizeof(m_lf)); memset(&m_szStyleName, 0, sizeof(m_szStyleName)); m_nIDHelp = AFX_IDD_FONT; m_cf.lStructSize = sizeof(m_cf); m_cf.lpszStyle = (LPTSTR)&m_szStyleName; m_cf.Flags = dwFlags | CF_ENABLEHOOK | CF_INITTOLOGFONTSTRUCT; m_cf.Flags |= FillInLogFont(charformat); if (!afxData.bWin4 && AfxHelpEnabled()) m_cf.Flags |= CF_SHOWHELP; m_cf.lpfnHook = (COMMDLGPROC)_AfxCommDlgProc; m_cf.lpLogFont = &m_lf; if (pdcPrinter) { ASSERT(pdcPrinter->m_hDC != NULL); m_cf.hDC = pdcPrinter->m_hDC; m_cf.Flags |= CF_PRINTERFONTS; } if (charformat.dwMask & CFM_COLOR) m_cf.rgbColors = charformat.crTextColor; }
CPrintDialog::CPrintDialog(BOOL bPrintSetupOnly, DWORD dwFlags, CWnd* pParentWnd) : m_pd(m_pdActual), CCommonDialog(pParentWnd) { memset(&m_pdActual, 0, sizeof(m_pdActual)); m_pd.lStructSize = sizeof(m_pdActual); m_pd.Flags = (dwFlags | PD_ENABLEPRINTHOOK | PD_ENABLESETUPHOOK); if (!afxData.bWin4 && AfxHelpEnabled()) m_pd.Flags |= PD_SHOWHELP; m_pd.lpfnPrintHook = (COMMDLGPROC)_AfxCommDlgProc; m_pd.lpfnSetupHook = (COMMDLGPROC)_AfxCommDlgProc; if (bPrintSetupOnly) { m_nIDHelp = AFX_IDD_PRINTSETUP; m_pd.Flags |= PD_PRINTSETUP; } else { m_nIDHelp = AFX_IDD_PRINT; m_pd.Flags |= PD_RETURNDC; } m_pd.Flags &= ~PD_RETURNIC; // do not support information context }
CPageSetupDialog::CPageSetupDialog(DWORD dwFlags, CWnd* pParentWnd) : CCommonDialog(pParentWnd) { memset(&m_psd, 0, sizeof(m_psd)); m_psd.lStructSize = sizeof(m_psd); m_psd.Flags = (dwFlags | PSD_ENABLEPAGESETUPHOOK | PSD_ENABLEPAGEPAINTHOOK); if (!afxData.bWin4 && AfxHelpEnabled()) m_psd.Flags |= PSD_SHOWHELP; m_psd.lpfnPageSetupHook = (COMMDLGPROC)_AfxCommDlgProc; m_psd.lpfnPagePaintHook = (COMMDLGPROC)CPageSetupDialog::PaintHookProc; }
CFindReplaceDialog::CFindReplaceDialog() : CCommonDialog(NULL) { memset(&m_fr, 0, sizeof(m_fr)); m_szFindWhat[0] = '\0'; m_szReplaceWith[0] = '\0'; m_fr.Flags = FR_ENABLEHOOK; if (!afxData.bWin4 && AfxHelpEnabled()) m_fr.Flags |= FR_SHOWHELP; m_fr.lpfnHook = (COMMDLGPROC)_AfxCommDlgProc; m_fr.lStructSize = sizeof(m_fr); m_fr.lpstrFindWhat = (LPTSTR)m_szFindWhat; }
COlePropertiesDialog::COlePropertiesDialog( COleClientItem* pItem, UINT nScaleMin, UINT nScaleMax, CWnd* pParentWnd) : COleDialog(pParentWnd), m_xLinkInfo(NULL) { ASSERT_VALID(pItem); memset(&m_op, 0, sizeof(m_op)); // initialize structure to 0/NULL // fill in common part m_op.cbStruct = sizeof(m_op); m_op.dwFlags = 0; if (AfxHelpEnabled()) m_op.dwFlags |= OPF_SHOWHELP; m_nIDHelp = AFX_IDD_OBJECTPROPERTIES; // specific to this dialog memset(&m_gp, 0, sizeof(m_gp)); m_gp.cbStruct = sizeof(m_gp); m_gp.lpfnHook = AfxOleHookProc; m_gp.dwFlags = 0; memset(&m_vp, 0, sizeof(m_vp)); m_vp.cbStruct = sizeof(m_vp); m_vp.lpfnHook = AfxOleHookProc; m_vp.dwFlags = 0; m_vp.nScaleMin = nScaleMin; m_vp.nScaleMax = nScaleMax; memset(&m_lp, 0, sizeof(m_lp)); m_lp.cbStruct = sizeof(m_lp); m_lp.lpfnHook = AfxOleHookProc; m_lp.dwFlags = 0; m_op.lpObjInfo = &m_xOleUIObjInfo; m_op.lpLinkInfo = &m_xLinkInfo; m_op.dwLink = (DWORD)pItem; m_op.dwObject = (DWORD)pItem; m_op.lpGP = &m_gp; m_op.lpVP = &m_vp; if (pItem->GetType() == OT_LINK) { m_op.dwFlags |= OPF_OBJECTISLINK; m_op.lpLP = &m_lp; } memset(&m_psh, 0, sizeof(m_psh)); m_psh.dwSize = sizeof(PROPSHEETHEADER); m_op.lpPS = &m_psh; }
CFileDialog::CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) : CCommonDialog(pParentWnd) { memset(&m_ofn, 0, sizeof(m_ofn)); // initialize structure to 0/NULL m_szFileName[0] = '\0'; m_szFileTitle[0] = '\0'; m_pofnTemp = NULL; m_bOpenFileDialog = bOpenFileDialog; m_nIDHelp = bOpenFileDialog ? AFX_IDD_FILEOPEN : AFX_IDD_FILESAVE; m_ofn.lStructSize = sizeof(m_ofn); m_ofn.lpstrFile = m_szFileName; m_ofn.nMaxFile = _countof(m_szFileName); m_ofn.lpstrDefExt = lpszDefExt; m_ofn.lpstrFileTitle = (LPTSTR)m_szFileTitle; m_ofn.nMaxFileTitle = _countof(m_szFileTitle); m_ofn.Flags |= dwFlags | OFN_ENABLEHOOK; if (!afxData.bWin4 && AfxHelpEnabled()) m_ofn.Flags |= OFN_SHOWHELP; if (afxData.bWin4) { m_ofn.Flags |= OFN_EXPLORER; m_ofn.hInstance = AfxGetResourceHandle(); } m_ofn.lpfnHook = (COMMDLGPROC)_AfxCommDlgProc; // setup initial file name if (lpszFileName != NULL) lstrcpyn(m_szFileName, lpszFileName, _countof(m_szFileName)); // Translate filter into commdlg format (lots of \0) if (lpszFilter != NULL) { m_strFilter = lpszFilter; LPTSTR pch = m_strFilter.GetBuffer(0); // modify the buffer in place // MFC delimits with '|' not '\0' while ((pch = _tcschr(pch, '|')) != NULL) *pch++ = '\0'; m_ofn.lpstrFilter = m_strFilter; // do not call ReleaseBuffer() since the string contains '\0' characters } }
COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem* pItem, CWnd* pParentWnd) : COleDialog(pParentWnd), m_xLinkInfo(NULL) { ASSERT_VALID(pItem); memset(&m_cs, 0, sizeof(m_cs)); // initialize structure to 0/NULL // fill in common part m_cs.cbStruct = sizeof(m_cs); m_cs.dwFlags = 0; if (AfxHelpEnabled()) m_cs.dwFlags |= CSF_SHOWHELP; m_cs.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_CHANGESOURCE; // specific to this dialog m_cs.lpOleUILinkContainer = &m_xLinkInfo; m_cs.dwLink = (DWORD)pItem; }
COleInsertDialog::COleInsertDialog(DWORD dwFlags, CWnd* pParentWnd) : COleDialog(pParentWnd) { memset(&m_io, 0, sizeof(m_io)); // initialize structure to 0/NULL // fill in common part m_io.cbStruct = sizeof(m_io); m_io.dwFlags = dwFlags; if (!afxData.bWin4 && AfxHelpEnabled()) m_io.dwFlags |= IOF_SHOWHELP; if (_AfxOlePropertiesEnabled()) m_io.dwFlags |= IOF_HIDECHANGEICON; m_io.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_INSERTOBJECT; // specific to this dialog m_io.lpszFile = m_szFileName; m_io.cchFile = _countof(m_szFileName); m_szFileName[0] = '\0'; }
BOOL CCustomDialog::OnInitDialog(void) { // try to execute dialog RT_DLGINIT resource BOOL bDlgInit = FALSE; if (m_lpDialogInit != NULL) { bDlgInit = ExecuteDlgInit(m_lpDialogInit); } else { bDlgInit = ExecuteDlgInit(m_lpszDlgInitName); } if (!bDlgInit) { TRACE(traceAppMsg, 0, "Warning: ExecuteDlgInit failed during dialog init.\n"); EndDialog(-1); return (FALSE); } // transfer data into the dialog from member variables if (!UpdateData(FALSE)) { TRACE(traceAppMsg, 0, "Warning: UpdateData failed during dialog init.\n"); EndDialog(-1); return (FALSE); } // enable/disable help button automatically CWnd* pHelpButton = GetDlgItem(ID_HELP); if (pHelpButton != NULL) { pHelpButton->ShowWindow(AfxHelpEnabled() ? SW_SHOW : SW_HIDE); } // set focus to first one return (TRUE); }
COleChangeIconDialog::COleChangeIconDialog(COleClientItem* pItem, DWORD dwFlags, CWnd* pParentWnd) : COleDialog(pParentWnd) { if (pItem != NULL) ASSERT_VALID(pItem); memset(&m_ci, 0, sizeof(m_ci)); // initialize structure to 0/NULL // fill in common part m_ci.cbStruct = sizeof(m_ci); m_ci.dwFlags = dwFlags; if (!afxData.bWin4 && AfxHelpEnabled()) m_ci.dwFlags |= CIF_SHOWHELP; m_ci.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_CHANGEICON; // specific to this dialog if (pItem != NULL) { pItem->GetClassID(&m_ci.clsid); m_ci.hMetaPict = pItem->GetIconicMetafile(); } }
COleConvertDialog::COleConvertDialog(COleClientItem* pItem, DWORD dwFlags, CLSID* pClassID, CWnd* pParentWnd) : COleDialog(pParentWnd) { if (pItem != NULL) ASSERT_VALID(pItem); ASSERT(pClassID == NULL || AfxIsValidAddress(pClassID, sizeof(CLSID), FALSE)); memset(&m_cv, 0, sizeof(m_cv)); // initialize structure to 0/NULL if (pClassID != NULL) m_cv.clsid = *pClassID; // fill in common part m_cv.cbStruct = sizeof(m_cv); m_cv.dwFlags = dwFlags; if (!afxData.bWin4 && AfxHelpEnabled()) m_cv.dwFlags |= CF_SHOWHELPBUTTON; m_cv.lpfnHook = AfxOleHookProc; m_nIDHelp = AFX_IDD_CONVERT; // specific to this dialog m_cv.fIsLinkedObject = pItem->GetType() == OT_LINK; m_cv.dvAspect = pItem->GetDrawAspect(); if (pClassID == NULL && !m_cv.fIsLinkedObject) { // for embeddings, attempt to get class ID from the storage if (ReadClassStg(pItem->m_lpStorage, &m_cv.clsid) == S_OK) pClassID = &m_cv.clsid; // attempt to get user type from storage CLIPFORMAT cf = 0; LPOLESTR lpOleStr = NULL; ReadFmtUserTypeStg(pItem->m_lpStorage, &cf, &lpOleStr); m_cv.lpszUserType = TASKSTRINGOLE2T(lpOleStr); m_cv.wFormat = (WORD)cf; } // get class id if neded if (pClassID == NULL) { // no class ID in the storage, use class ID of the object pItem->GetClassID(&m_cv.clsid); } // get user type if needed if (m_cv.lpszUserType == NULL) { // no user type in storge, get user type from class ID LPTSTR lpszUserType = NULL; LPOLESTR lpOleStr = NULL; if (OleRegGetUserType(m_cv.clsid, USERCLASSTYPE_FULL, &lpOleStr) == S_OK) { lpszUserType = TASKSTRINGOLE2T(lpOleStr); } else { lpszUserType = (LPTSTR)CoTaskMemAlloc(256 * sizeof(TCHAR)); if (lpszUserType != NULL) { lpszUserType[0] = '?'; lpszUserType[1] = 0; VERIFY(AfxLoadString(AFX_IDS_UNKNOWNTYPE, lpszUserType) != 0); } } m_cv.lpszUserType = lpszUserType; } m_cv.hMetaPict = pItem->GetIconicMetafile(); }