| /** |
| * 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 |
| #include <wdstpdi.h> |
| #if (_WIN32_WINNT >= 0x0600) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef WDSTCIAPI |
| #define WDSTCIAPI WINAPI |
| #endif |
| |
| /* Wdstptc.dll is missing an implib because Vista clients don't have the dll to generate it from */ |
| |
| typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)( |
| HANDLE hSessionKey, |
| PVOID pCallerData, |
| PVOID pMetadata, |
| ULONG ulSize, |
| PULARGE_INTEGER pContentOffset |
| ); |
| |
| typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)( |
| HANDLE hSessionKey, |
| PVOID pCallerData, |
| PVOID pMetadata, |
| ULONG ulSize |
| ); |
| |
| typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)( |
| HANDLE hSessionKey, |
| PVOID pCallerData, |
| DWORD dwError |
| ); |
| |
| typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)( |
| HANDLE hSessionKey, |
| PVOID pCallerData, |
| PULARGE_INTEGER FileSize |
| ); |
| |
| typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)( |
| HANDLE hSessionKey, |
| PVOID pCallerData, |
| PTRANSPORTCLIENT_SESSION_INFO Info |
| ); |
| |
| typedef enum _TRANSPORTCLIENT_CALLBACK_ID { |
| WDS_TRANSPORTCLIENT_SESSION_START = 0, |
| WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS = 1, |
| WDS_TRANSPORTCLIENT_SESSION_COMPLETE = 2, |
| WDS_TRANSPORTCLIENT_RECEIVE_METADATA = 3, |
| WDS_TRANSPORTCLIENT_SESSION_STARTEX = 4, |
| WDS_TRANSPORTCLIENT_MAX_CALLBACKS = 5 |
| } TRANSPORTCLIENT_CALLBACK_ID,*PTRANSPORTCLIENT_CALLBACK_ID; |
| |
| typedef struct _TRANSPORTCLIENT_SESSION_INFO { |
| ULONG ulStructureLength; |
| ULARGE_INTEGER ullFileSize; |
| ULONG ulBlockSize; |
| } TRANSPORTCLIENT_SESSION_INFO, *PTRANSPORTCLIENT_SESSION_INFO; |
| |
| #define WDS_TRANSPORT_CLIENT_CURRENT_API_VERSION 1 |
| |
| #define WDS_TRANSPORTCLIENT_AUTH 1 |
| #define WDS_TRANSPORTCLIENT_NO_AUTH 2 |
| |
| #define WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST 1 |
| |
| typedef struct _WDS_TRANSPORTCLIENT_REQUEST { |
| ULONG ulLength; |
| ULONG ulApiVersion; |
| ULONG ulAuthLevel; |
| LPCWSTR pwszServer; |
| LPCWSTR pwszNamespace; |
| LPCWSTR pwszObjectName; |
| ULONG ulCacheSize; |
| ULONG ulProtocol; |
| PVOID pvProtocolData; |
| ULONG ulProtocolDataLength; |
| } WDS_TRANSPORTCLIENT_REQUEST, *PWDS_TRANSPORTCLIENT_REQUEST; |
| |
| DWORD WDSTCIAPI WdsTransportClientStartSession( |
| HANDLE hSessionKey |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientAddRefBuffer( |
| PVOID pvBuffer |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientCancelSession( |
| HANDLE hSessionKey |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientCloseSession( |
| HANDLE hSessionKey |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientCompleteReceive( |
| HANDLE hSessionKey, |
| HANDLE ulSize, |
| PULARGE_INTEGER pullOffset |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientInitialize(void); |
| |
| DWORD WDSTCIAPI WdsTransportClientInitializeSession( |
| PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest, |
| PVOID pCallerData, |
| PHANDLE hSessionKey |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientQueryStatus( |
| HANDLE hSessionKey, |
| PULONG puStatus, |
| PULONG puErrorCode |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientRegisterCallback( |
| HANDLE hSessionKey, |
| TRANSPORTCLIENT_CALLBACK_ID CallbackId, |
| PVOID pfnCallback |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientReleaseBuffer( |
| PVOID pvBuffer |
| ); |
| |
| DWORD WDSTCIAPI WdsTransportClientShutdown(void); |
| |
| DWORD WDSTCIAPI WdsTransportClientWaitForCompletion( |
| HANDLE hSessionKey, |
| ULONG uTimeout |
| ); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| #endif /*_INC_WDSCLIENTAPI*/ |