// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// 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::guiddef::GUID;
use shared::minwindef::{BOOL, DWORD};
use um::bits1_5::BG_AUTH_TARGET;
use um::bits3_0::{IBackgroundCopyJob4, IBackgroundCopyJob4Vtbl};
use um::bits4_0::{IBackgroundCopyFile4, IBackgroundCopyFile4Vtbl};
use um::winnt::{HRESULT, LPWSTR};
pub const BITS_COST_STATE_UNRESTRICTED: DWORD =
0 x1;
pub const BITS_COST_STATE_CAPPED_USAGE_UNKNOWN: DWORD =
0 x2;
pub const BITS_COST_STATE_BELOW_CAP: DWORD =
0 x4;
pub const BITS_COST_STATE_NEAR_CAP: DWORD =
0 x8;
pub const BITS_COST_STATE_OVERCAP_CHARGED: DWORD =
0 x10;
pub const BITS_COST_STATE_OVERCAP_THROTTLED: DWORD =
0 x20;
pub const BITS_COST_STATE_USAGE_BASED: DWORD =
0 x40;
pub const BITS_COST_STATE_ROAMING: DWORD =
0 x80;
pub const BITS_COST_OPTION_IGNORE_CONGESTION: DWORD =
0 x80000000;
pub const BITS_COST_STATE_RESERVED: DWORD =
0 x40000000;
pub const BITS_COST_STATE_TRANSFER_NOT_ROAMING: DWORD = BITS_COST_OPTION_IGNORE_CONGE
STION
| BITS_COST_STATE_USAGE_BASED | BITS_COST_STATE_OVERCAP_THROTTLED
| BITS_COST_STATE_OVERCAP_CHARGED | BITS_COST_STATE_NEAR_CAP | BITS_COST_STATE_BELOW_CAP
| BITS_COST_STATE_CAPPED_USAGE_UNKNOWN | BITS_COST_STATE_UNRESTRICTED;
pub const BITS_COST_STATE_TRANSFER_NO_SURCHARGE: DWORD = BITS_COST_OPTION_IGNORE_CONGESTION
| BITS_COST_STATE_USAGE_BASED | BITS_COST_STATE_OVERCAP_THROTTLED | BITS_COST_STATE_NEAR_CAP
| BITS_COST_STATE_BELOW_CAP | BITS_COST_STATE_CAPPED_USAGE_UNKNOWN
| BITS_COST_STATE_UNRESTRICTED;
pub const BITS_COST_STATE_TRANSFER_STANDARD: DWORD = BITS_COST_OPTION_IGNORE_CONGESTION
| BITS_COST_STATE_USAGE_BASED | BITS_COST_STATE_OVERCAP_THROTTLED | BITS_COST_STATE_BELOW_CAP
| BITS_COST_STATE_CAPPED_USAGE_UNKNOWN | BITS_COST_STATE_UNRESTRICTED;
pub const BITS_COST_STATE_TRANSFER_UNRESTRICTED: DWORD = BITS_COST_OPTION_IGNORE_CONGESTION
| BITS_COST_STATE_OVERCAP_THROTTLED | BITS_COST_STATE_UNRESTRICTED;
pub const BITS_COST_STATE_TRANSFER_ALWAYS: DWORD = BITS_COST_OPTION_IGNORE_CONGESTION
| BITS_COST_STATE_ROAMING | BITS_COST_STATE_USAGE_BASED | BITS_COST_STATE_OVERCAP_THROTTLED
| BITS_COST_STATE_OVERCAP_CHARGED | BITS_COST_STATE_NEAR_CAP | BITS_COST_STATE_BELOW_CAP
| BITS_COST_STATE_CAPPED_USAGE_UNKNOWN | BITS_COST_STATE_UNRESTRICTED;
ENUM !{enum BITS_JOB_TRANSFER_POLICY {
BITS_JOB_TRANSFER_POLICY_ALWAYS = 0 x800000ff,
BITS_JOB_TRANSFER_POLICY_NOT_ROAMING = 0 x8000007f,
BITS_JOB_TRANSFER_POLICY_NO_SURCHARGE = 0 x8000006f,
BITS_JOB_TRANSFER_POLICY_STANDARD = 0 x80000067,
BITS_JOB_TRANSFER_POLICY_UNRESTRICTED = 0 x80000021,
}}
ENUM !{enum BITS_JOB_PROPERTY_ID {
BITS_JOB_PROPERTY_ID_COST_FLAGS = 1 ,
BITS_JOB_PROPERTY_NOTIFICATION_CLSID = 2 ,
BITS_JOB_PROPERTY_DYNAMIC_CONTENT = 3 ,
BITS_JOB_PROPERTY_HIGH_PERFORMANCE = 4 ,
BITS_JOB_PROPERTY_MAX_DOWNLOAD_SIZE = 5 ,
BITS_JOB_PROPERTY_USE_STORED_CREDENTIALS = 7 ,
BITS_JOB_PROPERTY_MINIMUM_NOTIFICATION_INTERVAL_MS = 9 ,
BITS_JOB_PROPERTY_ON_DEMAND_MODE = 10 ,
}}
UNION!{union BITS_JOB_PROPERTY_VALUE {
[u64; 2 ],
Dword Dword_mut: DWORD,
ClsID ClsID_mut: GUID,
Enable Enable_mut: BOOL,
Uint64 Uint64_mut: UINT64,
Target Target_mut: BG_AUTH_TARGET,
}}
ENUM !{enum BITS_FILE_PROPERTY_ID {
BITS_FILE_PROPERTY_ID_HTTP_RESPONSE_HEADERS = 1 ,
}}
UNION!{union BITS_FILE_PROPERTY_VALUE {
[usize; 1 ],
String String_mut: LPWSTR,
}}
RIDL!{#[ uuid(0 xe847030c, 0 xbbba, 0 x4657, 0 xaf, 0 x6d, 0 x48, 0 x4a, 0 xa4, 0 x2b, 0 xf1, 0 xfe)]
interface IBackgroundCopyJob5(IBackgroundCopyJob5Vtbl):
IBackgroundCopyJob4(IBackgroundCopyJob4Vtbl) {
fn SetProperty(
PropertyId: BITS_JOB_PROPERTY_ID,
PropertyValue: BITS_JOB_PROPERTY_VALUE,
) -> HRESULT,
fn GetProperty(
PropertyId: BITS_JOB_PROPERTY_ID,
PropertyValue: *mut BITS_JOB_PROPERTY_VALUE,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x85c1657f, 0 xdafc, 0 x40e8, 0 x88, 0 x34, 0 xdf, 0 x18, 0 xea, 0 x25, 0 x71, 0 x7e)]
interface IBackgroundCopyFile5(IBackgroundCopyFile5Vtbl):
IBackgroundCopyFile4(IBackgroundCopyFile4Vtbl) {
fn SetProperty(
PropertyId: BITS_JOB_PROPERTY_ID,
PropertyValue: BITS_JOB_PROPERTY_VALUE,
) -> HRESULT,
fn GetProperty(
PropertyId: BITS_JOB_PROPERTY_ID,
PropertyValue: *mut BITS_JOB_PROPERTY_VALUE,
) -> HRESULT,
}}
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-30)
¤
*© Formatika GbR, Deutschland