www.pudn.com > ShellExtGuide2_demo.zip > ProgressDlg.h
// ProgressDlg.h : Declaration of the CProgressDlg #ifndef __PROGRESSDLG_H_ #define __PROGRESSDLG_H_ #include "resource.h" // main symbols #include#include ///////////////////////////////////////////////////////////////////////////// // CProgressDlg class CProgressDlg : public CDialogImpl { public: CProgressDlg ( string_list* pFileList, CMINVOKECOMMANDINFO* pCmdInfo ) : m_bStopSign(false), m_hList(NULL), m_pFileList(pFileList), m_pCmdInfo(pCmdInfo) { } ~CProgressDlg() { } enum { IDD = IDD_PROGRESSDLG }; BEGIN_MSG_MAP(CProgressDlg) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) NOTIFY_HANDLER(IDC_LIST, LVN_ITEMCHANGED, OnItemchangedList) COMMAND_ID_HANDLER(IDC_STOP, OnStop) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() // Handler prototypes: // LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); // LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); // LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnItemchangedList(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnStop(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { m_bStopSign = true; return 0; } LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { EndDialog(wID); return 0; } protected: bool m_bStopSign; HWND m_hList; string_list* m_pFileList; string_list m_lsStatusMessages; // list of status messages for the dialog CMINVOKECOMMANDINFO* m_pCmdInfo; void DoWork(); }; #endif //__PROGRESSDLG_H_