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
10 extern "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 
24 typedef enum AUTHNEXTSTEP {
25   DefaultBehavior   = 0,
26   RetryRequest      = 1,
27   CancelRequest     = 2
28 } AUTHNEXTSTEP;
29 
30 typedef struct _DAV_CALLBACK_AUTH_BLOB {
31   PVOID pBuffer;
32   ULONG ulSize;
33   ULONG ulType;
34 }DAV_CALLBACK_AUTH_BLOB, *PDAV_CALLBACK_AUTH_BLOB;
35 
36 typedef 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 
43 typedef 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 
50 typedef DWORD (*PFNDAVAUTHCALLBACK_FREECRED)(
51   PVOID pbuffer
52 );
53 
54 typedef 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 
64 OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
65   PFNDAVAUTHCALLBACK CallBack,
66   ULONG Version
67 );
68 
69 VOID WINAPI DavUnregisterAuthCallback(
70   OPAQUE_HANDLE hCallback
71 );
72 
73 DWORD WINAPI DavAddConnection(
74   HANDLE *ConnectionHandle,
75   LPCWSTR RemoteName,
76   LPCWSTR UserName,
77   LPCWSTR Password,
78   PBYTE ClientCert,
79   DWORD CertSize
80 );
81 
82 DWORD WINAPI DavCancelConnectionsToServer(
83   LPWSTR lpName,
84   WINBOOL fForce
85 );
86 
87 DWORD WINAPI DavDeleteConnection(
88   HANDLE ConnectionHandle
89 );
90 
91 DWORD WINAPI DavFlushFile(
92   HANDLE hFile
93 );
94 
95 DWORD WINAPI DavGetExtendedError(
96   HANDLE hFile,
97   DWORD *ExtError,
98   LPWSTR ExtErrorString,
99   DWORD *cChSize
100 );
101 
102 DWORD WINAPI DavGetHTTPFromUNCPath(
103   LPCWSTR UncPath,
104   LPWSTR HttpPath,
105   LPDWORD lpSize
106 );
107 
108 DWORD WINAPI DavGetTheLockOwnerOfTheFile(
109   LPCWSTR FileName,
110   PWSTR LockOwnerName,
111   PULONG LockOwnerNameLengthInBytes
112 );
113 
114 DWORD WINAPI DavGetUNCFromHTTPPath(
115   LPCWSTR HttpPath,
116   LPWSTR UncPath,
117   LPDWORD lpSize
118 );
119 
120 DWORD WINAPI DavInvalidateCache(
121   LPWSTR URLName
122 );
123 
124 OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
125   PFNDAVAUTHCALLBACK CallBack,
126   ULONG Version
127 );
128 
129 VOID 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