Home | History | Annotate | Download | only in include
      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
     11 extern "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 
     25 typedef VOID (CALLBACK *PFN_WdsCliCallback)(
     26   DWORD dwMessageId,
     27   WPARAM wParam,
     28   LPARAM lParam,
     29   PVOID pvUserData
     30 );
     31 
     32 typedef VOID (WDSCLIAPI *PFN_WdsCliTraceFunction)(
     33   LPCWSTR pwszFormat,
     34   va_list Params
     35 );
     36 
     37 
     38 typedef 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 
     45 typedef 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 
     56 typedef struct tagWDS_CLI_CRED {
     57   PCWSTR  pwszUserName;
     58   PCWSTR pwszDomain;
     59   PCWSTR pwszPassword;
     60 } WDS_CLI_CRED, *PWDS_CLI_CRED, *LPWDS_CLI_CRED;
     61 
     62 HRESULT WDSCLIAPI WdsCliAuthorizeSession(
     63   HANDLE hSession,
     64   PWDS_CLI_CRED pCred
     65 );
     66 
     67 HRESULT WDSCLIAPI WdsCliCancelTransfer(
     68   HANDLE hTransfer
     69 );
     70 
     71 HRESULT WDSCLIAPI WdsCliClose(
     72   HANDLE Handle
     73 );
     74 
     75 HRESULT WDSCLIAPI WdsCliCreateSession(
     76   PWSTR pwszServer,
     77   PWDS_CLI_CRED pCred,
     78   PHANDLE phSession
     79 );
     80 
     81 HRESULT WDSCLIAPI WdsCliFindFirstImage(
     82   HANDLE hSession,
     83   PHANDLE phFindHandle
     84 );
     85 
     86 HRESULT WDSCLIAPI WdsCliFindNextImage(
     87   HANDLE Handle
     88 );
     89 
     90 #define WdsCliFlagEnumFilterVersion 1
     91 
     92 HRESULT 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 
    101 HRESULT WDSCLIAPI WdsCliGetImageArchitecture(
    102   HANDLE hIfh,
    103   PDWORD pdwValue
    104 );
    105 
    106 HRESULT WDSCLIAPI WdsCliGetImageDescription(
    107   HANDLE hIfh,
    108   PWSTR *ppwszValue
    109 );
    110 
    111 HRESULT WDSCLIAPI WdsCliGetImageGroup(
    112   HANDLE hIfh,
    113   PWSTR *ppwszValue
    114 );
    115 
    116 HRESULT WDSCLIAPI WdsCliGetImageHalName(
    117   HANDLE hIfh,
    118   PWSTR *ppwszValue
    119 );
    120 
    121 HRESULT WDSCLIAPI WdsCliGetImageHandleFromFindHandle(
    122   HANDLE FindHandle,
    123   PHANDLE phImageHandle
    124 );
    125 
    126 HRESULT WDSCLIAPI WdsCliGetImageHandleFromTransferHandle(
    127   HANDLE hTransfer,
    128   PHANDLE phImageHandle
    129 );
    130 
    131 HRESULT WDSCLIAPI WdsCliGetImageIndex(
    132   HANDLE hIfh,
    133   PDWORD pdwValue
    134 );
    135 
    136 HRESULT WDSCLIAPI WdsCliGetImageLanguage(
    137   HANDLE hIfh,
    138   PWSTR *ppwszValue
    139 );
    140 
    141 HRESULT WDSCLIAPI WdsCliGetImageLanguages(
    142   HANDLE hIfh,
    143   PTSTR **pppszValues,
    144   PDWORD pdwNumValues
    145 );
    146 
    147 HRESULT WDSCLIAPI WdsCliGetImageLastModifiedTime(
    148   HANDLE hIfh,
    149   PSYSTEMTIME *ppSysTimeValue
    150 );
    151 
    152 HRESULT WINAPI WdsCliGetImageName(
    153   HANDLE hIfh,
    154   PWSTR *ppwszValue
    155 );
    156 
    157 HRESULT WDSCLIAPI WdsCliGetImageNamespace(
    158   HANDLE hIfh,
    159   PWSTR *ppwszValue
    160 );
    161 
    162 HRESULT WDSCLIAPI WdsCliGetImagePath(
    163   HANDLE hIfh,
    164   PWSTR *ppwszValue
    165 );
    166 
    167 HRESULT WDSCLIAPI WdsCliGetImageSize(
    168   HANDLE hIfh,
    169   PULONGLONG pullValue
    170 );
    171 
    172 HRESULT WDSCLIAPI WdsCliGetImageVersion(
    173   HANDLE hIfh,
    174   PWSTR *ppwszValue
    175 );
    176 
    177 HRESULT WDSCLIAPI WdsCliGetTransferSize(
    178   HANDLE hIfh,
    179   PULONGLONG pullValue
    180 );
    181 
    182 HRESULT 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 
    203 HRESULT __cdecl WdsCliLog(
    204   HANDLE hSession,
    205   ULONG ulLogLevel,
    206   ULONG ulMessageCode,
    207   ...
    208 );
    209 
    210 HRESULT WDSCLIAPI WdsCliRegisterTrace(
    211   PFN_WdsCliTraceFunction pfn
    212 );
    213 
    214 HRESULT 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 
    226 HRESULT 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 
    236 HRESULT WDSCLIAPI WdsCliWaitForTransfer(
    237   HANDLE hTransfer
    238 );
    239 
    240 #ifdef __cplusplus
    241 }
    242 #endif
    243 #endif /*(_WIN32_WINNT >= 0x0600)*/
    244 #endif /*_INC_WDSCLIENTAPI*/
    245