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, IBackgroundCopyJob}; 9 use um::bits2_0::BG_FILE_RANGE; 10 use um::bits3_0::{IBackgroundCopyCallback2, IBackgroundCopyCallback2Vtbl}; 11 use um::bits5_0::{IBackgroundCopyFile5, IBackgroundCopyFile5Vtbl}; 12 use um::winnt::HRESULT; 13 RIDL!{#[uuid(0x98c97bd2, 0xe32b, 0x4ad8, 0xa5, 0x28, 0x95, 0xfd, 0x8b, 0x16, 0xbd, 0x42)] 14 interface IBackgroundCopyCallback3(IBackgroundCopyCallback3Vtbl): 15 IBackgroundCopyCallback2(IBackgroundCopyCallback2Vtbl) { 16 fn FileRangesTransferred( 17 job: *mut IBackgroundCopyJob, 18 file: *mut IBackgroundCopyFile, 19 rangeCount: DWORD, 20 ranges: *const BG_FILE_RANGE, 21 ) -> HRESULT, 22 }} 23 RIDL!{#[uuid(0xcf6784f7, 0xd677, 0x49fd, 0x93, 0x68, 0xcb, 0x47, 0xae, 0xe9, 0xd1, 0xad)] 24 interface IBackgroundCopyFile6(IBackgroundCopyFile6Vtbl): 25 IBackgroundCopyFile5(IBackgroundCopyFile5Vtbl) { 26 fn UpdateDownloadPosition( 27 offset: UINT64, 28 ) -> HRESULT, 29 fn RequestFileRanges( 30 rangeCount: DWORD, 31 ranges: *const BG_FILE_RANGE, 32 ) -> HRESULT, 33 fn GetFilledFileRanges( 34 rangeCount: *mut DWORD, 35 ranges: *mut *mut BG_FILE_RANGE, 36 ) -> HRESULT, 37 }} 38