Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use shared::basetsd::UINT64;
use shared::minwindef::DWORD;
use um::bits::{IBackgroundCopyFile, IBackgroundCopyFileVtbl};
use um::bits1_5::{IBackgroundCopyJob2, IBackgroundCopyJob2Vtbl};
use um::winnt::{HRESULT, LPCWSTR};
pub const BG_LENGTH_TO_EOF: UINT64 = -1i64 as u64;
STRUCT!{struct BG_FILE_RANGE {
InitialOffset: UINT64,
Length: UINT64,
}}
pub const BG_COPY_FILE_OWNER: DWORD = 1;
pub const BG_COPY_FILE_GROUP: DWORD = 2;
pub const BG_COPY_FILE_DACL: DWORD = 4;
pub const BG_COPY_FILE_SACL: DWORD = 8;
pub const BG_COPY_FILE_ALL: DWORD = 15;
RIDL!{#[uuid(0x443c8934, 0x90ff, 0x48ed, 0xbc, 0xde, 0x26, 0xf5, 0xc7, 0x45, 0x00, 0x42)]
interface IBackgroundCopyJob3(IBackgroundCopyJob3Vtbl):
IBackgroundCopyJob2(IBackgroundCopyJob2Vtbl) {
fn ReplaceRemotePrefix(
OldPrefix: LPCWSTR,
NewPrefix: LPCWSTR,
) -> HRESULT,
fn AddFileWithRanges(
RemoteUrl: LPCWSTR,
LocalName: LPCWSTR,
RangeCount: DWORD,
Ranges: *mut BG_FILE_RANGE,
) -> HRESULT,
fn SetFileACLFlags(
Flags: DWORD,
) -> HRESULT,
fn GetFileACLFlags(
Flags: *mut DWORD,
) -> HRESULT,
}}
RIDL!{#[uuid(0x83e81b93, 0x0873, 0x474d, 0x8a, 0x8c, 0xf2, 0x01, 0x8b, 0x1a, 0x93, 0x9c)]
interface IBackgroundCopyFile2(IBackgroundCopyFile2Vtbl):
IBackgroundCopyFile(IBackgroundCopyFileVtbl) {
fn GetFileRanges(
RangeCount: *mut DWORD,
Ranges: *mut *mut BG_FILE_RANGE,
) -> HRESULT,
fn SetRemoteName(
Val: LPCWSTR,
) -> HRESULT,
}}