windows-nt/Source/XPSP1/NT/shell/osshell/dskquota/watchdog/action.h
2020-09-26 16:20:57 +08:00

114 lines
3 KiB
C++

#ifndef __ACTION_H
#define __ACTION_H
///////////////////////////////////////////////////////////////////////////////
/* File: action.h
Description: Declarations for classes to handle actions associated
with user notifications (email, popup dialog etc).
CAction
CActionEmail
CActionPopup
Revision History:
Date Description Programmer
-------- --------------------------------------------------- ----------
07/01/97 Initial creation. BrianAu
*/
///////////////////////////////////////////////////////////////////////////////
#ifndef __MAPISEND_H
# include "mapisend.h"
#endif
//
// Fwd declarations. Don't need headers.
//
class CHistory;
class CStatisticsList;
class CAction
{
public:
CAction(VOID) { };
virtual ~CAction(VOID) { };
virtual HRESULT DoAction(CHistory& history) = 0;
private:
//
// Prevent copy.
//
CAction(const CAction& rhs);
CAction& operator = (const CAction& rhs);
};
class CActionEmail : public CAction
{
public:
CActionEmail(CMapiSession& MapiSession,
LPMAPIFOLDER pMapiFolder,
LPTSTR pszRecipientsTo,
LPTSTR pszRecipientsCc,
LPTSTR pszRecipientsBcc,
LPCTSTR pszSubject,
CMapiMessageBody& MsgBody);
virtual ~CActionEmail(VOID);
virtual HRESULT DoAction(CHistory& history);
private:
CMapiSession& m_MapiSession; // Reference to MAPI session object.
CMapiRecipients m_MapiRecipients; // List of recipients for for message.
CMapiMessage m_MapiMsg; // MAPI message we'll build and send.
MAPI m_Mapi; // MAPI functions.
//
// Prevent copy.
//
CActionEmail(const CActionEmail& rhs);
CActionEmail& operator = (const CActionEmail& rhs);
};
class CActionPopup : public CAction
{
public:
CActionPopup(CStatisticsList& stats);
virtual ~CActionPopup(VOID);
virtual HRESULT DoAction(CHistory& history);
private:
CStatisticsList& m_stats;
HWND m_hwnd;
HINSTANCE m_hmodCOMCTL32;
HICON m_hiconDialog;
static UINT m_idAutoCloseTimer;
static UINT m_uAutoCloseTimeout;
HRESULT CreateAndRunPopup(
HINSTANCE hInst,
LPCTSTR pszDlgTemplate,
HWND hwndParent);
static INT_PTR CALLBACK DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL OnInitDialog(HWND hwnd);
BOOL OnDestroy(HWND hwnd);
BOOL OnNcDestroy(HWND hwnd);
VOID InitializeList(HWND hwndList);
//
// Prevent copy.
//
CActionPopup(const CActionPopup& rhs);
CActionPopup& operator = (const CActionPopup& rhs);
};
#endif //__ACTION_H