00001
00002
00003
00004
00005
00006 #if !defined(AFX_WAITDLG_H__C786669C_04B0_4433_9DBB_C631CAD1F94D__INCLUDED_)
00007 #define AFX_WAITDLG_H__C786669C_04B0_4433_9DBB_C631CAD1F94D__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 struct ProcWaitInfo
00014 {
00015
00016 LPVOID lpParam1, lpParam2, lpParam3, lpParam4, lpParam5;
00017
00018 BOOL bNeedStop;
00019
00020 BOOL bWaitDone;
00021
00022 int iProgress;
00023 };
00024
00025 class CWaitDlg : public CDialog
00026 {
00027
00028 public:
00029
00030 UINT StartWaiting (LPCSTR pszMessage, LPTHREAD_START_ROUTINE procWait, BOOL bEnableCancel, LPVOID lpParam1 = NULL, LPVOID lpParam2 = NULL, LPVOID lpParam3 = NULL, LPVOID lpParam4 = NULL, LPVOID lpParam5 = NULL, BOOL bModal = TRUE);
00031
00032 CWaitDlg(CWnd* pParent = NULL);
00033
00034
00035 enum { IDD = IDD_WAITER };
00036 CProgressCtrl m_wndProgress;
00037
00038
00039
00040 protected:
00041 virtual void DoDataExchange(CDataExchange* pDX);
00042
00043
00044 protected:
00045 bool m_bNeedRelease;
00046 BOOL m_bCancel;
00047 ProcWaitInfo m_info;
00048 CString m_strMsg;
00049
00050
00051 virtual void OnCancel();
00052 virtual BOOL OnInitDialog();
00053 afx_msg void OnTimer(UINT nIDEvent);
00054
00055 DECLARE_MESSAGE_MAP()
00056 };
00057
00058
00059
00060 #endif