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