/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_WDSCLIENTAPI
#define _INC_WDSCLIENTAPI
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
#define WDS_CLI_MSG_START 0
#define WDS_CLI_MSG_COMPLETE 1
#define WDS_CLI_MSG_PROGRESS 2
#define WDS_CLI_MSG_TEXT 3
#ifndef WDSCLIAPI
#define WDSCLIAPI WINAPI
#endif
/* WdsClientAPI.dll is missing an implib because Vista clients don't have the dll to generate it from */
typedef VOID (CALLBACK *PFN_WdsCliCallback)(
DWORD dwMessageId,
WPARAM wParam,
LPARAM lParam,
PVOID pvUserData
);
typedef VOID (WDSCLIAPI *PFN_WdsCliTraceFunction)(
LPCWSTR pwszFormat,
va_list Params
);
typedef enum _WDS_LOG_LEVEL {
WDS_LOG_LEVEL_DISABLED = 0,
WDS_LOG_LEVEL_ERROR = 1,
WDS_LOG_LEVEL_WARNING = 2,
WDS_LOG_LEVEL_INFO = 3
} WDS_LOG_LEVEL;
typedef enum _WDS_LOG_TYPE_CLIENT {
WDS_LOG_TYPE_CLIENT_ERROR = 1,
WDS_LOG_TYPE_CLIENT_STARTED,
WDS_LOG_TYPE_CLIENT_FINISHED,
WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED,
WDS_LOG_TYPE_CLIENT_APPLY_STARTED,
WDS_LOG_TYPE_CLIENT_APPLY_FINISHED,
WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE,
WDS_LOG_TYPE_CLIENT_MAX_CODE
} WDS_LOG_TYPE_CLIENT;
typedef struct tagWDS_CLI_CRED {
PCWSTR pwszUserName;
PCWSTR pwszDomain;
PCWSTR pwszPassword;
} WDS_CLI_CRED, *PWDS_CLI_CRED, *LPWDS_CLI_CRED;
HRESULT WDSCLIAPI WdsCliAuthorizeSession(
HANDLE hSession,
PWDS_CLI_CRED pCred
);
HRESULT WDSCLIAPI WdsCliCancelTransfer(
HANDLE hTransfer
);
HRESULT WDSCLIAPI WdsCliClose(
HANDLE Handle
);
HRESULT WDSCLIAPI WdsCliCreateSession(
PWSTR pwszServer,
PWDS_CLI_CRED pCred,
PHANDLE phSession
);
HRESULT WDSCLIAPI WdsCliFindFirstImage(
HANDLE hSession,
PHANDLE phFindHandle
);
HRESULT WDSCLIAPI WdsCliFindNextImage(
HANDLE Handle
);
#define WdsCliFlagEnumFilterVersion 1
HRESULT WDSCLIAPI WdsCliGetEnumerationFlags(
HANDLE Handle,
PDWORD pdwFlags
);
#define PROCESSOR_ARCHITECTURE_AMD64 9
#define PROCESSOR_ARCHITECTURE_IA64 6
#define PROCESSOR_ARCHITECTURE_INTEL 0
HRESULT WDSCLIAPI WdsCliGetImageArchitecture(
HANDLE hIfh,
PDWORD pdwValue
);
HRESULT WDSCLIAPI WdsCliGetImageDescription(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageGroup(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageHalName(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageHandleFromFindHandle(
HANDLE FindHandle,
PHANDLE phImageHandle
);
HRESULT WDSCLIAPI WdsCliGetImageHandleFromTransferHandle(
HANDLE hTransfer,
PHANDLE phImageHandle
);
HRESULT WDSCLIAPI WdsCliGetImageIndex(
HANDLE hIfh,
PDWORD pdwValue
);
HRESULT WDSCLIAPI WdsCliGetImageLanguage(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageLanguages(
HANDLE hIfh,
PTSTR **pppszValues,
PDWORD pdwNumValues
);
HRESULT WDSCLIAPI WdsCliGetImageLastModifiedTime(
HANDLE hIfh,
PSYSTEMTIME *ppSysTimeValue
);
HRESULT WINAPI WdsCliGetImageName(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageNamespace(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImagePath(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetImageSize(
HANDLE hIfh,
PULONGLONG pullValue
);
HRESULT WDSCLIAPI WdsCliGetImageVersion(
HANDLE hIfh,
PWSTR *ppwszValue
);
HRESULT WDSCLIAPI WdsCliGetTransferSize(
HANDLE hIfh,
PULONGLONG pullValue
);
HRESULT WDSCLIAPI WdsCliInitializeLog(
HANDLE hSession,
ULONG ulClientArchitecture,
PWSTR pwszClientId,
PWSTR pwszClientAddress
);
#define WDS_LOG_LEVEL_DISABLED 0
#define WDS_LOG_LEVEL_ERROR 1
#define WDS_LOG_LEVEL_WARNING 2
#define WDS_LOG_LEVEL_INFO 3
#define WDS_LOG_TYPE_CLIENT_ERROR 1
#define WDS_LOG_TYPE_CLIENT_STARTED 2
#define WDS_LOG_TYPE_CLIENT_FINISHED 3
#define WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED 4
#define WDS_LOG_TYPE_CLIENT_APPLY_STARTED 5
#define WDS_LOG_TYPE_CLIENT_APPLY_FINISHED 6
#define WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE 7
#define WDS_LOG_TYPE_CLIENT_MAX_CODE 8
HRESULT __cdecl WdsCliLog(
HANDLE hSession,
ULONG ulLogLevel,
ULONG ulMessageCode,
...
);
HRESULT WDSCLIAPI WdsCliRegisterTrace(
PFN_WdsCliTraceFunction pfn
);
HRESULT WDSCLIAPI WdsCliTransferFile(
PCWSTR pwszServer,
PCWSTR pwszNamespace,
PCWSTR pwszRemoteFilePath,
PCWSTR pwszLocalFilePath,
DWORD dwFlags,
DWORD dwReserved,
PFN_WdsCliCallback pfnWdsCliCallback,
PVOID pvUserData,
PHANDLE phTransfer
);
HRESULT WDSCLIAPI WdsCliTransferImage(
HANDLE hImage,
PWSTR pwszLocalPath,
DWORD dwFlags,
DWORD dwReserved,
PFN_WdsCliCallback pfnWdsCliCallback,
PVOID pvUserData,
PHANDLE phTransfer
);
HRESULT WDSCLIAPI WdsCliWaitForTransfer(
HANDLE hTransfer
);
#ifdef __cplusplus
}
#endif
#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif /*_INC_WDSCLIENTAPI*/