1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
8 #endif
9 
10 #include "rpc.h"
11 #include "rpcndr.h"
12 
13 #ifndef __RPCNDR_H_VERSION__
14 #error this stub requires an updated version of <rpcndr.h>
15 #endif
16 
17 #ifndef COM_NO_WINDOWS_H
18 #include "windows.h"
19 #include "ole2.h"
20 #endif
21 
22 #ifndef __bits_h__
23 #define __bits_h__
24 
25 #ifndef __IBackgroundCopyFile_FWD_DEFINED__
26 #define __IBackgroundCopyFile_FWD_DEFINED__
27 typedef struct IBackgroundCopyFile IBackgroundCopyFile;
28 #endif
29 
30 #ifndef __IEnumBackgroundCopyFiles_FWD_DEFINED__
31 #define __IEnumBackgroundCopyFiles_FWD_DEFINED__
32 typedef struct IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
33 #endif
34 
35 #ifndef __IBackgroundCopyError_FWD_DEFINED__
36 #define __IBackgroundCopyError_FWD_DEFINED__
37 typedef struct IBackgroundCopyError IBackgroundCopyError;
38 #endif
39 
40 #ifndef __IBackgroundCopyJob_FWD_DEFINED__
41 #define __IBackgroundCopyJob_FWD_DEFINED__
42 typedef struct IBackgroundCopyJob IBackgroundCopyJob;
43 #endif
44 
45 #ifndef __IEnumBackgroundCopyJobs_FWD_DEFINED__
46 #define __IEnumBackgroundCopyJobs_FWD_DEFINED__
47 typedef struct IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
48 #endif
49 
50 #ifndef __IBackgroundCopyCallback_FWD_DEFINED__
51 #define __IBackgroundCopyCallback_FWD_DEFINED__
52 typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
53 #endif
54 
55 #ifndef __AsyncIBackgroundCopyCallback_FWD_DEFINED__
56 #define __AsyncIBackgroundCopyCallback_FWD_DEFINED__
57 typedef struct AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback;
58 #endif
59 
60 #ifndef __IBackgroundCopyManager_FWD_DEFINED__
61 #define __IBackgroundCopyManager_FWD_DEFINED__
62 typedef struct IBackgroundCopyManager IBackgroundCopyManager;
63 #endif
64 
65 #ifndef __BackgroundCopyManager_FWD_DEFINED__
66 #define __BackgroundCopyManager_FWD_DEFINED__
67 
68 #ifdef __cplusplus
69 typedef class BackgroundCopyManager BackgroundCopyManager;
70 #else
71 typedef struct BackgroundCopyManager BackgroundCopyManager;
72 #endif
73 #endif
74 
75 #ifndef __IBackgroundCopyCallback_FWD_DEFINED__
76 #define __IBackgroundCopyCallback_FWD_DEFINED__
77 typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
78 #endif
79 
80 #include "unknwn.h"
81 
82 #ifdef __cplusplus
83 extern "C"{
84 #endif
85 
86 #ifndef __MIDL_user_allocate_free_DEFINED__
87 #define __MIDL_user_allocate_free_DEFINED__
88   void *__RPC_API MIDL_user_allocate(size_t);
89   void __RPC_API MIDL_user_free(void *);
90 #endif
91 
92 #include "bitsmsg.h"
93 #define BG_SIZE_UNKNOWN (UINT64)(-1)
94 
95   extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_c_ifspec;
96   extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_s_ifspec;
97 
98 #ifndef __IBackgroundCopyFile_INTERFACE_DEFINED__
99 #define __IBackgroundCopyFile_INTERFACE_DEFINED__
100 
101   typedef struct _BG_FILE_PROGRESS {
102     UINT64 BytesTotal;
103     UINT64 BytesTransferred;
104     WINBOOL Completed;
105   } BG_FILE_PROGRESS;
106 
107   EXTERN_C const IID IID_IBackgroundCopyFile;
108 #if defined(__cplusplus) && !defined(CINTERFACE)
109   struct IBackgroundCopyFile : public IUnknown {
110   public:
111     virtual HRESULT WINAPI GetRemoteName(LPWSTR *pVal) = 0;
112     virtual HRESULT WINAPI GetLocalName(LPWSTR *pVal) = 0;
113     virtual HRESULT WINAPI GetProgress(BG_FILE_PROGRESS *pVal) = 0;
114   };
115 #else
116   typedef struct IBackgroundCopyFileVtbl {
117     BEGIN_INTERFACE
118       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile *This,REFIID riid,void **ppvObject);
119       ULONG (WINAPI *AddRef)(IBackgroundCopyFile *This);
120       ULONG (WINAPI *Release)(IBackgroundCopyFile *This);
121       HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile *This,LPWSTR *pVal);
122       HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile *This,LPWSTR *pVal);
123       HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
124     END_INTERFACE
125   } IBackgroundCopyFileVtbl;
126   struct IBackgroundCopyFile {
127     CONST_VTBL struct IBackgroundCopyFileVtbl *lpVtbl;
128   };
129 #ifdef COBJMACROS
130 #define IBackgroundCopyFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
131 #define IBackgroundCopyFile_AddRef(This) (This)->lpVtbl->AddRef(This)
132 #define IBackgroundCopyFile_Release(This) (This)->lpVtbl->Release(This)
133 #define IBackgroundCopyFile_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal)
134 #define IBackgroundCopyFile_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal)
135 #define IBackgroundCopyFile_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
136 #endif
137 #endif
138   HRESULT WINAPI IBackgroundCopyFile_GetRemoteName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
139   void __RPC_STUB IBackgroundCopyFile_GetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
140   HRESULT WINAPI IBackgroundCopyFile_GetLocalName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
141   void __RPC_STUB IBackgroundCopyFile_GetLocalName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
142   HRESULT WINAPI IBackgroundCopyFile_GetProgress_Proxy(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
143   void __RPC_STUB IBackgroundCopyFile_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
144 #endif
145 
146 #ifndef __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
147 #define __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
148   EXTERN_C const IID IID_IEnumBackgroundCopyFiles;
149 #if defined(__cplusplus) && !defined(CINTERFACE)
150   struct IEnumBackgroundCopyFiles : public IUnknown {
151   public:
152     virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) = 0;
153     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
154     virtual HRESULT WINAPI Reset(void) = 0;
155     virtual HRESULT WINAPI Clone(IEnumBackgroundCopyFiles **ppenum) = 0;
156     virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
157   };
158 #else
159   typedef struct IEnumBackgroundCopyFilesVtbl {
160     BEGIN_INTERFACE
161       HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyFiles *This,REFIID riid,void **ppvObject);
162       ULONG (WINAPI *AddRef)(IEnumBackgroundCopyFiles *This);
163       ULONG (WINAPI *Release)(IEnumBackgroundCopyFiles *This);
164       HRESULT (WINAPI *Next)(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
165       HRESULT (WINAPI *Skip)(IEnumBackgroundCopyFiles *This,ULONG celt);
166       HRESULT (WINAPI *Reset)(IEnumBackgroundCopyFiles *This);
167       HRESULT (WINAPI *Clone)(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
168       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyFiles *This,ULONG *puCount);
169     END_INTERFACE
170   } IEnumBackgroundCopyFilesVtbl;
171   struct IEnumBackgroundCopyFiles {
172     CONST_VTBL struct IEnumBackgroundCopyFilesVtbl *lpVtbl;
173   };
174 #ifdef COBJMACROS
175 #define IEnumBackgroundCopyFiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
176 #define IEnumBackgroundCopyFiles_AddRef(This) (This)->lpVtbl->AddRef(This)
177 #define IEnumBackgroundCopyFiles_Release(This) (This)->lpVtbl->Release(This)
178 #define IEnumBackgroundCopyFiles_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
179 #define IEnumBackgroundCopyFiles_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
180 #define IEnumBackgroundCopyFiles_Reset(This) (This)->lpVtbl->Reset(This)
181 #define IEnumBackgroundCopyFiles_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
182 #define IEnumBackgroundCopyFiles_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
183 #endif
184 #endif
185   HRESULT WINAPI IEnumBackgroundCopyFiles_Next_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
186   void __RPC_STUB IEnumBackgroundCopyFiles_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
187   HRESULT WINAPI IEnumBackgroundCopyFiles_Skip_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt);
188   void __RPC_STUB IEnumBackgroundCopyFiles_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
189   HRESULT WINAPI IEnumBackgroundCopyFiles_Reset_Proxy(IEnumBackgroundCopyFiles *This);
190   void __RPC_STUB IEnumBackgroundCopyFiles_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
191   HRESULT WINAPI IEnumBackgroundCopyFiles_Clone_Proxy(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
192   void __RPC_STUB IEnumBackgroundCopyFiles_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
193   HRESULT WINAPI IEnumBackgroundCopyFiles_GetCount_Proxy(IEnumBackgroundCopyFiles *This,ULONG *puCount);
194   void __RPC_STUB IEnumBackgroundCopyFiles_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
195 #endif
196 
197 #ifndef __IBackgroundCopyError_INTERFACE_DEFINED__
198 #define __IBackgroundCopyError_INTERFACE_DEFINED__
199   typedef enum __MIDL_IBackgroundCopyError_0001 {
200     BG_ERROR_CONTEXT_NONE = 0,BG_ERROR_CONTEXT_UNKNOWN = 1,BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3,
201     BG_ERROR_CONTEXT_LOCAL_FILE = 4,BG_ERROR_CONTEXT_REMOTE_FILE = 5,BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7
202   } BG_ERROR_CONTEXT;
203 
204   EXTERN_C const IID IID_IBackgroundCopyError;
205 #if defined(__cplusplus) && !defined(CINTERFACE)
206   struct IBackgroundCopyError : public IUnknown {
207   public:
208     virtual HRESULT WINAPI GetError(BG_ERROR_CONTEXT *pContext,HRESULT *pCode) = 0;
209     virtual HRESULT WINAPI GetFile(IBackgroundCopyFile **pVal) = 0;
210     virtual HRESULT WINAPI GetErrorDescription(DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
211     virtual HRESULT WINAPI GetErrorContextDescription(DWORD LanguageId,LPWSTR *pContextDescription) = 0;
212     virtual HRESULT WINAPI GetProtocol(LPWSTR *pProtocol) = 0;
213   };
214 #else
215   typedef struct IBackgroundCopyErrorVtbl {
216     BEGIN_INTERFACE
217       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyError *This,REFIID riid,void **ppvObject);
218       ULONG (WINAPI *AddRef)(IBackgroundCopyError *This);
219       ULONG (WINAPI *Release)(IBackgroundCopyError *This);
220       HRESULT (WINAPI *GetError)(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
221       HRESULT (WINAPI *GetFile)(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
222       HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
223       HRESULT (WINAPI *GetErrorContextDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
224       HRESULT (WINAPI *GetProtocol)(IBackgroundCopyError *This,LPWSTR *pProtocol);
225     END_INTERFACE
226   } IBackgroundCopyErrorVtbl;
227   struct IBackgroundCopyError {
228     CONST_VTBL struct IBackgroundCopyErrorVtbl *lpVtbl;
229   };
230 #ifdef COBJMACROS
231 #define IBackgroundCopyError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
232 #define IBackgroundCopyError_AddRef(This) (This)->lpVtbl->AddRef(This)
233 #define IBackgroundCopyError_Release(This) (This)->lpVtbl->Release(This)
234 #define IBackgroundCopyError_GetError(This,pContext,pCode) (This)->lpVtbl->GetError(This,pContext,pCode)
235 #define IBackgroundCopyError_GetFile(This,pVal) (This)->lpVtbl->GetFile(This,pVal)
236 #define IBackgroundCopyError_GetErrorDescription(This,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription)
237 #define IBackgroundCopyError_GetErrorContextDescription(This,LanguageId,pContextDescription) (This)->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription)
238 #define IBackgroundCopyError_GetProtocol(This,pProtocol) (This)->lpVtbl->GetProtocol(This,pProtocol)
239 #endif
240 #endif
241   HRESULT WINAPI IBackgroundCopyError_GetError_Proxy(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
242   void __RPC_STUB IBackgroundCopyError_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
243   HRESULT WINAPI IBackgroundCopyError_GetFile_Proxy(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
244   void __RPC_STUB IBackgroundCopyError_GetFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
245   HRESULT WINAPI IBackgroundCopyError_GetErrorDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
246   void __RPC_STUB IBackgroundCopyError_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
247   HRESULT WINAPI IBackgroundCopyError_GetErrorContextDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
248   void __RPC_STUB IBackgroundCopyError_GetErrorContextDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
249   HRESULT WINAPI IBackgroundCopyError_GetProtocol_Proxy(IBackgroundCopyError *This,LPWSTR *pProtocol);
250   void __RPC_STUB IBackgroundCopyError_GetProtocol_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
251 #endif
252 
253 #ifndef __IBackgroundCopyJob_INTERFACE_DEFINED__
254 #define __IBackgroundCopyJob_INTERFACE_DEFINED__
255   typedef struct _BG_FILE_INFO {
256     LPWSTR RemoteName;
257     LPWSTR LocalName;
258   } BG_FILE_INFO;
259 
260   typedef struct _BG_JOB_PROGRESS {
261     UINT64 BytesTotal;
262     UINT64 BytesTransferred;
263     ULONG FilesTotal;
264     ULONG FilesTransferred;
265   } BG_JOB_PROGRESS;
266 
267   typedef struct _BG_JOB_TIMES {
268     FILETIME CreationTime;
269     FILETIME ModificationTime;
270     FILETIME TransferCompletionTime;
271   } BG_JOB_TIMES;
272 
273   typedef enum __MIDL_IBackgroundCopyJob_0001 {
274     BG_JOB_PRIORITY_FOREGROUND = 0,
275     BG_JOB_PRIORITY_HIGH,BG_JOB_PRIORITY_NORMAL,BG_JOB_PRIORITY_LOW
276   } BG_JOB_PRIORITY;
277 
278   typedef enum __MIDL_IBackgroundCopyJob_0002 {
279     BG_JOB_STATE_QUEUED = 0,BG_JOB_STATE_CONNECTING,BG_JOB_STATE_TRANSFERRING,
280     BG_JOB_STATE_SUSPENDED,BG_JOB_STATE_ERROR,BG_JOB_STATE_TRANSIENT_ERROR,
281     BG_JOB_STATE_TRANSFERRED,BG_JOB_STATE_ACKNOWLEDGED,BG_JOB_STATE_CANCELLED
282   } BG_JOB_STATE;
283 
284   typedef enum __MIDL_IBackgroundCopyJob_0003 {
285     BG_JOB_TYPE_DOWNLOAD = 0,BG_JOB_TYPE_UPLOAD,BG_JOB_TYPE_UPLOAD_REPLY
286   } BG_JOB_TYPE;
287 
288   typedef enum __MIDL_IBackgroundCopyJob_0004 {
289     BG_JOB_PROXY_USAGE_PRECONFIG = 0,BG_JOB_PROXY_USAGE_NO_PROXY,
290     BG_JOB_PROXY_USAGE_OVERRIDE,BG_JOB_PROXY_USAGE_AUTODETECT
291   } BG_JOB_PROXY_USAGE;
292 
293   EXTERN_C const IID IID_IBackgroundCopyJob;
294 #if defined(__cplusplus) && !defined(CINTERFACE)
295   struct IBackgroundCopyJob : public IUnknown {
296   public:
297     virtual HRESULT WINAPI AddFileSet(ULONG cFileCount,BG_FILE_INFO *pFileSet) = 0;
298     virtual HRESULT WINAPI AddFile(LPCWSTR RemoteUrl,LPCWSTR LocalName) = 0;
299     virtual HRESULT WINAPI EnumFiles(IEnumBackgroundCopyFiles **pEnum) = 0;
300     virtual HRESULT WINAPI Suspend(void) = 0;
301     virtual HRESULT WINAPI Resume(void) = 0;
302     virtual HRESULT WINAPI Cancel(void) = 0;
303     virtual HRESULT WINAPI Complete(void) = 0;
304     virtual HRESULT WINAPI GetId(GUID *pVal) = 0;
305     virtual HRESULT WINAPI GetType(BG_JOB_TYPE *pVal) = 0;
306     virtual HRESULT WINAPI GetProgress(BG_JOB_PROGRESS *pVal) = 0;
307     virtual HRESULT WINAPI GetTimes(BG_JOB_TIMES *pVal) = 0;
308     virtual HRESULT WINAPI GetState(BG_JOB_STATE *pVal) = 0;
309     virtual HRESULT WINAPI GetError(IBackgroundCopyError **ppError) = 0;
310     virtual HRESULT WINAPI GetOwner(LPWSTR *pVal) = 0;
311     virtual HRESULT WINAPI SetDisplayName(LPCWSTR Val) = 0;
312     virtual HRESULT WINAPI GetDisplayName(LPWSTR *pVal) = 0;
313     virtual HRESULT WINAPI SetDescription(LPCWSTR Val) = 0;
314     virtual HRESULT WINAPI GetDescription(LPWSTR *pVal) = 0;
315     virtual HRESULT WINAPI SetPriority(BG_JOB_PRIORITY Val) = 0;
316     virtual HRESULT WINAPI GetPriority(BG_JOB_PRIORITY *pVal) = 0;
317     virtual HRESULT WINAPI SetNotifyFlags(ULONG Val) = 0;
318     virtual HRESULT WINAPI GetNotifyFlags(ULONG *pVal) = 0;
319     virtual HRESULT WINAPI SetNotifyInterface(IUnknown *Val) = 0;
320     virtual HRESULT WINAPI GetNotifyInterface(IUnknown **pVal) = 0;
321     virtual HRESULT WINAPI SetMinimumRetryDelay(ULONG Seconds) = 0;
322     virtual HRESULT WINAPI GetMinimumRetryDelay(ULONG *Seconds) = 0;
323     virtual HRESULT WINAPI SetNoProgressTimeout(ULONG Seconds) = 0;
324     virtual HRESULT WINAPI GetNoProgressTimeout(ULONG *Seconds) = 0;
325     virtual HRESULT WINAPI GetErrorCount(ULONG *Errors) = 0;
326     virtual HRESULT WINAPI SetProxySettings(BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) = 0;
327     virtual HRESULT WINAPI GetProxySettings(BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) = 0;
328     virtual HRESULT WINAPI TakeOwnership(void) = 0;
329   };
330 #else
331   typedef struct IBackgroundCopyJobVtbl {
332     BEGIN_INTERFACE
333       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob *This,REFIID riid,void **ppvObject);
334       ULONG (WINAPI *AddRef)(IBackgroundCopyJob *This);
335       ULONG (WINAPI *Release)(IBackgroundCopyJob *This);
336       HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
337       HRESULT (WINAPI *AddFile)(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
338       HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
339       HRESULT (WINAPI *Suspend)(IBackgroundCopyJob *This);
340       HRESULT (WINAPI *Resume)(IBackgroundCopyJob *This);
341       HRESULT (WINAPI *Cancel)(IBackgroundCopyJob *This);
342       HRESULT (WINAPI *Complete)(IBackgroundCopyJob *This);
343       HRESULT (WINAPI *GetId)(IBackgroundCopyJob *This,GUID *pVal);
344       HRESULT (WINAPI *GetType)(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
345       HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
346       HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
347       HRESULT (WINAPI *GetState)(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
348       HRESULT (WINAPI *GetError)(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
349       HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob *This,LPWSTR *pVal);
350       HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob *This,LPCWSTR Val);
351       HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob *This,LPWSTR *pVal);
352       HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob *This,LPCWSTR Val);
353       HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob *This,LPWSTR *pVal);
354       HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
355       HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
356       HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob *This,ULONG Val);
357       HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob *This,ULONG *pVal);
358       HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob *This,IUnknown *Val);
359       HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob *This,IUnknown **pVal);
360       HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG Seconds);
361       HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG *Seconds);
362       HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG Seconds);
363       HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG *Seconds);
364       HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob *This,ULONG *Errors);
365       HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
366       HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
367       HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob *This);
368     END_INTERFACE
369   } IBackgroundCopyJobVtbl;
370   struct IBackgroundCopyJob {
371     CONST_VTBL struct IBackgroundCopyJobVtbl *lpVtbl;
372   };
373 #ifdef COBJMACROS
374 #define IBackgroundCopyJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
375 #define IBackgroundCopyJob_AddRef(This) (This)->lpVtbl->AddRef(This)
376 #define IBackgroundCopyJob_Release(This) (This)->lpVtbl->Release(This)
377 #define IBackgroundCopyJob_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
378 #define IBackgroundCopyJob_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
379 #define IBackgroundCopyJob_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
380 #define IBackgroundCopyJob_Suspend(This) (This)->lpVtbl->Suspend(This)
381 #define IBackgroundCopyJob_Resume(This) (This)->lpVtbl->Resume(This)
382 #define IBackgroundCopyJob_Cancel(This) (This)->lpVtbl->Cancel(This)
383 #define IBackgroundCopyJob_Complete(This) (This)->lpVtbl->Complete(This)
384 #define IBackgroundCopyJob_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal)
385 #define IBackgroundCopyJob_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal)
386 #define IBackgroundCopyJob_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
387 #define IBackgroundCopyJob_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal)
388 #define IBackgroundCopyJob_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal)
389 #define IBackgroundCopyJob_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError)
390 #define IBackgroundCopyJob_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal)
391 #define IBackgroundCopyJob_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val)
392 #define IBackgroundCopyJob_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal)
393 #define IBackgroundCopyJob_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val)
394 #define IBackgroundCopyJob_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal)
395 #define IBackgroundCopyJob_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val)
396 #define IBackgroundCopyJob_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal)
397 #define IBackgroundCopyJob_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val)
398 #define IBackgroundCopyJob_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal)
399 #define IBackgroundCopyJob_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val)
400 #define IBackgroundCopyJob_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal)
401 #define IBackgroundCopyJob_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds)
402 #define IBackgroundCopyJob_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds)
403 #define IBackgroundCopyJob_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds)
404 #define IBackgroundCopyJob_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds)
405 #define IBackgroundCopyJob_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors)
406 #define IBackgroundCopyJob_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
407 #define IBackgroundCopyJob_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
408 #define IBackgroundCopyJob_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
409 #endif
410 #endif
411   HRESULT WINAPI IBackgroundCopyJob_AddFileSet_Proxy(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
412   void __RPC_STUB IBackgroundCopyJob_AddFileSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
413   HRESULT WINAPI IBackgroundCopyJob_AddFile_Proxy(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
414   void __RPC_STUB IBackgroundCopyJob_AddFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
415   HRESULT WINAPI IBackgroundCopyJob_EnumFiles_Proxy(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
416   void __RPC_STUB IBackgroundCopyJob_EnumFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
417   HRESULT WINAPI IBackgroundCopyJob_Suspend_Proxy(IBackgroundCopyJob *This);
418   void __RPC_STUB IBackgroundCopyJob_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
419   HRESULT WINAPI IBackgroundCopyJob_Resume_Proxy(IBackgroundCopyJob *This);
420   void __RPC_STUB IBackgroundCopyJob_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
421   HRESULT WINAPI IBackgroundCopyJob_Cancel_Proxy(IBackgroundCopyJob *This);
422   void __RPC_STUB IBackgroundCopyJob_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
423   HRESULT WINAPI IBackgroundCopyJob_Complete_Proxy(IBackgroundCopyJob *This);
424   void __RPC_STUB IBackgroundCopyJob_Complete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
425   HRESULT WINAPI IBackgroundCopyJob_GetId_Proxy(IBackgroundCopyJob *This,GUID *pVal);
426   void __RPC_STUB IBackgroundCopyJob_GetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
427   HRESULT WINAPI IBackgroundCopyJob_GetType_Proxy(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
428   void __RPC_STUB IBackgroundCopyJob_GetType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
429   HRESULT WINAPI IBackgroundCopyJob_GetProgress_Proxy(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
430   void __RPC_STUB IBackgroundCopyJob_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
431   HRESULT WINAPI IBackgroundCopyJob_GetTimes_Proxy(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
432   void __RPC_STUB IBackgroundCopyJob_GetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
433   HRESULT WINAPI IBackgroundCopyJob_GetState_Proxy(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
434   void __RPC_STUB IBackgroundCopyJob_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
435   HRESULT WINAPI IBackgroundCopyJob_GetError_Proxy(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
436   void __RPC_STUB IBackgroundCopyJob_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
437   HRESULT WINAPI IBackgroundCopyJob_GetOwner_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
438   void __RPC_STUB IBackgroundCopyJob_GetOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
439   HRESULT WINAPI IBackgroundCopyJob_SetDisplayName_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
440   void __RPC_STUB IBackgroundCopyJob_SetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
441   HRESULT WINAPI IBackgroundCopyJob_GetDisplayName_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
442   void __RPC_STUB IBackgroundCopyJob_GetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
443   HRESULT WINAPI IBackgroundCopyJob_SetDescription_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
444   void __RPC_STUB IBackgroundCopyJob_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
445   HRESULT WINAPI IBackgroundCopyJob_GetDescription_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
446   void __RPC_STUB IBackgroundCopyJob_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
447   HRESULT WINAPI IBackgroundCopyJob_SetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
448   void __RPC_STUB IBackgroundCopyJob_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
449   HRESULT WINAPI IBackgroundCopyJob_GetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
450   void __RPC_STUB IBackgroundCopyJob_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
451   HRESULT WINAPI IBackgroundCopyJob_SetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG Val);
452   void __RPC_STUB IBackgroundCopyJob_SetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
453   HRESULT WINAPI IBackgroundCopyJob_GetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG *pVal);
454   void __RPC_STUB IBackgroundCopyJob_GetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
455   HRESULT WINAPI IBackgroundCopyJob_SetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown *Val);
456   void __RPC_STUB IBackgroundCopyJob_SetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
457   HRESULT WINAPI IBackgroundCopyJob_GetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown **pVal);
458   void __RPC_STUB IBackgroundCopyJob_GetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
459   HRESULT WINAPI IBackgroundCopyJob_SetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
460   void __RPC_STUB IBackgroundCopyJob_SetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
461   HRESULT WINAPI IBackgroundCopyJob_GetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
462   void __RPC_STUB IBackgroundCopyJob_GetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
463   HRESULT WINAPI IBackgroundCopyJob_SetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
464   void __RPC_STUB IBackgroundCopyJob_SetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
465   HRESULT WINAPI IBackgroundCopyJob_GetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
466   void __RPC_STUB IBackgroundCopyJob_GetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
467   HRESULT WINAPI IBackgroundCopyJob_GetErrorCount_Proxy(IBackgroundCopyJob *This,ULONG *Errors);
468   void __RPC_STUB IBackgroundCopyJob_GetErrorCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
469   HRESULT WINAPI IBackgroundCopyJob_SetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
470   void __RPC_STUB IBackgroundCopyJob_SetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
471   HRESULT WINAPI IBackgroundCopyJob_GetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
472   void __RPC_STUB IBackgroundCopyJob_GetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
473   HRESULT WINAPI IBackgroundCopyJob_TakeOwnership_Proxy(IBackgroundCopyJob *This);
474   void __RPC_STUB IBackgroundCopyJob_TakeOwnership_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
475 #endif
476 
477 #ifndef __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
478 #define __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
479   EXTERN_C const IID IID_IEnumBackgroundCopyJobs;
480 #if defined(__cplusplus) && !defined(CINTERFACE)
481   struct IEnumBackgroundCopyJobs : public IUnknown {
482   public:
483     virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) = 0;
484     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
485     virtual HRESULT WINAPI Reset(void) = 0;
486     virtual HRESULT WINAPI Clone(IEnumBackgroundCopyJobs **ppenum) = 0;
487     virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
488   };
489 #else
490   typedef struct IEnumBackgroundCopyJobsVtbl {
491     BEGIN_INTERFACE
492       HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyJobs *This,REFIID riid,void **ppvObject);
493       ULONG (WINAPI *AddRef)(IEnumBackgroundCopyJobs *This);
494       ULONG (WINAPI *Release)(IEnumBackgroundCopyJobs *This);
495       HRESULT (WINAPI *Next)(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
496       HRESULT (WINAPI *Skip)(IEnumBackgroundCopyJobs *This,ULONG celt);
497       HRESULT (WINAPI *Reset)(IEnumBackgroundCopyJobs *This);
498       HRESULT (WINAPI *Clone)(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
499       HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs *This,ULONG *puCount);
500     END_INTERFACE
501   } IEnumBackgroundCopyJobsVtbl;
502   struct IEnumBackgroundCopyJobs {
503     CONST_VTBL struct IEnumBackgroundCopyJobsVtbl *lpVtbl;
504   };
505 #ifdef COBJMACROS
506 #define IEnumBackgroundCopyJobs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
507 #define IEnumBackgroundCopyJobs_AddRef(This) (This)->lpVtbl->AddRef(This)
508 #define IEnumBackgroundCopyJobs_Release(This) (This)->lpVtbl->Release(This)
509 #define IEnumBackgroundCopyJobs_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
510 #define IEnumBackgroundCopyJobs_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
511 #define IEnumBackgroundCopyJobs_Reset(This) (This)->lpVtbl->Reset(This)
512 #define IEnumBackgroundCopyJobs_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
513 #define IEnumBackgroundCopyJobs_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
514 #endif
515 #endif
516   HRESULT WINAPI IEnumBackgroundCopyJobs_Next_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
517   void __RPC_STUB IEnumBackgroundCopyJobs_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
518   HRESULT WINAPI IEnumBackgroundCopyJobs_Skip_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt);
519   void __RPC_STUB IEnumBackgroundCopyJobs_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
520   HRESULT WINAPI IEnumBackgroundCopyJobs_Reset_Proxy(IEnumBackgroundCopyJobs *This);
521   void __RPC_STUB IEnumBackgroundCopyJobs_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
522   HRESULT WINAPI IEnumBackgroundCopyJobs_Clone_Proxy(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
523   void __RPC_STUB IEnumBackgroundCopyJobs_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
524   HRESULT WINAPI IEnumBackgroundCopyJobs_GetCount_Proxy(IEnumBackgroundCopyJobs *This,ULONG *puCount);
525   void __RPC_STUB IEnumBackgroundCopyJobs_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
526 #endif
527 
528 #define BG_NOTIFY_JOB_TRANSFERRED 0x0001
529 #define BG_NOTIFY_JOB_ERROR 0x0002
530 #define BG_NOTIFY_DISABLE 0x0004
531 #define BG_NOTIFY_JOB_MODIFICATION 0x0008
532 
533   extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_c_ifspec;
534   extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_s_ifspec;
535 
536 #ifndef __IBackgroundCopyCallback_INTERFACE_DEFINED__
537 #define __IBackgroundCopyCallback_INTERFACE_DEFINED__
538   EXTERN_C const IID IID_IBackgroundCopyCallback;
539 #if defined(__cplusplus) && !defined(CINTERFACE)
540   struct IBackgroundCopyCallback : public IUnknown {
541   public:
542     virtual HRESULT WINAPI JobTransferred(IBackgroundCopyJob *pJob) = 0;
543     virtual HRESULT WINAPI JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
544     virtual HRESULT WINAPI JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
545   };
546 #else
547   typedef struct IBackgroundCopyCallbackVtbl {
548     BEGIN_INTERFACE
549       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
550       ULONG (WINAPI *AddRef)(IBackgroundCopyCallback *This);
551       ULONG (WINAPI *Release)(IBackgroundCopyCallback *This);
552       HRESULT (WINAPI *JobTransferred)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
553       HRESULT (WINAPI *JobError)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
554       HRESULT (WINAPI *JobModification)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
555     END_INTERFACE
556   } IBackgroundCopyCallbackVtbl;
557   struct IBackgroundCopyCallback {
558     CONST_VTBL struct IBackgroundCopyCallbackVtbl *lpVtbl;
559   };
560 #ifdef COBJMACROS
561 #define IBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
562 #define IBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
563 #define IBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
564 #define IBackgroundCopyCallback_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob)
565 #define IBackgroundCopyCallback_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError)
566 #define IBackgroundCopyCallback_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved)
567 #endif
568 #endif
569   HRESULT WINAPI IBackgroundCopyCallback_JobTransferred_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
570   void __RPC_STUB IBackgroundCopyCallback_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
571   HRESULT WINAPI IBackgroundCopyCallback_JobError_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
572   void __RPC_STUB IBackgroundCopyCallback_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
573   HRESULT WINAPI IBackgroundCopyCallback_JobModification_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
574   void __RPC_STUB IBackgroundCopyCallback_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
575 #endif
576 
577 #ifndef __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
578 #define __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
579   EXTERN_C const IID IID_AsyncIBackgroundCopyCallback;
580 #if defined(__cplusplus) && !defined(CINTERFACE)
581   struct AsyncIBackgroundCopyCallback : public IUnknown {
582   public:
583     virtual HRESULT WINAPI Begin_JobTransferred(IBackgroundCopyJob *pJob) = 0;
584     virtual HRESULT WINAPI Finish_JobTransferred(void) = 0;
585     virtual HRESULT WINAPI Begin_JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
586     virtual HRESULT WINAPI Finish_JobError(void) = 0;
587     virtual HRESULT WINAPI Begin_JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
588     virtual HRESULT WINAPI Finish_JobModification(void) = 0;
589   };
590 #else
591   typedef struct AsyncIBackgroundCopyCallbackVtbl {
592     BEGIN_INTERFACE
593       HRESULT (WINAPI *QueryInterface)(AsyncIBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
594       ULONG (WINAPI *AddRef)(AsyncIBackgroundCopyCallback *This);
595       ULONG (WINAPI *Release)(AsyncIBackgroundCopyCallback *This);
596       HRESULT (WINAPI *Begin_JobTransferred)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
597       HRESULT (WINAPI *Finish_JobTransferred)(AsyncIBackgroundCopyCallback *This);
598       HRESULT (WINAPI *Begin_JobError)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
599       HRESULT (WINAPI *Finish_JobError)(AsyncIBackgroundCopyCallback *This);
600       HRESULT (WINAPI *Begin_JobModification)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
601       HRESULT (WINAPI *Finish_JobModification)(AsyncIBackgroundCopyCallback *This);
602     END_INTERFACE
603   } AsyncIBackgroundCopyCallbackVtbl;
604   struct AsyncIBackgroundCopyCallback {
605     CONST_VTBL struct AsyncIBackgroundCopyCallbackVtbl *lpVtbl;
606   };
607 #ifdef COBJMACROS
608 #define AsyncIBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
609 #define AsyncIBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
610 #define AsyncIBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
611 #define AsyncIBackgroundCopyCallback_Begin_JobTransferred(This,pJob) (This)->lpVtbl->Begin_JobTransferred(This,pJob)
612 #define AsyncIBackgroundCopyCallback_Finish_JobTransferred(This) (This)->lpVtbl->Finish_JobTransferred(This)
613 #define AsyncIBackgroundCopyCallback_Begin_JobError(This,pJob,pError) (This)->lpVtbl->Begin_JobError(This,pJob,pError)
614 #define AsyncIBackgroundCopyCallback_Finish_JobError(This) (This)->lpVtbl->Finish_JobError(This)
615 #define AsyncIBackgroundCopyCallback_Begin_JobModification(This,pJob,dwReserved) (This)->lpVtbl->Begin_JobModification(This,pJob,dwReserved)
616 #define AsyncIBackgroundCopyCallback_Finish_JobModification(This) (This)->lpVtbl->Finish_JobModification(This)
617 #endif
618 #endif
619   HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
620   void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
621   HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This);
622   void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
623   HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobError_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
624   void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
625   HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobError_Proxy(AsyncIBackgroundCopyCallback *This);
626   void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
627   HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobModification_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
628   void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
629   HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobModification_Proxy(AsyncIBackgroundCopyCallback *This);
630   void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
631 #endif
632 
633 #ifndef __IBackgroundCopyManager_INTERFACE_DEFINED__
634 #define __IBackgroundCopyManager_INTERFACE_DEFINED__
635 
636 #define BG_JOB_ENUM_ALL_USERS 0x0001
637 
638   EXTERN_C const IID IID_IBackgroundCopyManager;
639 #if defined(__cplusplus) && !defined(CINTERFACE)
640   struct IBackgroundCopyManager : public IUnknown {
641   public:
642     virtual HRESULT WINAPI CreateJob(LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) = 0;
643     virtual HRESULT WINAPI GetJob(REFGUID jobID,IBackgroundCopyJob **ppJob) = 0;
644     virtual HRESULT WINAPI EnumJobs(DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) = 0;
645     virtual HRESULT WINAPI GetErrorDescription(HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
646   };
647 #else
648   typedef struct IBackgroundCopyManagerVtbl {
649     BEGIN_INTERFACE
650       HRESULT (WINAPI *QueryInterface)(IBackgroundCopyManager *This,REFIID riid,void **ppvObject);
651       ULONG (WINAPI *AddRef)(IBackgroundCopyManager *This);
652       ULONG (WINAPI *Release)(IBackgroundCopyManager *This);
653       HRESULT (WINAPI *CreateJob)(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
654       HRESULT (WINAPI *GetJob)(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
655       HRESULT (WINAPI *EnumJobs)(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
656       HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
657     END_INTERFACE
658   } IBackgroundCopyManagerVtbl;
659   struct IBackgroundCopyManager {
660     CONST_VTBL struct IBackgroundCopyManagerVtbl *lpVtbl;
661   };
662 #ifdef COBJMACROS
663 #define IBackgroundCopyManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
664 #define IBackgroundCopyManager_AddRef(This) (This)->lpVtbl->AddRef(This)
665 #define IBackgroundCopyManager_Release(This) (This)->lpVtbl->Release(This)
666 #define IBackgroundCopyManager_CreateJob(This,DisplayName,Type,pJobId,ppJob) (This)->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob)
667 #define IBackgroundCopyManager_GetJob(This,jobID,ppJob) (This)->lpVtbl->GetJob(This,jobID,ppJob)
668 #define IBackgroundCopyManager_EnumJobs(This,dwFlags,ppEnum) (This)->lpVtbl->EnumJobs(This,dwFlags,ppEnum)
669 #define IBackgroundCopyManager_GetErrorDescription(This,hResult,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription)
670 #endif
671 #endif
672   HRESULT WINAPI IBackgroundCopyManager_CreateJob_Proxy(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
673   void __RPC_STUB IBackgroundCopyManager_CreateJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
674   HRESULT WINAPI IBackgroundCopyManager_GetJob_Proxy(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
675   void __RPC_STUB IBackgroundCopyManager_GetJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
676   HRESULT WINAPI IBackgroundCopyManager_EnumJobs_Proxy(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
677   void __RPC_STUB IBackgroundCopyManager_EnumJobs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
678   HRESULT WINAPI IBackgroundCopyManager_GetErrorDescription_Proxy(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
679   void __RPC_STUB IBackgroundCopyManager_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
680 #endif
681 
682 #ifndef __BackgroundCopyManager_LIBRARY_DEFINED__
683 #define __BackgroundCopyManager_LIBRARY_DEFINED__
684   EXTERN_C const IID LIBID_BackgroundCopyManager;
685   EXTERN_C const CLSID CLSID_BackgroundCopyManager;
686 #ifdef __cplusplus
687   class BackgroundCopyManager;
688 #endif
689 #endif
690 
691 #include "bits1_5.h"
692 
693   extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_c_ifspec;
694   extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_s_ifspec;
695 
696 #ifdef __cplusplus
697 }
698 #endif
699 #endif
700