master
  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_DAVCLNT
  7#define _INC_DAVCLNT
  8
  9#ifdef __cplusplus
 10extern "C" {
 11#endif
 12
 13#if (_WIN32_WINNT >= 0x0600)
 14#define DAV_AUTHN_SCHEME_BASIC      0x00000001
 15#define DAV_AUTHN_SCHEME_NTLM       0x00000002
 16#define DAV_AUTHN_SCHEME_PASSPORT   0x00000004
 17#define DAV_AUTHN_SCHEME_DIGEST     0x00000008
 18#define DAV_AUTHN_SCHEME_NEGOTIATE  0x00000010
 19#define DAV_AUTHN_SCHEME_CERT       0x00010000
 20#define DAV_AUTHN_SCHEME_FBA        0x00100000
 21
 22#define OPAQUE_HANDLE DWORD
 23
 24typedef enum AUTHNEXTSTEP {
 25  DefaultBehavior   = 0,
 26  RetryRequest      = 1,
 27  CancelRequest     = 2 
 28} AUTHNEXTSTEP;
 29
 30typedef struct _DAV_CALLBACK_AUTH_BLOB {
 31  PVOID pBuffer;
 32  ULONG ulSize;
 33  ULONG ulType;
 34}DAV_CALLBACK_AUTH_BLOB, *PDAV_CALLBACK_AUTH_BLOB;
 35
 36typedef struct _DAV_CALLBACK_AUTH_UNP {
 37  LPWSTR pszUserName;
 38  ULONG  ulUserNameLength;
 39  LPWSTR pszPassword;
 40  ULONG  ulPasswordLength;
 41}DAV_CALLBACK_AUTH_UNP, *PDAV_CALLBACK_AUTH_UNP;
 42
 43typedef struct _DAV_CALLBACK_CRED {
 44  DAV_CALLBACK_AUTH_BLOB AuthBlob;
 45  DAV_CALLBACK_AUTH_UNP  UNPBlob;
 46  WINBOOL                bAuthBlobValid;
 47  WINBOOL                bSave;
 48}DAV_CALLBACK_CRED, *PDAV_CALLBACK_CRED;
 49
 50typedef DWORD (*PFNDAVAUTHCALLBACK_FREECRED)(
 51  PVOID pbuffer
 52);
 53
 54typedef DWORD (*PFNDAVAUTHCALLBACK)(
 55  LPWSTR lpwzServerName,
 56  LPWSTR lpwzRemoteName,
 57  DWORD dwAuthScheme,
 58  DWORD dwFlags,
 59  PDAV_CALLBACK_CRED pCallbackCred,
 60  AUTHNEXTSTEP *NextStep,
 61  PFNDAVAUTHCALLBACK_FREECRED *pFreeCred
 62);
 63
 64OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
 65  PFNDAVAUTHCALLBACK CallBack,
 66  ULONG Version
 67);
 68
 69VOID WINAPI DavUnregisterAuthCallback(
 70  OPAQUE_HANDLE hCallback
 71);
 72
 73DWORD WINAPI DavAddConnection(
 74  HANDLE *ConnectionHandle,
 75  LPCWSTR RemoteName,
 76  LPCWSTR UserName,
 77  LPCWSTR Password,
 78  PBYTE ClientCert,
 79  DWORD CertSize
 80);
 81
 82DWORD WINAPI DavCancelConnectionsToServer(
 83  LPWSTR lpName,
 84  WINBOOL fForce
 85);
 86
 87DWORD WINAPI DavDeleteConnection(
 88  HANDLE ConnectionHandle
 89);
 90
 91DWORD WINAPI DavFlushFile(
 92  HANDLE hFile
 93);
 94
 95DWORD WINAPI DavGetExtendedError(
 96  HANDLE hFile,
 97  DWORD *ExtError,
 98  LPWSTR ExtErrorString,
 99  DWORD *cChSize
100);
101
102DWORD WINAPI DavGetHTTPFromUNCPath(
103  LPCWSTR UncPath,
104  LPWSTR HttpPath,
105  LPDWORD lpSize
106);
107
108DWORD WINAPI DavGetTheLockOwnerOfTheFile(
109  LPCWSTR FileName,
110  PWSTR LockOwnerName,
111  PULONG LockOwnerNameLengthInBytes
112);
113
114DWORD WINAPI DavGetUNCFromHTTPPath(
115  LPCWSTR HttpPath,
116  LPWSTR UncPath,
117  LPDWORD lpSize
118);
119
120DWORD WINAPI DavInvalidateCache(
121  LPWSTR URLName
122);
123
124OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
125  PFNDAVAUTHCALLBACK CallBack,
126  ULONG Version
127);
128
129VOID WINAPI DavUnregisterAuthCallback(
130  OPAQUE_HANDLE hCallback
131);
132
133#endif /*(_WIN32_WINNT >= 0x0600)*/
134
135#ifdef __cplusplus
136}
137#endif
138
139#endif /*_INC_DAVCLNT*/