| 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 |
#include <wdstpdi.h> |
| 9 |
#if (_WIN32_WINNT >= 0x0600) |
| 10 |
|
| 11 |
#ifdef __cplusplus |
| 12 |
extern "C" { |
| 13 |
#endif |
| 14 |
|
| 15 |
#ifndef WDSTCIAPI |
| 16 |
#define WDSTCIAPI WINAPI |
| 17 |
#endif |
| 18 |
|
| 19 |
/* Wdstptc.dll is missing an implib because Vista clients don't have the dll to generate it from */ |
| 20 |
|
| 21 |
typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)( |
| 22 |
HANDLE hSessionKey, |
| 23 |
PVOID pCallerData, |
| 24 |
PVOID pMetadata, |
| 25 |
ULONG ulSize, |
| 26 |
PULARGE_INTEGER pContentOffset |
| 27 |
); |
| 28 |
|
| 29 |
typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)( |
| 30 |
HANDLE hSessionKey, |
| 31 |
PVOID pCallerData, |
| 32 |
PVOID pMetadata, |
| 33 |
ULONG ulSize |
| 34 |
); |
| 35 |
|
| 36 |
typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)( |
| 37 |
HANDLE hSessionKey, |
| 38 |
PVOID pCallerData, |
| 39 |
DWORD dwError |
| 40 |
); |
| 41 |
|
| 42 |
typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)( |
| 43 |
HANDLE hSessionKey, |
| 44 |
PVOID pCallerData, |
| 45 |
PULARGE_INTEGER FileSize |
| 46 |
); |
| 47 |
|
| 48 |
typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)( |
| 49 |
HANDLE hSessionKey, |
| 50 |
PVOID pCallerData, |
| 51 |
PTRANSPORTCLIENT_SESSION_INFO Info |
| 52 |
); |
| 53 |
|
| 54 |
typedef enum _TRANSPORTCLIENT_CALLBACK_ID { |
| 55 |
WDS_TRANSPORTCLIENT_SESSION_START = 0, |
| 56 |
WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS = 1, |
| 57 |
WDS_TRANSPORTCLIENT_SESSION_COMPLETE = 2, |
| 58 |
WDS_TRANSPORTCLIENT_RECEIVE_METADATA = 3, |
| 59 |
WDS_TRANSPORTCLIENT_SESSION_STARTEX = 4, |
| 60 |
WDS_TRANSPORTCLIENT_MAX_CALLBACKS = 5 |
| 61 |
} TRANSPORTCLIENT_CALLBACK_ID,*PTRANSPORTCLIENT_CALLBACK_ID; |
| 62 |
|
| 63 |
typedef struct _TRANSPORTCLIENT_SESSION_INFO { |
| 64 |
ULONG ulStructureLength; |
| 65 |
ULARGE_INTEGER ullFileSize; |
| 66 |
ULONG ulBlockSize; |
| 67 |
} TRANSPORTCLIENT_SESSION_INFO, *PTRANSPORTCLIENT_SESSION_INFO; |
| 68 |
|
| 69 |
#define WDS_TRANSPORT_CLIENT_CURRENT_API_VERSION 1 |
| 70 |
|
| 71 |
#define WDS_TRANSPORTCLIENT_AUTH 1 |
| 72 |
#define WDS_TRANSPORTCLIENT_NO_AUTH 2 |
| 73 |
|
| 74 |
#define WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST 1 |
| 75 |
|
| 76 |
typedef struct _WDS_TRANSPORTCLIENT_REQUEST { |
| 77 |
ULONG ulLength; |
| 78 |
ULONG ulApiVersion; |
| 79 |
ULONG ulAuthLevel; |
| 80 |
LPCWSTR pwszServer; |
| 81 |
LPCWSTR pwszNamespace; |
| 82 |
LPCWSTR pwszObjectName; |
| 83 |
ULONG ulCacheSize; |
| 84 |
ULONG ulProtocol; |
| 85 |
PVOID pvProtocolData; |
| 86 |
ULONG ulProtocolDataLength; |
| 87 |
} WDS_TRANSPORTCLIENT_REQUEST, *PWDS_TRANSPORTCLIENT_REQUEST; |
| 88 |
|
| 89 |
DWORD WDSTCIAPI WdsTransportClientStartSession( |
| 90 |
HANDLE hSessionKey |
| 91 |
); |
| 92 |
|
| 93 |
DWORD WDSTCIAPI WdsTransportClientAddRefBuffer( |
| 94 |
PVOID pvBuffer |
| 95 |
); |
| 96 |
|
| 97 |
DWORD WDSTCIAPI WdsTransportClientCancelSession( |
| 98 |
HANDLE hSessionKey |
| 99 |
); |
| 100 |
|
| 101 |
DWORD WDSTCIAPI WdsTransportClientCloseSession( |
| 102 |
HANDLE hSessionKey |
| 103 |
); |
| 104 |
|
| 105 |
DWORD WDSTCIAPI WdsTransportClientCompleteReceive( |
| 106 |
HANDLE hSessionKey, |
| 107 |
HANDLE ulSize, |
| 108 |
PULARGE_INTEGER pullOffset |
| 109 |
); |
| 110 |
|
| 111 |
DWORD WDSTCIAPI WdsTransportClientInitialize(void); |
| 112 |
|
| 113 |
DWORD WDSTCIAPI WdsTransportClientInitializeSession( |
| 114 |
PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest, |
| 115 |
PVOID pCallerData, |
| 116 |
PHANDLE hSessionKey |
| 117 |
); |
| 118 |
|
| 119 |
DWORD WDSTCIAPI WdsTransportClientQueryStatus( |
| 120 |
HANDLE hSessionKey, |
| 121 |
PULONG puStatus, |
| 122 |
PULONG puErrorCode |
| 123 |
); |
| 124 |
|
| 125 |
DWORD WDSTCIAPI WdsTransportClientRegisterCallback( |
| 126 |
HANDLE hSessionKey, |
| 127 |
TRANSPORTCLIENT_CALLBACK_ID CallbackId, |
| 128 |
PVOID pfnCallback |
| 129 |
); |
| 130 |
|
| 131 |
DWORD WDSTCIAPI WdsTransportClientReleaseBuffer( |
| 132 |
PVOID pvBuffer |
| 133 |
); |
| 134 |
|
| 135 |
DWORD WDSTCIAPI WdsTransportClientShutdown(void); |
| 136 |
|
| 137 |
DWORD WDSTCIAPI WdsTransportClientWaitForCompletion( |
| 138 |
HANDLE hSessionKey, |
| 139 |
ULONG uTimeout |
| 140 |
); |
| 141 |
|
| 142 |
#ifdef __cplusplus |
| 143 |
} |
| 144 |
#endif |
| 145 |
#endif /*(_WIN32_WINNT >= 0x0600)*/ |
| 146 |
#endif /*_INC_WDSCLIENTAPI*/ |