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 use shared::basetsd::UINT64; 7 use shared::minwindef::DWORD; 8 use um::bits::{IBackgroundCopyFile, IBackgroundCopyFileVtbl}; 9 use um::bits1_5::{IBackgroundCopyJob2, IBackgroundCopyJob2Vtbl}; 10 use um::winnt::{HRESULT, LPCWSTR}; 11 pub const BG_LENGTH_TO_EOF: UINT64 = -1i64 as u64; 12 STRUCT!{struct BG_FILE_RANGE { 13 InitialOffset: UINT64, 14 Length: UINT64, 15 }} 16 pub const BG_COPY_FILE_OWNER: DWORD = 1; 17 pub const BG_COPY_FILE_GROUP: DWORD = 2; 18 pub const BG_COPY_FILE_DACL: DWORD = 4; 19 pub const BG_COPY_FILE_SACL: DWORD = 8; 20 pub const BG_COPY_FILE_ALL: DWORD = 15; 21 RIDL!{#[uuid(0x443c8934, 0x90ff, 0x48ed, 0xbc, 0xde, 0x26, 0xf5, 0xc7, 0x45, 0x00, 0x42)] 22 interface IBackgroundCopyJob3(IBackgroundCopyJob3Vtbl): 23 IBackgroundCopyJob2(IBackgroundCopyJob2Vtbl) { 24 fn ReplaceRemotePrefix( 25 OldPrefix: LPCWSTR, 26 NewPrefix: LPCWSTR, 27 ) -> HRESULT, 28 fn AddFileWithRanges( 29 RemoteUrl: LPCWSTR, 30 LocalName: LPCWSTR, 31 RangeCount: DWORD, 32 Ranges: *mut BG_FILE_RANGE, 33 ) -> HRESULT, 34 fn SetFileACLFlags( 35 Flags: DWORD, 36 ) -> HRESULT, 37 fn GetFileACLFlags( 38 Flags: *mut DWORD, 39 ) -> HRESULT, 40 }} 41 RIDL!{#[uuid(0x83e81b93, 0x0873, 0x474d, 0x8a, 0x8c, 0xf2, 0x01, 0x8b, 0x1a, 0x93, 0x9c)] 42 interface IBackgroundCopyFile2(IBackgroundCopyFile2Vtbl): 43 IBackgroundCopyFile(IBackgroundCopyFileVtbl) { 44 fn GetFileRanges( 45 RangeCount: *mut DWORD, 46 Ranges: *mut *mut BG_FILE_RANGE, 47 ) -> HRESULT, 48 fn SetRemoteName( 49 Val: LPCWSTR, 50 ) -> HRESULT, 51 }} 52