WindowsXP-SP1/admin/dcpromo/exe/progressdialog.hpp
2020-09-30 16:53:49 +02:00

102 lines
2.0 KiB
C++

// Copyright (C) 1997 Microsoft Corporation
//
// Dialog to display promotion progress
//
// 12-29-97 sburns
#ifndef PROGRESSDIALOG_HPP_INCLUDED
#define PROGRESSDIALOG_HPP_INCLUDED
class ProgressDialog : public Dialog
{
public:
// one of these is returned from ModalExecute
static const UINT THREAD_SUCCEEDED;
static const UINT THREAD_FAILED;
typedef void (*ThreadProc) (ProgressDialog& dialog);
// threadProc - pointer to a thread procedure that will be started when
// the dialog is initialized (OnInit). The procedure will be passed a
// pointer to this instance.
//
// animationResID - resource ID of the AVI resource to be played while
// the dialog is shown.
ProgressDialog(
ThreadProc threadProc,
int animationResID);
virtual ~ProgressDialog();
void
UpdateText(const String& message);
void
UpdateText(int textStringResID);
void
UpdateButton(const String& text);
void
UpdateButton(int textStringResID);
enum WaitCode
{
PRESSED = 0,
TIMEOUT = WAIT_TIMEOUT
};
// blocks calling thread until the button is pressed or the timeout
// expires.
WaitCode
WaitForButton(int timeoutMillis);
private:
// Dialog overrides
virtual
void
OnDestroy();
virtual
bool
OnCommand(
HWND windowFrom,
unsigned controlIDFrom,
unsigned code);
virtual
void
OnInit();
virtual
bool
OnMessage(
UINT message,
WPARAM wparam,
LPARAM lparam);
ThreadProc threadProc;
int animationResId;
struct WrapperThreadProcParams* threadParams;
HANDLE buttonEventHandle;
// not defined: no copying allowed
ProgressDialog(const ProgressDialog&);
const ProgressDialog& operator=(const ProgressDialog&);
};
#endif // PROGRESSDIALOG_HPP_INCLUDED