[RTL] Fix GCC build.
[reactos.git] / sdk / include / psdk / bits2_0.idl
1 /*
2 * Background Intelligent Transfer Service (BITS) 2.0 interface
3 *
4 * Copyright 2015 Hans Leidekker for CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 */
21
22 #ifndef DO_NO_IMPORTS
23 import "bits.idl";
24 import "bits1_5.idl";
25 #endif
26
27 cpp_quote("#define BG_COPY_FILE_OWNER 1")
28 cpp_quote("#define BG_COPY_FILE_GROUP 2")
29 cpp_quote("#define BG_COPY_FILE_DACL 4")
30 cpp_quote("#define BG_COPY_FILE_SACL 8")
31 cpp_quote("#define BG_COPY_FILE_ALL 15")
32
33 cpp_quote("#define BG_LENGTH_TO_EOF (UINT64)(-1)")
34
35 typedef struct _BG_FILE_RANGE
36 {
37 UINT64 InitialOffset;
38 UINT64 Length;
39 } BG_FILE_RANGE;
40
41 [
42 uuid(443c8934-90ff-48ed-bcde-26f5c7450042),
43 odl
44 ]
45 interface IBackgroundCopyJob3 : IBackgroundCopyJob2
46 {
47 HRESULT ReplaceRemotePrefix(
48 [in] LPCWSTR OldPrefix,
49 [in] LPCWSTR NewPrefix);
50
51 HRESULT AddFileWithRanges(
52 [in] LPCWSTR RemoteUrl,
53 [in] LPCWSTR LocalName,
54 [in] DWORD RangeCount,
55 [in, size_is(RangeCount)] BG_FILE_RANGE Ranges[]);
56
57 HRESULT SetFileACLFlags(
58 [in] DWORD Flags);
59
60 HRESULT GetFileACLFlags(
61 [out, ref] DWORD *Flags);
62 }
63
64 [
65 uuid(83e81b93-0873-474d-8a8c-f2018b1a939c),
66 odl
67 ]
68 interface IBackgroundCopyFile2 : IBackgroundCopyFile
69 {
70 HRESULT GetFileRanges(
71 [in, out, unique] DWORD *RangeCount,
72 [out, size_is(, *RangeCount)] BG_FILE_RANGE **Ranges);
73
74 HRESULT SetRemoteName(
75 LPCWSTR Val);
76 }
77
78 [
79 uuid(2289a9af-dc96-486e-b268-89c9e3397c3d),
80 version(1.0)
81 ]
82 library BackgroundCopyManager2_0
83 {
84 [
85 uuid(6d18ad12-bde3-4393-b311-099c346e6df9)
86 ]
87 coclass BackgroundCopyManager2_0
88 {
89 [default] interface IBackgroundCopyManager;
90 };
91
92 interface IBackgroundCopyCallback;
93 interface IBackgroundCopyJob3;
94 interface IBackgroundCopyFile2;
95 }