784 lines
23 KiB
C++
784 lines
23 KiB
C++
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* File: progress.cpp
|
||
|
|
||
|
Description: Implements the various flavors of progress dialogs used
|
||
|
in the quota UI.
|
||
|
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#include "pch.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#include "progress.h"
|
||
|
#include "resource.h"
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::SendToProgressBar [inline]
|
||
|
|
||
|
Description: Inline function that sends a message to the dialog's
|
||
|
progress bar control. If there is no progress bar control, the
|
||
|
function returns FALSE.
|
||
|
|
||
|
Arguments: Standard Win32 message arguments.
|
||
|
|
||
|
Returns:
|
||
|
If progress bar window exists, returns the result of SendMessage.
|
||
|
Otherwise, returns FALSE.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
inline INT_PTR
|
||
|
ProgressDialog::SendToProgressBar(
|
||
|
UINT uMsg,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
if (NULL != m_hwndProgressBar)
|
||
|
return SendMessage(m_hwndProgressBar, uMsg, wParam, lParam);
|
||
|
else
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::ProgressDialog
|
||
|
|
||
|
Description: Class constructor for progress dialog base class.
|
||
|
|
||
|
Arguments:
|
||
|
idDialogTemplate - ID number for the dialog's resource template.
|
||
|
|
||
|
idProgressBar - ID number for the progress bar control.
|
||
|
|
||
|
idTxtDescription - ID number for text description in dialog.
|
||
|
|
||
|
idTxtFileName - ID number for file name field in dialog.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
ProgressDialog::ProgressDialog(
|
||
|
UINT idDialogTemplate,
|
||
|
UINT idProgressBar,
|
||
|
UINT idTxtDescription,
|
||
|
UINT idTxtFileName
|
||
|
) : m_idDialogTemplate(idDialogTemplate),
|
||
|
m_idProgressBar(idProgressBar),
|
||
|
m_idTxtDescription(idTxtDescription),
|
||
|
m_idTxtFileName(idTxtFileName),
|
||
|
m_hWnd(NULL),
|
||
|
m_bUserCancelled(FALSE)
|
||
|
{
|
||
|
DBGTRACE((DM_VIEW, DL_HIGH, TEXT("ProgressDialog::ProgressDialog")));
|
||
|
DBGPRINT((DM_VIEW, DL_HIGH, TEXT("\tthis = 0x%08X"), this));
|
||
|
//
|
||
|
// Do nothing.
|
||
|
//
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::~ProgressDialog
|
||
|
|
||
|
Description: Class destructor for progress dialog base class.
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
ProgressDialog::~ProgressDialog(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
DBGTRACE((DM_VIEW, DL_HIGH, TEXT("ProgressDialog::~ProgressDialog")));
|
||
|
DBGPRINT((DM_VIEW, DL_HIGH, TEXT("\tthis = 0x%08X"), this));
|
||
|
//
|
||
|
// Call the Destroy() function to destroy the progress dialog window.
|
||
|
//
|
||
|
Destroy();
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::Create
|
||
|
|
||
|
Description: Creates the dialog.
|
||
|
|
||
|
Arguments:
|
||
|
hInstance - Instance handle for the DLL containing the dialog
|
||
|
resource template.
|
||
|
|
||
|
hwndParent - Parent window for dialog.
|
||
|
|
||
|
Returns:
|
||
|
TRUE = Dialog was created.
|
||
|
FALSE = Dialog was not created.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
BOOL
|
||
|
ProgressDialog::Create(
|
||
|
HINSTANCE hInstance,
|
||
|
HWND hwndParent
|
||
|
)
|
||
|
{
|
||
|
m_hWnd = CreateDialogParam(hInstance,
|
||
|
MAKEINTRESOURCE(m_idDialogTemplate),
|
||
|
hwndParent,
|
||
|
DlgProc,
|
||
|
(LPARAM)this);
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
m_hwndProgressBar = GetDlgItem(m_hWnd, m_idProgressBar);
|
||
|
DBGASSERT((NULL != m_hwndProgressBar));
|
||
|
}
|
||
|
return (NULL != m_hWnd);
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::Destroy
|
||
|
|
||
|
Description: Destroys the dialog window.
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::Destroy(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
//
|
||
|
// Note that m_hWnd is set to NULL in OnDestroy().
|
||
|
//
|
||
|
if (NULL != m_hWnd)
|
||
|
DestroyWindow(m_hWnd);
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::DlgProc [static]
|
||
|
|
||
|
Description: Message procedure for the dialog.
|
||
|
|
||
|
Arguments: Standard Win32 message proc arguments.
|
||
|
|
||
|
Returns: Standard Win32 message proc return values.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
INT_PTR CALLBACK
|
||
|
ProgressDialog::DlgProc(
|
||
|
HWND hwnd,
|
||
|
UINT uMsg,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
//
|
||
|
// Retrieve the dialog object's ptr from the window's userdata.
|
||
|
// Place there in response to WM_INITDIALOG.
|
||
|
//
|
||
|
ProgressDialog *pThis = (ProgressDialog *)GetWindowLongPtr(hwnd, DWLP_USER);
|
||
|
|
||
|
switch(uMsg)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
//
|
||
|
// Store "this" ptr in window's userdata.
|
||
|
//
|
||
|
SetWindowLongPtr(hwnd, DWLP_USER, (INT_PTR)lParam);
|
||
|
pThis = (ProgressDialog *)lParam;
|
||
|
//
|
||
|
// Description text control is hidden by default.
|
||
|
// Calling SetDescription() will show it.
|
||
|
//
|
||
|
ShowWindow(GetDlgItem(hwnd, pThis->m_idTxtDescription), SW_HIDE);
|
||
|
ShowWindow(GetDlgItem(hwnd, pThis->m_idTxtFileName), SW_HIDE);
|
||
|
//
|
||
|
// Center dialog in it's parent.
|
||
|
//
|
||
|
::CenterPopupWindow(hwnd);
|
||
|
//
|
||
|
// Let derived classes respond to WM_INITDIALOG.
|
||
|
//
|
||
|
return pThis->OnInitDialog(hwnd, wParam, lParam);
|
||
|
|
||
|
case WM_DESTROY:
|
||
|
//
|
||
|
// Let derived classes respond to WM_DESTROY.
|
||
|
//
|
||
|
return pThis->OnDestroy(hwnd);
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
if (IDCANCEL == LOWORD(wParam))
|
||
|
{
|
||
|
//
|
||
|
// User pressed "Cancel" button.
|
||
|
// Set the "User cancelled" flag and let derived
|
||
|
// classes respond to the cancellation.
|
||
|
//
|
||
|
pThis->m_bUserCancelled = TRUE;
|
||
|
return pThis->OnCancel(hwnd, wParam, lParam);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
if (NULL != pThis)
|
||
|
{
|
||
|
//
|
||
|
// Let derived classes respond to any message if they wish.
|
||
|
// Note that only WM_INITDIALOG, WM_DESTROY and the "user cancelled"
|
||
|
// events are the only special cases.
|
||
|
//
|
||
|
return pThis->HandleMessage(hwnd, uMsg, wParam, lParam);
|
||
|
}
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::HandleMessage
|
||
|
|
||
|
Description: Base class implementation of virtual function. Derived
|
||
|
classes can provide an implementation to handle any message other than
|
||
|
WM_INITDIALOG or WM_DESTROY. These two messages have their own
|
||
|
virtual message handlers.
|
||
|
|
||
|
Arguments: Standard Win32 message proc arguments.
|
||
|
|
||
|
Returns: Always returns FALSE.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
INT_PTR
|
||
|
ProgressDialog::HandleMessage(
|
||
|
HWND hwnd,
|
||
|
UINT uMsg,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::OnInitDialog
|
||
|
|
||
|
Description: Base class implementation of virtual function. Called
|
||
|
when the base class receives WM_INITDIALOG. Derived classes can
|
||
|
provide an implementation if they wish to perform some operation
|
||
|
in response to WM_INITDIALOG.
|
||
|
|
||
|
Arguments:
|
||
|
hwnd - Dialog window handle.
|
||
|
|
||
|
wParam, lParam - Standard Win32 message proc arguments.
|
||
|
|
||
|
Returns: Always returns TRUE so that USER will set the control focus.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
INT_PTR
|
||
|
ProgressDialog::OnInitDialog(
|
||
|
HWND hwnd,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::OnDestroy
|
||
|
|
||
|
Description: Base class implementation of virtual function. Called
|
||
|
when the base class receives WM_DESTROY. Derived classes can
|
||
|
provide an implementation if they wish to perform some operation
|
||
|
in response to WM_DESTROY. Before returning, any derived implementation
|
||
|
must call the base class implementation so that m_hWnd is properly
|
||
|
set to NULL.
|
||
|
|
||
|
Arguments:
|
||
|
hwnd - Dialog window handle.
|
||
|
|
||
|
Returns: Always returns FALSE.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
INT_PTR
|
||
|
ProgressDialog::OnDestroy(
|
||
|
HWND hwnd
|
||
|
)
|
||
|
{
|
||
|
m_hWnd = NULL;
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::OnCancel
|
||
|
|
||
|
Description: Base class implementation of virtual function. Called
|
||
|
when the user presses the "Cancel" button in the dialog. This
|
||
|
implementation assumes that the Cancel button is assigned the ID
|
||
|
of IDCANCEL (standard).
|
||
|
|
||
|
Arguments:
|
||
|
hwnd - Dialog window handle.
|
||
|
|
||
|
wParam, lParam - Standard Win32 message proc arguments.
|
||
|
|
||
|
Returns: Always returns FALSE.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
INT_PTR
|
||
|
ProgressDialog::OnCancel(
|
||
|
HWND hwnd,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::FlushMessages
|
||
|
|
||
|
Description: While the dialog is active, call this periodically so that
|
||
|
the thread is able to properly update the dialog and respond to the
|
||
|
user pressing "Cancel".
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::FlushMessages(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
//
|
||
|
// Process messages for the dialog's parent and all of it's children.
|
||
|
//
|
||
|
MSG msg;
|
||
|
while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) &&
|
||
|
WM_QUIT != msg.message)
|
||
|
{
|
||
|
GetMessage(&msg, NULL, 0, 0);
|
||
|
if (!IsDialogMessage(m_hWnd, &msg))
|
||
|
{
|
||
|
TranslateMessage(&msg);
|
||
|
DispatchMessage(&msg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::SetTitle
|
||
|
|
||
|
Description: Sets the title string in the dialog.
|
||
|
|
||
|
Arguments:
|
||
|
pszTitle - Address of title string.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::SetTitle(
|
||
|
LPCTSTR pszTitle
|
||
|
)
|
||
|
{
|
||
|
DBGASSERT((NULL != pszTitle));
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
if (0 == ((DWORD_PTR)pszTitle & ~0xffff))
|
||
|
{
|
||
|
TCHAR szText[MAX_PATH] = { TEXT('\0') };
|
||
|
LoadString(g_hInstDll, (DWORD)((DWORD_PTR)pszTitle), szText, ARRAYSIZE(szText));
|
||
|
pszTitle = szText;
|
||
|
}
|
||
|
SetWindowText(m_hWnd, pszTitle);
|
||
|
FlushMessages();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::SetDescription
|
||
|
|
||
|
Description: Sets the progress description string in the dialog.
|
||
|
|
||
|
Arguments:
|
||
|
pszDescription - Address of description string.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::SetDescription(
|
||
|
LPCTSTR pszDescription
|
||
|
)
|
||
|
{
|
||
|
DBGASSERT((NULL != pszDescription));
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
if (0 == ((DWORD_PTR)pszDescription & ~0xffff))
|
||
|
{
|
||
|
TCHAR szText[MAX_PATH] = { TEXT('\0') };
|
||
|
LoadString(g_hInstDll, (DWORD)((DWORD_PTR)pszDescription), szText, ARRAYSIZE(szText));
|
||
|
pszDescription = szText;
|
||
|
}
|
||
|
SetWindowText(GetDlgItem(m_hWnd, m_idTxtDescription), pszDescription);
|
||
|
//
|
||
|
// Description control is by default hidden.
|
||
|
//
|
||
|
ShowWindow(GetDlgItem(m_hWnd, m_idTxtDescription), SW_NORMAL);
|
||
|
FlushMessages();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::SetFileName
|
||
|
|
||
|
Description: Sets the file name description string in the dialog.
|
||
|
If the file name is too long, it is formatted with ellipses to
|
||
|
fit in the space provided.
|
||
|
|
||
|
Arguments:
|
||
|
pszFileName - Address of file name string.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::SetFileName(
|
||
|
LPCTSTR pszFileName
|
||
|
)
|
||
|
{
|
||
|
DBGASSERT((NULL != pszFileName));
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
HWND hwndCtl = GetDlgItem(m_hWnd, m_idTxtFileName);
|
||
|
HDC hdc = GetDC(hwndCtl);
|
||
|
RECT rc;
|
||
|
LPTSTR pszText = StringDup(pszFileName);
|
||
|
|
||
|
if (NULL != pszText)
|
||
|
{
|
||
|
GetClientRect(hwndCtl, &rc);
|
||
|
|
||
|
DrawText(hdc,
|
||
|
pszText,
|
||
|
-1,
|
||
|
&rc,
|
||
|
DT_CENTER |
|
||
|
DT_PATH_ELLIPSIS |
|
||
|
DT_MODIFYSTRING);
|
||
|
|
||
|
SetWindowText(hwndCtl, pszText);
|
||
|
delete[] pszText;
|
||
|
|
||
|
//
|
||
|
// FileName control is by default hidden.
|
||
|
//
|
||
|
ShowWindow(hwndCtl, SW_NORMAL);
|
||
|
}
|
||
|
FlushMessages();
|
||
|
ReleaseDC(hwndCtl, hdc);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::ProgressBarInit
|
||
|
|
||
|
Description: Initializes the progress bar control with range and step
|
||
|
values. If this function is not called, the progress bar defaults
|
||
|
to:
|
||
|
iMin = 0
|
||
|
iMax = 100
|
||
|
iStep = 10
|
||
|
|
||
|
Arguments:
|
||
|
iMin - Minimum range value.
|
||
|
|
||
|
iMax - Maximum range value.
|
||
|
|
||
|
iStep - Amount bar advances each time PBM_STEPIT is received.
|
||
|
|
||
|
Returns:
|
||
|
TRUE = Progress bar control accepted settings.
|
||
|
FALSE = Progress bar rejected settings.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
BOOL
|
||
|
ProgressDialog::ProgressBarInit(
|
||
|
UINT iMin,
|
||
|
UINT iMax,
|
||
|
UINT iStep
|
||
|
)
|
||
|
{
|
||
|
BOOL bResult = FALSE;
|
||
|
|
||
|
if (0 != SendToProgressBar(PBM_SETSTEP, iStep, 0))
|
||
|
bResult = (0 != SendToProgressBar(PBM_SETRANGE, 0, MAKELPARAM(iMin, iMax)));
|
||
|
|
||
|
FlushMessages();
|
||
|
return bResult;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::ProgressBarReset
|
||
|
|
||
|
Description: Resets the progres bar position at 0.
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Previous "position" of progress bar.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
UINT
|
||
|
ProgressDialog::ProgressBarReset(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
UINT iReturn = (UINT)ProgressBarSetPosition(0);
|
||
|
FlushMessages();
|
||
|
return iReturn;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::ProgressBarAdvance
|
||
|
|
||
|
Description: Advances the progress bar a given number of counts.
|
||
|
|
||
|
Arguments:
|
||
|
iDelta - Number of counts to advance. If -1, the bar is advanced
|
||
|
by the step value supplied in ProgressBarInit.
|
||
|
|
||
|
Returns: Previous "position" of progress bar.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
UINT
|
||
|
ProgressDialog::ProgressBarAdvance(
|
||
|
UINT iDelta
|
||
|
)
|
||
|
{
|
||
|
UINT iReturn;
|
||
|
if ((UINT)-1 == iDelta)
|
||
|
iReturn = (UINT)SendToProgressBar(PBM_STEPIT, 0, 0);
|
||
|
else
|
||
|
iReturn = (UINT)SendToProgressBar(PBM_DELTAPOS, (WPARAM)iDelta, 0);
|
||
|
|
||
|
FlushMessages();
|
||
|
|
||
|
return iReturn;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::ProgressBarSetPosition
|
||
|
|
||
|
Description: Advances the progress bar to a specific position.
|
||
|
|
||
|
Arguments:
|
||
|
iPosition - Specific position count.
|
||
|
|
||
|
Returns: Previous "position" of progress bar.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
UINT
|
||
|
ProgressDialog::ProgressBarSetPosition(
|
||
|
UINT iPosition
|
||
|
)
|
||
|
{
|
||
|
UINT iReturn = (UINT)SendToProgressBar(PBM_SETPOS, (WPARAM)iPosition, 0);
|
||
|
FlushMessages();
|
||
|
return iReturn;
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::Show
|
||
|
|
||
|
Description: Makes the progress dialog visible.
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::Show(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
ShowWindow(m_hWnd, SW_SHOWNORMAL);
|
||
|
FlushMessages();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* Function: ProgressDialog::Hide
|
||
|
|
||
|
Description: Hides the progress dialog.
|
||
|
|
||
|
Arguments: None.
|
||
|
|
||
|
Returns: Nothing.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
05/28/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
VOID
|
||
|
ProgressDialog::Hide(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
if (NULL != m_hWnd)
|
||
|
{
|
||
|
ShowWindow(m_hWnd, SW_HIDE);
|
||
|
FlushMessages();
|
||
|
}
|
||
|
}
|