winapi_ui_automation/um/
bits3_0.rs

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.
6use shared::basetsd::UINT64;
7use shared::guiddef::{GUID, REFGUID};
8use shared::minwindef::{BOOL, DWORD, FILETIME, ULONG};
9use um::bits::{
10    IBackgroundCopyCallback, IBackgroundCopyCallbackVtbl, IBackgroundCopyFile, IBackgroundCopyJob,
11};
12use um::bits2_0::{
13    BG_FILE_RANGE, IBackgroundCopyFile2, IBackgroundCopyFile2Vtbl, IBackgroundCopyJob3,
14    IBackgroundCopyJob3Vtbl,
15};
16use um::unknwnbase::{IUnknown, IUnknownVtbl};
17use um::winnt::{HRESULT, LPCWSTR, LPWSTR};
18RIDL!{#[uuid(0x659cdeaf, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
19interface IBitsPeerCacheRecord(IBitsPeerCacheRecordVtbl): IUnknown(IUnknownVtbl) {
20    fn GetId(
21        pVal: *mut GUID,
22    ) -> HRESULT,
23    fn GetOriginUrl(
24        pVal: *mut LPWSTR,
25    ) -> HRESULT,
26    fn GetFileSize(
27        pVal: *mut UINT64,
28    ) -> HRESULT,
29    fn GetFileModificationTime(
30        pVal: *mut FILETIME,
31    ) -> HRESULT,
32    fn GetLastAccessTime(
33        pVal: *mut FILETIME,
34    ) -> HRESULT,
35    fn IsFileValidated() -> HRESULT,
36    fn GetFileRanges(
37        pRangeCount: *mut DWORD,
38        ppRanges: *mut *mut BG_FILE_RANGE,
39    ) -> HRESULT,
40}}
41RIDL!{#[uuid(0x659cdea4, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
42interface IEnumBitsPeerCacheRecords(IEnumBitsPeerCacheRecordsVtbl): IUnknown(IUnknownVtbl) {
43    fn Next(
44        celt: ULONG,
45        rgelt: *mut *mut IBitsPeerCacheRecord,
46        pceltFetched: *mut ULONG,
47    ) -> HRESULT,
48    fn Skip(
49        celt: ULONG,
50    ) -> HRESULT,
51    fn Reset() -> HRESULT,
52    fn Clone(
53        ppenum: *mut *mut IEnumBitsPeerCacheRecords,
54    ) -> HRESULT,
55    fn GetCount(
56        puCount: *mut ULONG,
57    ) -> HRESULT,
58}}
59RIDL!{#[uuid(0x659cdea2, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
60interface IBitsPeer(IBitsPeerVtbl): IUnknown(IUnknownVtbl) {
61    fn GetPeerName(
62        pName: *mut LPWSTR,
63    ) -> HRESULT,
64    fn IsAuthenticated(
65        pAuth: *mut BOOL,
66    ) -> HRESULT,
67    fn IsAvailable(
68        pOnline: *mut BOOL,
69    ) -> HRESULT,
70}}
71RIDL!{#[uuid(0x659cdea5, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
72interface IEnumBitsPeers(IEnumBitsPeersVtbl): IUnknown(IUnknownVtbl) {
73    fn Next(
74        celt: ULONG,
75        rgelt: *mut *mut IBitsPeer,
76        pceltFetched: *mut ULONG,
77    ) -> HRESULT,
78    fn Skip(
79        celt: ULONG,
80    ) -> HRESULT,
81    fn Reset() -> HRESULT,
82    fn Clone(
83        ppenum: *mut *mut IEnumBitsPeers,
84    ) -> HRESULT,
85    fn GetCount(
86        puCount: *mut ULONG,
87    ) -> HRESULT,
88}}
89pub const BG_ENABLE_PEERCACHING_CLIENT: DWORD = 0x0001;
90pub const BG_ENABLE_PEERCACHING_SERVER: DWORD = 0x0002;
91pub const BG_DISABLE_BRANCH_CACHE: DWORD = 0x0004;
92RIDL!{#[uuid(0x659cdead, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
93interface IBitsPeerCacheAdministration(IBitsPeerCacheAdministrationVtbl): IUnknown(IUnknownVtbl) {
94    fn GetMaximumCacheSize(
95        pBytes: *mut DWORD,
96    ) -> HRESULT,
97    fn SetMaximumCacheSize(
98        Bytes: DWORD,
99    ) -> HRESULT,
100    fn GetMaximumContentAge(
101        pSeconds: *mut ULONG,
102    ) -> HRESULT,
103    fn SetMaximumContentAge(
104        Seconds: ULONG,
105    ) -> HRESULT,
106    fn GetConfigurationFlags(
107        pFlags: *mut DWORD,
108    ) -> HRESULT,
109    fn SetConfigurationFlags(
110        Flags: DWORD,
111    ) -> HRESULT,
112    fn EnumRecords(
113        ppEnum: *mut *mut IEnumBitsPeerCacheRecords,
114    ) -> HRESULT,
115    fn GetRecord(
116        ppRecord: *mut *mut IBitsPeerCacheRecord,
117    ) -> HRESULT,
118    fn ClearRecords() -> HRESULT,
119    fn DeleteRecord(
120        id: REFGUID,
121    ) -> HRESULT,
122    fn DeleteUrl(
123        url: LPCWSTR,
124    ) -> HRESULT,
125    fn EnumPeers(
126        ppEnum: *mut *mut IEnumBitsPeers,
127    ) -> HRESULT,
128    fn ClearPeers() -> HRESULT,
129    fn DiscoverPeers() -> HRESULT,
130}}
131pub const BG_JOB_ENABLE_PEERCACHING_CLIENT: DWORD = 0x0001;
132pub const BG_JOB_ENABLE_PEERCACHING_SERVER: DWORD = 0x0002;
133pub const BG_JOB_DISABLE_BRANCH_CACHE: DWORD = 0x0004;
134RIDL!{#[uuid(0x659cdeae, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
135interface IBackgroundCopyJob4(IBackgroundCopyJob4Vtbl):
136    IBackgroundCopyJob3(IBackgroundCopyJob3Vtbl) {
137    fn SetPeerCachingFlags(
138        Flags: DWORD,
139    ) -> HRESULT,
140    fn GetPeerCachingFlags(
141        pFlags: *mut DWORD,
142    ) -> HRESULT,
143    fn GetOwnerIntegrityLevel(
144        pLevel: *mut ULONG,
145    ) -> HRESULT,
146    fn GetOwnerElevationState(
147        pElevated: *mut BOOL,
148    ) -> HRESULT,
149    fn SetMaximumDownloadTime(
150        Timeout: ULONG,
151    ) -> HRESULT,
152    fn GetMaximumDownloadTime(
153        pTimeout: *mut ULONG,
154    ) -> HRESULT,
155}}
156RIDL!{#[uuid(0x659cdeaa, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
157interface IBackgroundCopyFile3(IBackgroundCopyFile3Vtbl):
158    IBackgroundCopyFile2(IBackgroundCopyFile2Vtbl) {
159    fn GetTemporaryName(
160        pFilename: *mut LPWSTR,
161    ) -> HRESULT,
162    fn SetValidationState(
163        state: BOOL,
164    ) -> HRESULT,
165    fn GetValidationState(
166        pState: *mut BOOL,
167    ) -> HRESULT,
168    fn IsDownloadedFromPeer(
169        pVal: *mut BOOL,
170    ) -> HRESULT,
171}}
172RIDL!{#[uuid(0x659cdeac, 0x489e, 0x11d9, 0xa9, 0xcd, 0x00, 0x0d, 0x56, 0x96, 0x52, 0x51)]
173interface IBackgroundCopyCallback2(IBackgroundCopyCallback2Vtbl):
174    IBackgroundCopyCallback(IBackgroundCopyCallbackVtbl) {
175    fn FileTransferred(
176        pJob: *mut IBackgroundCopyJob,
177        pFile: *mut IBackgroundCopyFile,
178    ) -> HRESULT,
179}}