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