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