windows-nt/Source/XPSP1/NT/printscan/print/spooler/spllib/checkpoint.hxx
2020-09-26 16:20:57 +08:00

124 lines
2 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
All rights reserved
Module Name:
checkpoint.hxx
Abstract:
This file implements a class (or for 'C' handle based) calls to set and
restore system breakpoints.
Author:
Mark Lawrence (mlawrenc).
Environment:
User Mode -Win32
Revision History:
--*/
#ifndef _CHECKPOINT_HXX_
#define _CHECKPOINT_HXX_
#ifdef __cplusplus
//
// This only needs to be included from C++ includers, and is a very small header indeed.
//
#include <srrestoreptapi.h>
class TSystemRestorePoint
{
SIGNATURE('srsp');
public:
TSystemRestorePoint(
VOID
);
~TSystemRestorePoint(
VOID
);
HRESULT
IsValid(
VOID
) const;
HRESULT
StartSystemRestorePoint(
IN PCWSTR pszServer,
IN PCWSTR pszDriverName,
IN HINSTANCE hInst,
IN UINT ResId
);
HRESULT
EndSystemRestorePoint(
IN BOOL bCancel
);
private:
typedef BOOL
(__stdcall* PFnSRSetRestorePoint)(
IN PRESTOREPOINTINFOW pRestorePtSpec,
OUT PSTATEMGRSTATUS pSMgrStatus
);
//
// Copying and assignment are not defined.
//
TSystemRestorePoint(const TSystemRestorePoint &);
TSystemRestorePoint &operator=(const TSystemRestorePoint &);
HRESULT
Initialize(
VOID
);
HMODULE m_hLibrary;
PFnSRSetRestorePoint m_pfnSetRestorePoint;
RESTOREPOINTINFO m_RestorePointInfo;
BOOL m_bSystemRestoreSet;
HRESULT m_hr;
};
extern "C"
{
#endif
HRESULT
GetLastErrorAsHResult(
VOID
);
HANDLE
StartSystemRestorePoint(
IN PCWSTR pszServer,
IN PCWSTR pszDriverName,
IN HINSTANCE hInst,
IN UINT ResId
);
BOOL
EndSystemRestorePoint(
IN HANDLE hRestorePoint,
IN BOOL bCancel
);
#ifdef __cplusplus
}
#endif
#endif // #ifndef _CHECKPOINT_HXX_