Home | History | Annotate | Download | only in include
      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