1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms 6 //! This module defines the DAV specific functions that are exposed to the user 7 use shared::minwindef::{BOOL, DWORD, LPDWORD, PBYTE, PULONG, ULONG}; 8 use um::winnt::{HANDLE, LPCWSTR, LPWSTR, PVOID, PWSTR}; 9 pub type OPAQUE_HANDLE = DWORD; 10 STRUCT!{struct DAV_CALLBACK_AUTH_BLOB { 11 pBuffer: PVOID, 12 ulSize: ULONG, 13 ulType: ULONG, 14 }} 15 pub type PDAV_CALLBACK_AUTH_BLOB = *mut DAV_CALLBACK_AUTH_BLOB; 16 STRUCT!{struct DAV_CALLBACK_AUTH_UNP { 17 pszUserName: LPWSTR, 18 ulUserNameLength: ULONG, 19 pszPassword: LPWSTR, 20 ulPasswordLength: ULONG, 21 }} 22 pub type PDAV_CALLBACK_AUTH_UNP = *mut DAV_CALLBACK_AUTH_UNP; 23 STRUCT!{struct DAV_CALLBACK_CRED { 24 AuthBlob: DAV_CALLBACK_AUTH_BLOB, 25 UNPBlob: DAV_CALLBACK_AUTH_UNP, 26 bAuthBlobValid: BOOL, 27 bSave: BOOL, 28 }} 29 pub type PDAV_CALLBACK_CRED = *mut DAV_CALLBACK_CRED; 30 pub const DAV_AUTHN_SCHEME_BASIC: DWORD = 0x00000001; 31 pub const DAV_AUTHN_SCHEME_NTLM: DWORD = 0x00000002; 32 pub const DAV_AUTHN_SCHEME_PASSPORT: DWORD = 0x00000004; 33 pub const DAV_AUTHN_SCHEME_DIGEST: DWORD = 0x00000008; 34 pub const DAV_AUTHN_SCHEME_NEGOTIATE: DWORD = 0x00000010; 35 pub const DAV_AUTHN_SCHEME_CERT: DWORD = 0x00010000; 36 pub const DAV_AUTHN_SCHEME_FBA: DWORD = 0x00100000; 37 ENUM!{enum AUTHNEXTSTEP { 38 DefaultBehavior, 39 RetryRequest, 40 CancelRequest, 41 }} 42 FN!{stdcall PFNDAVAUTHCALLBACK_FREECRED( 43 pbuffer: PVOID, 44 ) -> DWORD} 45 FN!{stdcall PFNDAVAUTHCALLBACK( 46 lpwzServerName: LPWSTR, 47 lpwzRemoteName: LPWSTR, 48 dwAuthScheme: DWORD, 49 dwFlags: DWORD, 50 pCallbackCred: PDAV_CALLBACK_CRED, 51 NextStep: *mut AUTHNEXTSTEP, 52 pFreeCred: *mut PFNDAVAUTHCALLBACK_FREECRED, 53 ) -> DWORD} 54 extern "system" { DavAddConnection( ConnectionHandle: *mut HANDLE, RemoteName: LPCWSTR, UserName: LPCWSTR, Password: LPCWSTR, ClientCert: PBYTE, CertSize: DWORD, ) -> DWORD55 pub fn DavAddConnection( 56 ConnectionHandle: *mut HANDLE, 57 RemoteName: LPCWSTR, 58 UserName: LPCWSTR, 59 Password: LPCWSTR, 60 ClientCert: PBYTE, 61 CertSize: DWORD, 62 ) -> DWORD; DavDeleteConnection( ConnectionHandle: HANDLE, ) -> DWORD63 pub fn DavDeleteConnection( 64 ConnectionHandle: HANDLE, 65 ) -> DWORD; DavGetUNCFromHTTPPath( HttpPath: LPCWSTR, UncPath: LPWSTR, lpSize: LPDWORD, ) -> DWORD66 pub fn DavGetUNCFromHTTPPath( 67 HttpPath: LPCWSTR, 68 UncPath: LPWSTR, 69 lpSize: LPDWORD, 70 ) -> DWORD; DavGetHTTPFromUNCPath( UncPath: LPCWSTR, HttpPath: LPWSTR, lpSize: LPDWORD, ) -> DWORD71 pub fn DavGetHTTPFromUNCPath( 72 UncPath: LPCWSTR, 73 HttpPath: LPWSTR, 74 lpSize: LPDWORD, 75 ) -> DWORD; DavGetTheLockOwnerOfTheFile( FileName: LPCWSTR, LockOwnerName: PWSTR, LockOwnerNameLengthInBytes: PULONG, ) -> DWORD76 pub fn DavGetTheLockOwnerOfTheFile( 77 FileName: LPCWSTR, 78 LockOwnerName: PWSTR, 79 LockOwnerNameLengthInBytes: PULONG, 80 ) -> DWORD; DavGetExtendedError( hFile: HANDLE, ExtError: *mut DWORD, ExtErrorString: LPWSTR, cChSize: *mut DWORD, ) -> DWORD81 pub fn DavGetExtendedError( 82 hFile: HANDLE, 83 ExtError: *mut DWORD, 84 ExtErrorString: LPWSTR, 85 cChSize: *mut DWORD, 86 ) -> DWORD; DavFlushFile( hFile: HANDLE, ) -> DWORD87 pub fn DavFlushFile( 88 hFile: HANDLE, 89 ) -> DWORD; DavInvalidateCache( URLName: LPWSTR, ) -> DWORD90 pub fn DavInvalidateCache( 91 URLName: LPWSTR, 92 ) -> DWORD; DavCancelConnectionsToServer( URLName: LPWSTR, fForce: BOOL, ) -> DWORD93 pub fn DavCancelConnectionsToServer( 94 URLName: LPWSTR, 95 fForce: BOOL, 96 ) -> DWORD; DavRegisterAuthCallback( CallBack: PFNDAVAUTHCALLBACK, Version: ULONG, ) -> OPAQUE_HANDLE97 pub fn DavRegisterAuthCallback( 98 CallBack: PFNDAVAUTHCALLBACK, 99 Version: ULONG, 100 ) -> OPAQUE_HANDLE; DavUnregisterAuthCallback( hCallback: OPAQUE_HANDLE, )101 pub fn DavUnregisterAuthCallback( 102 hCallback: OPAQUE_HANDLE, 103 ); 104 } 105