windows-nt/Source/XPSP1/NT/public/sdk/inc/jobexec.h
2020-09-26 16:20:57 +08:00

87 lines
2.6 KiB
C

//=--------------------------------------------------------------------------=
// jobexec.h
//=--------------------------------------------------------------------------=
// Copyright 1996-1998 Microsoft Corporation. All Rights Reserved.
//
//
// interface declaration for the JobExecuter object.
//
#ifndef _JOBEXEC_H_
#ifdef __cplusplus
extern "C"{
#endif
typedef struct
{
DWORD cbSize;
DWORD dwKBReqWinDrive;
DWORD dwKBAvailWinDrive;
DWORD dwKBReqInstallDrive;
DWORD dwKBAvailInstallDrive;
DWORD dwKBReqDownloadDrive;
DWORD dwKBAvailDownloadDrive;
} CHECKDISKSPACE;
// {7279B780-2867-11d0-A066-00AA00B6015C}
DEFINE_GUID(CLSID_JobExecuter, 0x7279b780, 0x2867, 0x11d0, 0xa0, 0x66, 0x0, 0xaa, 0x0, 0xb6, 0x1, 0x5c);
// {7279B781-2867-11d0-A066-00AA00B6015C}
DEFINE_GUID(IID_IJobExecuter, 0x7279b782, 0x2867, 0x11d0, 0xa0, 0x66, 0x0, 0xaa, 0x0, 0xb6, 0x1, 0x5c);
#undef INTERFACE
#define INTERFACE IJobExecuter
#define E_PARTIAL _HRESULT_TYPEDEF_(0x80100001L)
#define E_ABORTPARTIAL _HRESULT_TYPEDEF_(0x80100002L)
DECLARE_INTERFACE_(IJobExecuter, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(InitializeJob)(THIS_ LPCSTR pszJobName, char chMode) PURE;
STDMETHOD(SetDownloadDir)(THIS_ LPCSTR pszDownloadDir) PURE;
STDMETHOD(SetBaseUrls)(THIS_ LPCSTR pszBaseUrl) PURE;
STDMETHOD(SetInstallDrive)(THIS_ CHAR chDrive) PURE;
STDMETHOD(SetInstallMode)(THIS_ CHAR chMode) PURE;
STDMETHOD(SetInstallOptions)(THIS_ DWORD dwInsFlag) PURE;
STDMETHOD(CheckFreeSpace)(THIS_ CHECKDISKSPACE *pcds) PURE;
STDMETHOD(DownloadJob)(THIS_ DWORD dwFlags, LPSTR *ppszSuccessStr, LPSTR *ppszErrorStr) PURE;
STDMETHOD(InstallJob)(THIS_ DWORD dwFlags, DWORD *dwStatus,
LPSTR *ppszSuccessStr, LPSTR *ppszErrorStr) PURE;
STDMETHOD(SetHWND)(THIS_ HWND hForUI) PURE;
STDMETHOD(SetIStream)(THIS_ IStream *pstm) PURE;
};
// The job key, off of HKCU
#define KEY_JOB "Software\\Microsoft\\Active Setup\\Jobs"
#define VALUE_BASEURL "BaseUrl"
#define VALUE_CIFNAME "InstallList"
#define VALUE_CABNAME "CabName"
#define VALUE_MODELIST "InstallModes"
#define VALUE_DEFAULTMODE "DefaultMode"
#define VALUE_QUIETMODE "QuietMode"
#define VALUE_LOCALURL "LocalUrl"
// for support of suspend,resume,abort from outside jobexec.dll
#define VALUE_STATUS "Status"
#define DATA_SUSPEND 1
#define DATA_RESUME 2
#define DATA_ABORT 3
#ifdef __cplusplus
}
#endif
#define _JOBEXEC_H_
#endif //