master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_WDSCLIENTAPI
  7#define _INC_WDSCLIENTAPI
  8#if (_WIN32_WINNT >= 0x0600)
  9
 10#ifdef __cplusplus
 11extern "C" {
 12#endif
 13
 14#define WDS_CLI_MSG_START 0
 15#define WDS_CLI_MSG_COMPLETE 1
 16#define WDS_CLI_MSG_PROGRESS 2
 17#define WDS_CLI_MSG_TEXT 3
 18
 19#ifndef WDSCLIAPI
 20#define WDSCLIAPI WINAPI
 21#endif
 22
 23/* WdsClientAPI.dll is missing an implib because Vista clients don't have the dll to generate it from */
 24
 25typedef VOID (CALLBACK *PFN_WdsCliCallback)(
 26  DWORD dwMessageId,
 27  WPARAM wParam,
 28  LPARAM lParam,
 29  PVOID pvUserData
 30);
 31
 32typedef VOID (WDSCLIAPI *PFN_WdsCliTraceFunction)(
 33  LPCWSTR pwszFormat,
 34  va_list Params
 35);
 36
 37
 38typedef enum _WDS_LOG_LEVEL {
 39  WDS_LOG_LEVEL_DISABLED   = 0,
 40  WDS_LOG_LEVEL_ERROR      = 1,
 41  WDS_LOG_LEVEL_WARNING    = 2,
 42  WDS_LOG_LEVEL_INFO       = 3 
 43} WDS_LOG_LEVEL;
 44
 45typedef enum _WDS_LOG_TYPE_CLIENT {
 46  WDS_LOG_TYPE_CLIENT_ERROR             = 1,
 47  WDS_LOG_TYPE_CLIENT_STARTED,
 48  WDS_LOG_TYPE_CLIENT_FINISHED,
 49  WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED,
 50  WDS_LOG_TYPE_CLIENT_APPLY_STARTED,
 51  WDS_LOG_TYPE_CLIENT_APPLY_FINISHED,
 52  WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE,
 53  WDS_LOG_TYPE_CLIENT_MAX_CODE 
 54} WDS_LOG_TYPE_CLIENT;
 55
 56typedef struct tagWDS_CLI_CRED {
 57  PCWSTR  pwszUserName;
 58  PCWSTR pwszDomain;
 59  PCWSTR pwszPassword;
 60} WDS_CLI_CRED, *PWDS_CLI_CRED, *LPWDS_CLI_CRED;
 61
 62HRESULT WDSCLIAPI WdsCliAuthorizeSession(
 63  HANDLE hSession,
 64  PWDS_CLI_CRED pCred
 65);
 66
 67HRESULT WDSCLIAPI WdsCliCancelTransfer(
 68  HANDLE hTransfer
 69);
 70
 71HRESULT WDSCLIAPI WdsCliClose(
 72  HANDLE Handle
 73);
 74
 75HRESULT WDSCLIAPI WdsCliCreateSession(
 76  PWSTR pwszServer,
 77  PWDS_CLI_CRED pCred,
 78  PHANDLE phSession
 79);
 80
 81HRESULT WDSCLIAPI WdsCliFindFirstImage(
 82  HANDLE hSession,
 83  PHANDLE phFindHandle
 84);
 85
 86HRESULT WDSCLIAPI WdsCliFindNextImage(
 87  HANDLE Handle
 88);
 89
 90#define WdsCliFlagEnumFilterVersion 1
 91
 92HRESULT WDSCLIAPI WdsCliGetEnumerationFlags(
 93  HANDLE Handle,
 94  PDWORD pdwFlags
 95);
 96
 97#define PROCESSOR_ARCHITECTURE_AMD64 9
 98#define PROCESSOR_ARCHITECTURE_IA64 6
 99#define PROCESSOR_ARCHITECTURE_INTEL 0
100
101HRESULT WDSCLIAPI WdsCliGetImageArchitecture(
102  HANDLE hIfh,
103  PDWORD pdwValue
104);
105
106HRESULT WDSCLIAPI WdsCliGetImageDescription(
107  HANDLE hIfh,
108  PWSTR *ppwszValue
109);
110
111HRESULT WDSCLIAPI WdsCliGetImageGroup(
112  HANDLE hIfh,
113  PWSTR *ppwszValue
114);
115
116HRESULT WDSCLIAPI WdsCliGetImageHalName(
117  HANDLE hIfh,
118  PWSTR *ppwszValue
119);
120
121HRESULT WDSCLIAPI WdsCliGetImageHandleFromFindHandle(
122  HANDLE FindHandle,
123  PHANDLE phImageHandle
124);
125
126HRESULT WDSCLIAPI WdsCliGetImageHandleFromTransferHandle(
127  HANDLE hTransfer,
128  PHANDLE phImageHandle
129);
130
131HRESULT WDSCLIAPI WdsCliGetImageIndex(
132  HANDLE hIfh,
133  PDWORD pdwValue
134);
135
136HRESULT WDSCLIAPI WdsCliGetImageLanguage(
137  HANDLE hIfh,
138  PWSTR *ppwszValue
139);
140
141HRESULT WDSCLIAPI WdsCliGetImageLanguages(
142  HANDLE hIfh,
143  PTSTR **pppszValues,
144  PDWORD pdwNumValues
145);
146
147HRESULT WDSCLIAPI WdsCliGetImageLastModifiedTime(
148  HANDLE hIfh,
149  PSYSTEMTIME *ppSysTimeValue
150);
151
152HRESULT WINAPI WdsCliGetImageName(
153  HANDLE hIfh,
154  PWSTR *ppwszValue
155);
156
157HRESULT WDSCLIAPI WdsCliGetImageNamespace(
158  HANDLE hIfh,
159  PWSTR *ppwszValue
160);
161
162HRESULT WDSCLIAPI WdsCliGetImagePath(
163  HANDLE hIfh,
164  PWSTR *ppwszValue
165);
166
167HRESULT WDSCLIAPI WdsCliGetImageSize(
168  HANDLE hIfh,
169  PULONGLONG pullValue
170);
171
172HRESULT WDSCLIAPI WdsCliGetImageVersion(
173  HANDLE hIfh,
174  PWSTR *ppwszValue
175);
176
177HRESULT WDSCLIAPI WdsCliGetTransferSize(
178  HANDLE hIfh,
179  PULONGLONG pullValue
180);
181
182HRESULT WDSCLIAPI WdsCliInitializeLog(
183  HANDLE hSession,
184  ULONG ulClientArchitecture,
185  PWSTR pwszClientId,
186  PWSTR pwszClientAddress
187);
188
189#define WDS_LOG_LEVEL_DISABLED 0
190#define WDS_LOG_LEVEL_ERROR 1
191#define WDS_LOG_LEVEL_WARNING 2
192#define WDS_LOG_LEVEL_INFO 3
193
194#define WDS_LOG_TYPE_CLIENT_ERROR 1
195#define WDS_LOG_TYPE_CLIENT_STARTED 2
196#define WDS_LOG_TYPE_CLIENT_FINISHED 3
197#define WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED 4
198#define WDS_LOG_TYPE_CLIENT_APPLY_STARTED 5
199#define WDS_LOG_TYPE_CLIENT_APPLY_FINISHED 6
200#define WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE 7
201#define WDS_LOG_TYPE_CLIENT_MAX_CODE 8
202
203HRESULT __cdecl WdsCliLog(
204  HANDLE hSession,
205  ULONG ulLogLevel,
206  ULONG ulMessageCode,
207  ...
208);
209
210HRESULT WDSCLIAPI WdsCliRegisterTrace(
211  PFN_WdsCliTraceFunction pfn
212);
213
214HRESULT WDSCLIAPI WdsCliTransferFile(
215  PCWSTR pwszServer,
216  PCWSTR pwszNamespace,
217  PCWSTR pwszRemoteFilePath,
218  PCWSTR pwszLocalFilePath,
219  DWORD dwFlags,
220  DWORD dwReserved,
221  PFN_WdsCliCallback pfnWdsCliCallback,
222  PVOID pvUserData,
223  PHANDLE phTransfer
224);
225
226HRESULT WDSCLIAPI WdsCliTransferImage(
227  HANDLE hImage,
228  PWSTR pwszLocalPath,
229  DWORD dwFlags,
230  DWORD dwReserved,
231  PFN_WdsCliCallback pfnWdsCliCallback,
232  PVOID pvUserData,
233  PHANDLE phTransfer
234);
235
236HRESULT WDSCLIAPI WdsCliWaitForTransfer(
237  HANDLE hTransfer
238);
239
240#ifdef __cplusplus
241}
242#endif
243#endif /*(_WIN32_WINNT >= 0x0600)*/
244#endif /*_INC_WDSCLIENTAPI*/