You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
434 lines
18 KiB
434 lines
18 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: Dlg.h
|
|
//
|
|
// Contents: Dialog box classes
|
|
//
|
|
// Classes: CBaseDlg
|
|
// CChoiceDlg
|
|
// CProgressDlg
|
|
//
|
|
// Notes:
|
|
//
|
|
// History: 05-Nov-97 rogerg Created.
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
|
|
#ifndef _ONESTOPDLG_
|
|
#define _ONESTOPDLG_
|
|
|
|
|
|
//Used for item data on Progress Results UI
|
|
// !!!!Warning - Automated test look at this structure directly
|
|
// If you change it you need to notify Testing so they can also
|
|
// Update their tests
|
|
|
|
typedef struct tagLBDATA
|
|
{
|
|
BOOL fTextRectValid; // flag to indicate if rcText has been calculated.
|
|
RECT rcTextHitTestRect; // rectangle for hitTesting.
|
|
RECT rcText; // total bounding box of text to use for draw
|
|
INT IconIndex;
|
|
BOOL fIsJump;
|
|
BOOL fHasBeenClicked;
|
|
BOOL fAddLineSpacingAtEnd; // set if should leave space after item
|
|
HANDLERINFO * pHandlerID;
|
|
SYNCMGRERRORID ErrorID;
|
|
DWORD dwErrorLevel; // Error level of this item
|
|
TCHAR pszText[1]; // errorText, dynamic array.
|
|
} LBDATA;
|
|
|
|
|
|
|
|
// cmdIds passed ot the ReleaseDlg method
|
|
#define RELEASEDLGCMDID_DESTROY 0 // cmdid send when dialog was destroyed before added to list
|
|
#define RELEASEDLGCMDID_DEFAULT 1 // cmdid sent if cmd hasn't been explicitly set.
|
|
#define RELEASEDLGCMDID_OK 2 // treated as if user Pressed Okay
|
|
#define RELEASEDLGCMDID_CANCEL 3 // treated as if user pressed Cancel
|
|
|
|
|
|
// helper utilities
|
|
BOOL AddItemsFromQueueToListView(CListView *pItemListView,CHndlrQueue *pHndlrQueue
|
|
,DWORD dwExtStyle,LPARAM lparam,int iDateColumn,int iStatusColumn,BOOL fHandlerParent
|
|
,BOOL fAddOnlyCheckedItems);
|
|
|
|
|
|
|
|
typedef struct _tagDlgResizeList
|
|
{
|
|
int iCtrlId;
|
|
DWORD dwDlgResizeFlags;
|
|
} DlgResizeList;
|
|
|
|
// structure passed as lParam to call completion routine.
|
|
// must free after processin the message
|
|
// CallCompletion message declarations.
|
|
// DWORD dwThreadMsg; // passed as wParam.
|
|
|
|
typedef struct _tagCALLCOMPLETIONMSGLPARAM
|
|
{
|
|
HRESULT hCallResult;
|
|
CLSID clsidHandler;
|
|
SYNCMGRITEMID itemID;
|
|
} CALLCOMPLETIONMSGLPARAM , *LPCALLCOMPLETIONMSGLPARAM;
|
|
|
|
// base class both dialogs derive from
|
|
#define CHOICELIST_NAMECOLUMN 0
|
|
#define CHOICELIST_LASTUPDATECOLUMN 1
|
|
#define PROGRESSLIST_NAMECOLUMN 0
|
|
#define PROGRESSLIST_STATUSCOLUMN 1
|
|
#define PROGRESSLIST_INFOCOLUMN 2
|
|
|
|
#define PROGRESS_TAB_UPDATE 0
|
|
#define PROGRESS_TAB_ERRORS 1
|
|
|
|
class CBaseDlg
|
|
{
|
|
public:
|
|
HWND m_hwnd;
|
|
DWORD m_dwThreadID;
|
|
BOOL m_fForceClose; // passed in generic release.
|
|
BOOL m_fHwndRightToLeft;
|
|
|
|
|
|
inline HWND GetHwnd() { return m_hwnd; };
|
|
|
|
virtual BOOL Initialize(DWORD dwThreadID,int nCmdShow) = 0;
|
|
virtual void ReleaseDlg(WORD wCommandID) = 0;
|
|
virtual void UpdateWndPosition(int nCmdShow,BOOL fForce)= 0;
|
|
|
|
// make HandleLogError as a base dialog class so can call it from queue and
|
|
// other locations without worrying about the dialog type.
|
|
virtual void HandleLogError(HWND hwnd,HANDLERINFO *pHandlerID,MSGLogErrors *lpmsgLogErrors) = 0;
|
|
virtual void PrivReleaseDlg(WORD wCommandID) = 0;
|
|
virtual void CallCompletionRoutine(DWORD dwThreadMsg,LPCALLCOMPLETIONMSGLPARAM lpCallCompletelParam) = 0;
|
|
virtual HRESULT QueryCanSystemShutdown(/* [out] */ HWND *phwnd, /* [out] */ UINT *puMessageId,
|
|
/* [out] */ BOOL *pfLetUserDecide) = 0;
|
|
};
|
|
|
|
// Messages Shared between both dialogs
|
|
|
|
#define WM_BASEDLG_SHOWWINDOW (WM_USER + 3)
|
|
#define WM_BASEDLG_COMPLETIONROUTINE (WM_USER + 4)
|
|
#define WM_BASEDLG_HANDLESYSSHUTDOWN (WM_USER + 5)
|
|
#define WM_BASEDLG_NOTIFYLISTVIEWEX (WM_USER + 6)
|
|
#define WM_BASEDLG_LAST WM_BASEDLG_NOTIFYLISTVIEWEX
|
|
|
|
// choice dialog messages
|
|
#define WM_CHOICE_FIRST (WM_BASEDLG_LAST + 1)
|
|
#define WM_CHOICE_SETQUEUEDATA (WM_CHOICE_FIRST + 1)
|
|
#define WM_CHOICE_RELEASEDLGCMD (WM_CHOICE_FIRST + 2)
|
|
#define WM_CHOICE_LAST WM_CHOICE_RELEASEDLGCMD
|
|
|
|
|
|
// progress dialog messages
|
|
#define WM_PROGRESS_FIRST (WM_CHOICE_LAST + 1)
|
|
#define WM_PROGRESS_UPDATE (WM_PROGRESS_FIRST + 1)
|
|
#define WM_PROGRESS_LOGERROR (WM_PROGRESS_FIRST + 2)
|
|
#define WM_PROGRESS_DELETELOGERROR (WM_PROGRESS_FIRST + 3)
|
|
#define WM_PROGRESS_STARTPROGRESS (WM_PROGRESS_FIRST + 4)
|
|
#define WM_PROGRESS_RELEASEDLGCMD (WM_PROGRESS_FIRST + 5)
|
|
#define WM_PROGRESS_TRANSFERQUEUEDATA (WM_PROGRESS_FIRST + 6)
|
|
#define WM_PROGRESS_SHELLTRAYNOTIFICATION (WM_PROGRESS_FIRST + 7)
|
|
#define WM_PROGRESS_SHUTDOWN (WM_PROGRESS_FIRST + 8)
|
|
#define WM_PROGRESS_RESETKILLHANDLERSTIMER (WM_PROGRESS_FIRST + 9)
|
|
|
|
// helper macros for sending window messages
|
|
#define BASEDLG_SHOWWINDOW(hwnd,nCmdShow) SendMessage(hwnd,WM_BASEDLG_SHOWWINDOW,nCmdShow,0);
|
|
|
|
INT_PTR CALLBACK CChoiceDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
|
LPARAM lParam);
|
|
|
|
typedef struct _tagSetQueueDataInfo
|
|
{
|
|
const CLSID *rclsid;
|
|
CHndlrQueue * pHndlrQueue;
|
|
} SetQueueDataInfo;
|
|
|
|
#define NUM_DLGRESIZEINFOCHOICE 6 // make sure update if change numitems
|
|
|
|
class CChoiceDlg : public CBaseDlg
|
|
{
|
|
public:
|
|
CChoiceDlg(REFCLSID rclsid);
|
|
BOOL Initialize(DWORD dwThreadID,int nCmdShow); // called to initialize the choice dialog
|
|
BOOL SetQueueData(REFCLSID rclsid,CHndlrQueue * pHndlrQueue);
|
|
void ReleaseDlg(WORD wCommandID);
|
|
void UpdateWndPosition(int nCmdShow,BOOL fForce);
|
|
HRESULT QueryCanSystemShutdown(/* [out] */ HWND *phwnd, /* [out] */ UINT *puMessageId,
|
|
/* [out] */ BOOL *pfLetUserDecide);
|
|
|
|
void HandleLogError(HWND hwnd,HANDLERINFO *pHandlerID,MSGLogErrors *lpmsgLogErrors);
|
|
void PrivReleaseDlg(WORD wCommandID);
|
|
void CallCompletionRoutine(DWORD dwThreadMsg,LPCALLCOMPLETIONMSGLPARAM lpCallCompletelParam);
|
|
|
|
|
|
private:
|
|
BOOL PrivSetQueueData(REFCLSID rclsid,CHndlrQueue * pHndlrQueue);
|
|
BOOL SetButtonState(int nIDDlgItem,BOOL fEnabled);
|
|
int CalcListViewWidth(HWND hwndList);
|
|
|
|
BOOL OnInitialize(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnClose(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnCommand(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnGetMinMaxInfo(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
LRESULT OnNotifyListViewEx(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
LRESULT OnNotify(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnHelp(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnContextMenu(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnSetQueueData(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnStartCommand(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnPropertyCommand(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
|
|
// Set QueueData has to be in sync with
|
|
BOOL ShowChoiceDialog();
|
|
BOOL AddNewItemsToListView();
|
|
HRESULT ShowProperties(int iItem);
|
|
|
|
CHndlrQueue *m_pHndlrQueue;
|
|
BOOL m_fDead;
|
|
int m_nCmdShow; // How to show dialog, same flags pased to ShowWindow.
|
|
BOOL m_fInternalAddref; // bool to indicate if dialog has placed an addref on self.
|
|
DWORD m_dwShowPropertiesCount; // keeps track of number of show properties open.
|
|
CLSID m_clsid; // clsid associated with this dialog.
|
|
ULONG m_ulNumDlgResizeItem;
|
|
DLGRESIZEINFO m_dlgResizeInfo[NUM_DLGRESIZEINFOCHOICE];
|
|
POINT m_ptMinimizeDlgSize;
|
|
CListView *m_pItemListView;
|
|
|
|
|
|
friend INT_PTR CALLBACK CChoiceDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
|
LPARAM lParam);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// structures for dialog messages
|
|
|
|
// wparam of the progress update message,
|
|
// lparam of the Update is teh SYNCPROGRESSITEM.
|
|
typedef struct _tagPROGRESSUPDATEDATA
|
|
{
|
|
HANDLERINFO *pHandlerID;
|
|
WORD wItemId;
|
|
CLSID clsidHandler;
|
|
SYNCMGRITEMID ItemID;
|
|
} PROGRESSUPDATEDATA;
|
|
|
|
|
|
// flags for keeping track of progress dlg state.
|
|
// make sure all flags are unique bits.
|
|
typedef enum _tagPROGRESSFLAG
|
|
{
|
|
// general state of the dialog
|
|
PROGRESSFLAG_NEWDIALOG = 0x01, // dialog is new and no items have been added yet.
|
|
PROGRESSFLAG_TRANSFERADDREF = 0x02, // an addref has been placed on dialog by queue items getting trasferred.
|
|
PROGRESSFLAG_SYNCINGITEMS = 0x04, // process of synchronizing items in queue has started but not finished.
|
|
PROGRESSFLAG_INCANCELCALL = 0x08, // cancel call is in progress.
|
|
PROGRESSFLAG_CANCELWHILESHUTTINGDOWN = 0x10, // cancel was pressed while in shutdownloop
|
|
PROGRESSFLAG_DEAD = 0x20, // done with dialog no methods should be called.
|
|
PROGRESSFLAG_CALLBACKPOSTED = 0x40, // at leasted on callback message is in the queue.
|
|
PROGRESSFLAG_STARTPROGRESSPOSTED = 0x80, // anyone who posts a start process check this before posting
|
|
|
|
// flags used by main sync loop to figure out what to do next.
|
|
PROGRESSFLAG_NEWITEMSINQUEUE = 0x0100, // new items have been placed in the queue.
|
|
PROGRESSFLAG_IDLENETWORKTIMER = 0x0200, // idle timer has been setup for network idles.
|
|
PROGRESSFLAG_PROGRESSANIMATION = 0x0400, // progress animatiion has been turned on.
|
|
PROGRESSFLAG_SHUTTINGDOWNLOOP = 0x0800, // set when no more items in queue and starting shutdown process
|
|
PROGRESSFLAG_INHANDLEROUTCALL = 0x1000, // set when in main loop and making an out call.
|
|
PROGRESSFLAG_COMPLETIONROUTINEWHILEINOUTCALL = 0x2000, // set in callback when handler is already in an out calll.
|
|
PROGRESSFLAG_INSHOWERRORSCALL = 0x4000, // set when in showerrors call
|
|
PROGRESSFLAG_SHOWERRORSCALLBACKCALLED = 0x8000, // set when showerrors callback comes in while still in original cal.
|
|
|
|
// flags used to keep track of Idle state (if any)
|
|
PROGRESSFLAG_REGISTEREDFOROFFIDLE = 0x010000, // off idle callback has been registered.
|
|
PROGRESSFLAG_RECEIVEDOFFIDLE = 0x020000, // queue has receive the offIdle event
|
|
PROGRESSFLAG_IDLERETRYENABLED = 0x040000, // retry on idle has been set.
|
|
PROGRESSFLAG_INOFFIDLE = 0x080000, // set when handling an offidle
|
|
PROGRESSFLAG_CANCELPRESSED = 0x100000, // set when cancel has been pressed and never reset.
|
|
|
|
//flag used to terminate unresponsive hanlders
|
|
PROGRESSFLAG_INTERMINATE = 0x200000 //We are terminating unresponsive handlers.
|
|
|
|
} PROGRESSFLAG;
|
|
|
|
|
|
INT_PTR CALLBACK ProgressWndProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
|
|
#define NUM_DLGRESIZEINFO_PROGRESS 15
|
|
#define NUM_DLGRESIZEINFO_PROGRESS_COLLAPSED 7
|
|
|
|
#define NUM_PROGRESS_ERRORIMAGES 3
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Images
|
|
//
|
|
typedef enum _tagErrorImageIndex
|
|
{
|
|
ErrorImage_Information = 0,
|
|
ErrorImage_Warning = 1,
|
|
ErrorImage_Error = 2,
|
|
} ErrorImageIndex;
|
|
|
|
enum {
|
|
IMAGE_TACK_IN = 0,
|
|
IMAGE_TACK_OUT
|
|
};
|
|
|
|
class CProgressDlg : public CBaseDlg
|
|
{
|
|
public:
|
|
|
|
CProgressDlg(REFCLSID rclsid);
|
|
BOOL Initialize(DWORD dwThreadID,int nCmdShow);
|
|
|
|
// transfer queue has to be synced with person doing the transfer.
|
|
STDMETHODIMP TransferQueueData(CHndlrQueue *HndlrQueue);
|
|
void ReleaseDlg(WORD wCommandID);
|
|
void UpdateWndPosition(int nCmdShow,BOOL fForce);
|
|
void HandleLogError(HWND hwnd,HANDLERINFO *pHandlerID,MSGLogErrors *lpmsgLogErrors);
|
|
void HandleDeleteLogError(HWND hwnd,MSGDeleteLogErrors *pDeleteLogError);
|
|
void CallCompletionRoutine(DWORD dwThreadMsg,LPCALLCOMPLETIONMSGLPARAM lpCallCompletelParam);
|
|
HRESULT QueryCanSystemShutdown(/* [out] */ HWND *phwnd, /* [out] */ UINT *puMessageId,
|
|
/* [out] */ BOOL *pfLetUserDecide);
|
|
|
|
void PrivReleaseDlg(WORD wCommandID);
|
|
void OffIdle();
|
|
void OnIdle();
|
|
void SetIdleParams( ULONG m_ulIdleRetryMinutes,ULONG m_ulDelayIdleShutDownTime,BOOL fRetryEnabled);
|
|
|
|
|
|
private:
|
|
STDMETHODIMP_(ULONG) AddRefProgressDialog();
|
|
STDMETHODIMP_(ULONG) ReleaseProgressDialog(BOOL fForce);
|
|
|
|
// methods called from the wndProc
|
|
BOOL InitializeHwnd(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
BOOL OnCommand(HWND hwnd, WORD wID, WORD wNotifyCode);
|
|
BOOL OnSysCommand(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnTimer(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnTaskBarCreated(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnPaint(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnShellTrayNotification(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnClose(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnGetMinMaxInfo(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnMoving(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnCommand(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
LRESULT OnNotify(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
BOOL OnContextMenu(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
BOOL OnPowerBroadcast(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
LRESULT OnNotifyListViewEx(UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
void OnResetKillHandlersTimers(void);
|
|
|
|
|
|
STDMETHODIMP PrivTransferQueueData(CHndlrQueue *HndlrQueue);
|
|
BOOL KeepProgressAlive();
|
|
void OnCancel(BOOL fOffIdle);
|
|
STDMETHODIMP CreateListViewItem(HWND hwnd,HANDLERINFO *pHandlerID,REFCLSID clsidHandler,SYNCMGRITEM *pofflineItem, INT *piListViewItem, INT iItem);
|
|
STDMETHODIMP OnShowError(HANDLERINFO *pHandlerId,HWND hWndParent,REFSYNCMGRERRORID ErrorID);
|
|
BOOL RedrawIcon();
|
|
void ShowProgressTab(int iTab);
|
|
void UpdateProgressValues();
|
|
STDMETHODIMP PrepareNewItemsForSync(void);
|
|
void DoSyncTask(HWND hwnd);
|
|
void HandleProgressUpdate(HWND hwnd, WPARAM wParam,LPARAM lParam);
|
|
void ExpandCollapse(BOOL fExpand, BOOL fForce);
|
|
BOOL InitializeTabs(HWND hwnd);
|
|
BOOL InitializeToolbar(HWND hwnd);
|
|
BOOL InitializeUpdateList(HWND hwnd);
|
|
BOOL InitializeResultsList(HWND hwnd);
|
|
BOOL ShowCompletedProgress(BOOL fComplete,BOOL fDialogIsLocked);
|
|
BOOL AnimateTray(BOOL fTayAdded);
|
|
BOOL RegisterShellTrayIcon(BOOL fRegister);
|
|
BOOL UpdateTrayIcon();
|
|
BOOL SetButtonState(int nIDDlgItem,BOOL fEnabled);
|
|
BOOL IsItemWorking(int iListViewItem);
|
|
|
|
void UpdateDetailsInfo(DWORD dwStatusType,int iItem, TCHAR *pszItemInfo);
|
|
void AddListData(LBDATA *pData, int iNumChars, HWND hwndList);
|
|
|
|
|
|
private:
|
|
LONG m_cInternalcRefs;
|
|
LONG m_lTimerSet;
|
|
|
|
HWND m_hwndTabs;
|
|
WNDPROC m_fnResultsListBox; // function for ListBoxSubClass.
|
|
BOOL m_fSensInstalled;
|
|
|
|
// variables for resizing.
|
|
DLGRESIZEINFO m_dlgResizeInfo[NUM_DLGRESIZEINFO_PROGRESS];
|
|
ULONG m_cbNumDlgResizeItemsCollapsed;
|
|
ULONG m_cbNumDlgResizeItemsExpanded;
|
|
POINT m_ptMinimumDlgExpandedSize; // minimum size dialog can be in expanded mode.
|
|
DWORD m_cyCollapsed; // min Height of the collapsed dialog
|
|
BOOL m_fExpanded; // TRUE if the details part of the dialog is visible
|
|
BOOL m_fPushpin; //Pushpin state
|
|
BOOL m_fMaximized; // set to true when the window has been maximized.
|
|
RECT m_rcDlg; // Size of the fully expanded dialog
|
|
|
|
HIMAGELIST m_errorimage;
|
|
int m_iIconMetricX;
|
|
int m_iIconMetricY;
|
|
INT m_ErrorImages[NUM_PROGRESS_ERRORIMAGES];
|
|
INT m_iProgressSelectedItem;
|
|
INT m_iResultCount;
|
|
INT m_iInfoCount;
|
|
INT m_iWarningCount;
|
|
INT m_iErrorCount;
|
|
LBDATA *m_CurrentListEntry;
|
|
|
|
int m_iLastItem;
|
|
DWORD m_dwLastStatusType;
|
|
INT m_iTab; // The index of the current tab
|
|
|
|
CHndlrQueue *m_HndlrQueue;
|
|
|
|
// Idle specific members
|
|
CSyncMgrIdle *m_pSyncMgrIdle;
|
|
ULONG m_ulIdleRetryMinutes;
|
|
ULONG m_ulDelayIdleShutDownTime;
|
|
|
|
DWORD m_dwProgressFlags;
|
|
DWORD m_dwShowErrorRefCount; // number of RefCounts showError calls have on the dialog.
|
|
DWORD m_dwSetItemStateRefCount; // number of RefCounts SetItemState OutCall has on the dialog.
|
|
DWORD m_dwHandleThreadNestcount; // make sure main handler thread isn't re-entrant
|
|
DWORD m_dwPrepareForSyncOutCallCount; // number of prepareForSyncs in progress.
|
|
DWORD m_dwSynchronizeOutCallCount; // number of prepareForSyncs in progress.
|
|
DWORD m_dwHandlerOutCallCount; // total number of outcalls in progress.
|
|
CLSID m_clsidHandlerInSync; // clsid associated with handler that is currently synchronizing.
|
|
|
|
DWORD m_dwQueueTransferCount; // number of queue transfers in progress.
|
|
BOOL m_fHasShellTrayIcon;
|
|
BOOL m_fAddedIconToTray;
|
|
int m_iTrayAniFrame;
|
|
CLSID m_clsid; // clsid associated with this dialog.
|
|
INT m_iItem; // index to any new item to the list box.
|
|
int m_nCmdShow; // How to show dialog, same flags pased to ShowWindow.
|
|
CListView *m_pItemListView;
|
|
UINT m_nKillHandlerTimeoutValue; // TimeoutValue for ForceKill
|
|
|
|
|
|
TCHAR m_pszStatusText[8][MAX_STRING_RES + 1];
|
|
|
|
friend INT_PTR CALLBACK ProgressWndProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
friend BOOL OnProgressUpdateNotify(HWND hwnd,CProgressDlg *pProgress, int idFrom, LPNMHDR pnmhdr);
|
|
friend BOOL OnProgressResultsDrawItem(HWND hwnd,CProgressDlg *pProgress,UINT idCtl, const DRAWITEMSTRUCT* lpDrawItem);
|
|
friend BOOL OnProgressResultsNotify(HWND hwnd,CProgressDlg *pProgress, int idFrom, LPNMHDR pnmhdr);
|
|
friend INT_PTR CALLBACK ResultsListBoxWndProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
friend INT_PTR CALLBACK ResultsProgressWndProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam);
|
|
friend BOOL OnProgressResultsMeasureItem(HWND hwnd,CProgressDlg *pProgress, UINT *horizExtent, UINT idCtl, MEASUREITEMSTRUCT *pMeasureItem);
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif // _ONESTOPDLG_
|