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*/ 245