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 23import "bits.idl"; 24import "bits1_5.idl"; 25#endif 26 27cpp_quote("#define BG_COPY_FILE_OWNER 1") 28cpp_quote("#define BG_COPY_FILE_GROUP 2") 29cpp_quote("#define BG_COPY_FILE_DACL 4") 30cpp_quote("#define BG_COPY_FILE_SACL 8") 31cpp_quote("#define BG_COPY_FILE_ALL 15") 32 33cpp_quote("#define BG_LENGTH_TO_EOF (UINT64)(-1)") 34 35typedef 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] 45interface 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] 68interface 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] 82library 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} 96