windows-nt/Source/XPSP1/NT/admin/snapin/sendcmsg/dialogs.h
2020-09-26 16:20:57 +08:00

89 lines
2.8 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997-2001.
//
// File: dialogs.h
//
// Contents:
//
//----------------------------------------------------------------------------
// Dialogs.h
/////////////////////////////////////////////////////////////////////
class CSendConsoleMessageDlg
{
protected:
HWND m_hdlg; // Handle of the dialog
HWND m_hwndEditMessageText; // Handle of edit control for the message text
HWND m_hwndListviewRecipients; // Handle of the listview of the recipients
HIMAGELIST m_hImageList; // Image list for the listview control
volatile int m_cRefCount; // Reference count of object
public:
CSendConsoleMessageDlg();
~CSendConsoleMessageDlg();
static INT_PTR DlgProc(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
protected:
void AddRef();
void Release();
void OnInitDialog(HWND hdlg, IDataObject * pDataObject);
void OnOK();
LRESULT OnNotify(NMHDR * pNmHdr);
BOOL OnHelp(LPARAM lParam, int nDlgIDD);
void DoContextHelp (HWND hWndControl, int nDlgIDD);
void DoSendConsoleMessageContextHelp (HWND hWndControl);
protected:
int AddRecipient(LPCTSTR pszRecipient, BOOL fSelectItem = FALSE);
void UpdateUI();
void EnableDlgItem(INT nIdDlgItem, BOOL fEnable);
protected:
// Dispatch info
enum PROGRES_STATUS_ENUM
{
e_statusDlgInit = 1, // Dialog is initializing
e_statusDlgDispatching, // Dialog is dispatching message to recipients
e_statusDlgCompleted, // The dialog completed the operation (with or without errors)
e_statusUserCancel, // The user clicked on the "Cancel" button
};
struct
{
PROGRES_STATUS_ENUM status;
BYTE * pargbItemStatus; // Array of boolean indicating the status of each recipient
int cErrors; // Number of errors while sending messages
CRITICAL_SECTION cs; // Synchronization object for the "status" variable
volatile HWND hdlg; // Handle of the "Progress Dialog"
volatile HWND hctlStaticRecipient;
volatile HWND hctlStaticMessageOf;
volatile HWND hctlStaticErrors;
volatile HWND hctlProgressBar;
} m_DispatchInfo;
void DispatchMessageToRecipients();
static INT_PTR DlgProcDispatchMessageToRecipients(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static DWORD WINAPI ThreadProcDispatchMessageToRecipients(CSendConsoleMessageDlg * pThis);
}; // CSendConsoleMessageDlg
/////////////////////////////////////////////////////////////////////
class CSendMessageAdvancedOptionsDlg
{
protected:
HWND m_hdlg;
BOOL m_fSendAutomatedMessage;
public:
static INT_PTR DlgProc(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
protected:
void OnInitDialog(HWND hdlg);
void UpdateUI();
BOOL OnHelp(LPARAM lParam);
}; // CSendMessageAdvancedOptionsDlg