227 lines
4.2 KiB
C
227 lines
4.2 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
progbar.h
|
|
|
|
Abstract:
|
|
|
|
Declares the functions, variables and macros for the progress bar
|
|
utilities. The progress bar utilities manage a single progress bar by
|
|
dividing it into slices. Each slice has an initial static size. The
|
|
count for each slice is scaled independently, so code can dynamically
|
|
change the slice count as an aid to help tick the progress bar more
|
|
smoothly.
|
|
|
|
Author:
|
|
|
|
Marc R. Whitten (marcw) 14-Apr-1997
|
|
|
|
Revision History:
|
|
|
|
jimschm 01-Jul-1998 Rewrite
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
//
|
|
// Includes
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Strings
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Constants
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Macros
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Types
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Globals
|
|
//
|
|
|
|
// exposed for the macros
|
|
extern HWND g_Component;
|
|
extern HWND g_SubComponent;
|
|
extern HANDLE g_ComponentCancelEvent;
|
|
extern HANDLE g_SubComponentCancelEvent;
|
|
|
|
//
|
|
// Macro expansion list
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Public function prototypes
|
|
//
|
|
// initialization and termination
|
|
//
|
|
|
|
VOID
|
|
PbInitialize (
|
|
IN HWND ProgressBar,
|
|
IN HWND Component, OPTIONAL
|
|
IN HWND SubComponent, OPTIONAL
|
|
IN BOOL *CancelFlagPtr OPTIONAL
|
|
);
|
|
|
|
VOID
|
|
PbTerminate (
|
|
VOID
|
|
);
|
|
|
|
//
|
|
// registration, estimate revision and ticking
|
|
//
|
|
|
|
UINT
|
|
PbRegisterSlice (
|
|
IN UINT InitialEstimate
|
|
);
|
|
|
|
VOID
|
|
PbReviseSliceEstimate (
|
|
IN UINT SliceId,
|
|
IN UINT RevisedEstimate
|
|
);
|
|
|
|
VOID
|
|
PbBeginSliceProcessing (
|
|
IN UINT SliceId
|
|
);
|
|
|
|
VOID
|
|
PbGetSliceInfo (
|
|
IN UINT SliceId,
|
|
OUT PBOOL SliceStarted, OPTIONAL
|
|
OUT PBOOL SliceFinished, OPTIONAL
|
|
OUT PUINT TicksCompleted, OPTIONAL
|
|
OUT PUINT TotalTicks OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
PbTickDelta (
|
|
IN UINT Ticks
|
|
);
|
|
|
|
BOOL
|
|
PbTick (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
PbEndSliceProcessing (
|
|
VOID
|
|
);
|
|
|
|
|
|
//
|
|
// delayed titles
|
|
//
|
|
|
|
BOOL
|
|
PbSetWindowStringA (
|
|
IN HWND Window,
|
|
IN HANDLE CancelEvent,
|
|
IN PCSTR Message, OPTIONAL
|
|
IN DWORD MessageId OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
PbSetDelayedMessageA (
|
|
IN HWND Window,
|
|
IN HANDLE CancelEvent,
|
|
IN PCSTR Message,
|
|
IN DWORD MessageId,
|
|
IN DWORD Delay
|
|
);
|
|
|
|
VOID
|
|
PbCancelDelayedMessage (
|
|
IN HANDLE CancelEvent
|
|
);
|
|
|
|
#if 0
|
|
|
|
BOOL
|
|
PbCreateTickThread (
|
|
IN HANDLE CancelEvent,
|
|
IN DWORD TickCount
|
|
);
|
|
|
|
BOOL
|
|
PbCancelTickThread (
|
|
IN HANDLE CancelEvent
|
|
);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//
|
|
// Macro expansion definition
|
|
//
|
|
|
|
// None
|
|
|
|
//
|
|
// Macros, including ANSI/UNICODE macros
|
|
//
|
|
|
|
#define PbCancelDelayedComponent() PbCancelDelayedMessage(g_ComponentCancelEvent);
|
|
#define PbCancelDelayedSubComponent() PbCancelDelayedMessage(g_SubComponentCancelEvent);
|
|
|
|
#ifndef UNICODE
|
|
|
|
#define PbSetComponent(s) PbSetWindowStringA(g_Component,g_ComponentCancelEvent,(s),0)
|
|
|
|
#if !defined PRERELEASE || !defined DEBUG
|
|
|
|
#define PbSetSubComponent(s) PbSetWindowStringA(g_SubComponent,g_SubComponentCancelEvent,(s),0)
|
|
#define PbSetFnName(s)
|
|
#define PbClearFnName()
|
|
|
|
#else
|
|
|
|
#define PbSetSubComponent(s) ((s) == NULL ? 1 : PbSetWindowStringA(g_SubComponent,g_SubComponentCancelEvent,(s),0))
|
|
#define PbSetFnName(s) PbSetWindowStringA(g_SubComponent,g_SubComponentCancelEvent,(s),0)
|
|
#define PbClearFnName() PbSetWindowStringA(g_SubComponent,g_SubComponentCancelEvent,NULL,0)
|
|
|
|
#endif
|
|
|
|
#define PbSetComponentById(n) PbSetWindowStringA(g_Component,g_ComponentCancelEvent,NULL,(n))
|
|
#define PbSetSubComponentById(n) PbSetWindowStringA(g_SubComponent,g_SubComponentCancelEvent,NULL,(n))
|
|
#define PbSetDelayedComponent(s,d) PbSetDelayedMessageA(g_Component,g_ComponentCancelEvent,(s),0,(d))
|
|
#define PbSetDelayedSubComponent(s,d) PbSetDelayedMessageA(g_SubComponent,g_SubComponentCancelEvent,(s),0,(d))
|
|
#define PbSetDelayedComponentById(n,d) PbSetDelayedMessageA(g_Component,g_ComponentCancelEvent,NULL,(n),(d))
|
|
#define PbSetDelayedSubComponentById(n,d) PbSetDelayedMessageA(g_SubComponent,g_SubComponentCancelEvent,NULL,(n),(d))
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|