// Dialogs.h // // Copyright (c) 1998-1999 Microsoft Corporation #pragma once // MSINFO_DIALOGS_H #include #include "FileIO.h" #include "Resource.h" // Default values for the save dialog (overridden by the report dialog when it // inherits the save dialog). extern CString strMSInfoSaveFileTypes; extern CString strMSInfoSaveType; /* * CMSInfoFileDialog - Wrapper for the file dialog with our own default values. * * Note: This object should not be used directly. * * History: a-jsari 10/24/97 Initial version */ class CMSInfoFileDialog : public CFileDialog { // Protected so that no one uses this object directly. public: INT_PTR DoModal(); protected: CMSInfoFileDialog(BOOL bDialogIsOpen = FALSE, HWND hOwner = NULL, LPCTSTR lpszDefaultExtension = NULL, LPCTSTR lpszExtensionFilters = NULL); ~CMSInfoFileDialog() { }; private: static TCHAR m_szCurrentDirectory[MAX_PATH]; // shared between file open and file save }; /* * CMSInfoOpenDialog - Construct an open dialog. * * History: a-jsari 10/27/97 Initial version */ class CMSInfoOpenDialog : public CMSInfoFileDialog { public: CMSInfoOpenDialog(HWND hOwner = NULL); ~CMSInfoOpenDialog() { } }; /* * CMSInfoSaveDialog - Construct a save dialog. * * History: a-jsari 10/27/97 Initial version */ class CMSInfoSaveDialog : public CMSInfoFileDialog { public: CMSInfoSaveDialog(HWND hOwner = NULL, LPCTSTR lpszDefaultExtension = strMSInfoSaveType, LPCTSTR lpszExtensionFilters = strMSInfoSaveFileTypes); ~CMSInfoSaveDialog() { } }; /* * CMSInfoReportDialog - Construct a report dialog. * * History: a-jsari 10/27/97 Initial version */ class CMSInfoReportDialog : public CMSInfoSaveDialog { public: CMSInfoReportDialog(HWND hOwner = NULL); ~CMSInfoReportDialog() { } }; /* * CMSInfoPrintDialog - Construct a print dialog. * * History: a-jsari 10/24/97 Initial version. */ class CMSInfoPrintDialog : public CPrintDialog { public: CMSInfoPrintDialog(HWND hOwner = NULL); ~CMSInfoPrintDialog() { } }; class CSystemInfoScope; /* * CFindDialog - A dialog to handle finding data in MSInfo. The user * interface for this class is stored in the Resources IDD_FIND. * * History: a-jsari 10/29/97 Initial version. */ class CFindDialog : public CDialog { // Construction public: friend class CFindThread; CFindDialog(CSystemInfoScope *pScope, HWND hPostWindow, HWND hwndMMCWindow); ~CFindDialog(); BOOL Create(); CWnd *SetFocus(); BOOL OnInitDialog(); void FindComplete(); void ResetSearch(); const CString &FindString() const { return m_strSearch; } static UINT WM_MSINFO_FIND; // Dialog Data //{{AFX_DATA(CFindDialog) enum { IDD = IDD_FIND }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA // Implementation protected: HWND m_hPostWindow; HWND m_hMMCWindow; CSystemInfoScope *m_pScope; CString m_strSearch; BOOL m_fRunning; UINT_PTR m_iTimer; LONG OnHelp(WPARAM wParam, LPARAM lParam); LONG OnContextMenu(WPARAM wParam, LPARAM lParam); // Generated message map functions //{{AFX_MSG(CFindDialog) virtual afx_msg void OnCancel(); virtual afx_msg void OnFindNext(); virtual afx_msg void OnNewSearch(); virtual afx_msg void OnSearchTerm(); virtual afx_msg void OnStopFind(); virtual afx_msg void OnActivate(UINT, CWnd *, BOOL bMinimized); virtual afx_msg BOOL OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message); virtual afx_msg BOOL OnHelpInfo(HELPINFO * pHelpInfo); virtual afx_msg void OnTimer(UINT); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; /* * CFindThread - A thread in which to run a modal Find dialog, making it * effectively modeless. This is required because MMC runs its UI * in a thread which is inaccessible to the snap-in DLL, which runs * in a separate thread. * * History: a-jsari 1/19/98 Initial version. */ class CFindThread : public CWinThread { public: // Nonspecific dynamic class initialization required for UI threads. DECLARE_DYNCREATE(CFindThread); CFindThread(); ~CFindThread(); void SetScope(CSystemInfoScope *pScope); void SetParent(HWND hParent, HWND hMMC); void Activate(); void SetDataSource(CDataSource * pDataSource) { m_pDataSource = pDataSource; } CDataSource * GetDataSource() { return (m_pDataSource); } void FindComplete() { m_pdlgFind->FindComplete(); } void ResetSearch() { m_pdlgFind->ResetSearch(); } const CString &FindString() { return m_pdlgFind->FindString(); } BOOL InitInstance(); int ExitInstance(); void RemoteQuit(); private: #if 0 static LRESULT (*m_pBaseWindowProc)(HWND, UINT, WPARAM, LPARAM); static LRESULT CALLBACK FindWindowProc(HWND hMainWindow, UINT uMsg, WPARAM wParam, LPARAM lParam); #endif CFindDialog *m_pdlgFind; CSystemInfoScope *m_pScope; CDataSource *m_pDataSource; HWND m_hParentWindow; HWND m_hMMCWindow; };