This file is indexed.

/usr/x86_64-w64-mingw32/include/bits.h is in mingw-w64-x86-64-dev 2.0.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif

#ifndef __bits_h__
#define __bits_h__

#ifndef __IBackgroundCopyFile_FWD_DEFINED__
#define __IBackgroundCopyFile_FWD_DEFINED__
typedef struct IBackgroundCopyFile IBackgroundCopyFile;
#endif

#ifndef __IEnumBackgroundCopyFiles_FWD_DEFINED__
#define __IEnumBackgroundCopyFiles_FWD_DEFINED__
typedef struct IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
#endif

#ifndef __IBackgroundCopyError_FWD_DEFINED__
#define __IBackgroundCopyError_FWD_DEFINED__
typedef struct IBackgroundCopyError IBackgroundCopyError;
#endif

#ifndef __IBackgroundCopyJob_FWD_DEFINED__
#define __IBackgroundCopyJob_FWD_DEFINED__
typedef struct IBackgroundCopyJob IBackgroundCopyJob;
#endif

#ifndef __IEnumBackgroundCopyJobs_FWD_DEFINED__
#define __IEnumBackgroundCopyJobs_FWD_DEFINED__
typedef struct IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
#endif

#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
#define __IBackgroundCopyCallback_FWD_DEFINED__
typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
#endif

#ifndef __AsyncIBackgroundCopyCallback_FWD_DEFINED__
#define __AsyncIBackgroundCopyCallback_FWD_DEFINED__
typedef struct AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback;
#endif

#ifndef __IBackgroundCopyManager_FWD_DEFINED__
#define __IBackgroundCopyManager_FWD_DEFINED__
typedef struct IBackgroundCopyManager IBackgroundCopyManager;
#endif

#ifndef __BackgroundCopyManager_FWD_DEFINED__
#define __BackgroundCopyManager_FWD_DEFINED__

#ifdef __cplusplus
typedef class BackgroundCopyManager BackgroundCopyManager;
#else
typedef struct BackgroundCopyManager BackgroundCopyManager;
#endif
#endif

#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
#define __IBackgroundCopyCallback_FWD_DEFINED__
typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
#endif

#include "unknwn.h"

#ifdef __cplusplus
extern "C"{
#endif

#ifndef __MIDL_user_allocate_free_DEFINED__
#define __MIDL_user_allocate_free_DEFINED__
  void *__RPC_API MIDL_user_allocate(size_t);
  void __RPC_API MIDL_user_free(void *);
#endif

#include "bitsmsg.h"
#define BG_SIZE_UNKNOWN (UINT64)(-1)

  extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_s_ifspec;

#ifndef __IBackgroundCopyFile_INTERFACE_DEFINED__
#define __IBackgroundCopyFile_INTERFACE_DEFINED__

  typedef struct _BG_FILE_PROGRESS {
    UINT64 BytesTotal;
    UINT64 BytesTransferred;
    WINBOOL Completed;
  } BG_FILE_PROGRESS;

  EXTERN_C const IID IID_IBackgroundCopyFile;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IBackgroundCopyFile : public IUnknown {
  public:
    virtual HRESULT WINAPI GetRemoteName(LPWSTR *pVal) = 0;
    virtual HRESULT WINAPI GetLocalName(LPWSTR *pVal) = 0;
    virtual HRESULT WINAPI GetProgress(BG_FILE_PROGRESS *pVal) = 0;
  };
#else
  typedef struct IBackgroundCopyFileVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IBackgroundCopyFile *This);
      ULONG (WINAPI *Release)(IBackgroundCopyFile *This);
      HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile *This,LPWSTR *pVal);
      HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile *This,LPWSTR *pVal);
      HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
    END_INTERFACE
  } IBackgroundCopyFileVtbl;
  struct IBackgroundCopyFile {
    CONST_VTBL struct IBackgroundCopyFileVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IBackgroundCopyFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyFile_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyFile_Release(This) (This)->lpVtbl->Release(This)
#define IBackgroundCopyFile_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal)
#define IBackgroundCopyFile_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal)
#define IBackgroundCopyFile_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
#endif
#endif
  HRESULT WINAPI IBackgroundCopyFile_GetRemoteName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
  void __RPC_STUB IBackgroundCopyFile_GetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyFile_GetLocalName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
  void __RPC_STUB IBackgroundCopyFile_GetLocalName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyFile_GetProgress_Proxy(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
  void __RPC_STUB IBackgroundCopyFile_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
#define __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
  EXTERN_C const IID IID_IEnumBackgroundCopyFiles;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IEnumBackgroundCopyFiles : public IUnknown {
  public:
    virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) = 0;
    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
    virtual HRESULT WINAPI Reset(void) = 0;
    virtual HRESULT WINAPI Clone(IEnumBackgroundCopyFiles **ppenum) = 0;
    virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
  };
#else
  typedef struct IEnumBackgroundCopyFilesVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyFiles *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IEnumBackgroundCopyFiles *This);
      ULONG (WINAPI *Release)(IEnumBackgroundCopyFiles *This);
      HRESULT (WINAPI *Next)(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
      HRESULT (WINAPI *Skip)(IEnumBackgroundCopyFiles *This,ULONG celt);
      HRESULT (WINAPI *Reset)(IEnumBackgroundCopyFiles *This);
      HRESULT (WINAPI *Clone)(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
      HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyFiles *This,ULONG *puCount);
    END_INTERFACE
  } IEnumBackgroundCopyFilesVtbl;
  struct IEnumBackgroundCopyFiles {
    CONST_VTBL struct IEnumBackgroundCopyFilesVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IEnumBackgroundCopyFiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumBackgroundCopyFiles_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumBackgroundCopyFiles_Release(This) (This)->lpVtbl->Release(This)
#define IEnumBackgroundCopyFiles_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
#define IEnumBackgroundCopyFiles_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumBackgroundCopyFiles_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumBackgroundCopyFiles_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#define IEnumBackgroundCopyFiles_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
#endif
#endif
  HRESULT WINAPI IEnumBackgroundCopyFiles_Next_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
  void __RPC_STUB IEnumBackgroundCopyFiles_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyFiles_Skip_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt);
  void __RPC_STUB IEnumBackgroundCopyFiles_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyFiles_Reset_Proxy(IEnumBackgroundCopyFiles *This);
  void __RPC_STUB IEnumBackgroundCopyFiles_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyFiles_Clone_Proxy(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
  void __RPC_STUB IEnumBackgroundCopyFiles_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyFiles_GetCount_Proxy(IEnumBackgroundCopyFiles *This,ULONG *puCount);
  void __RPC_STUB IEnumBackgroundCopyFiles_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __IBackgroundCopyError_INTERFACE_DEFINED__
#define __IBackgroundCopyError_INTERFACE_DEFINED__
  typedef enum __MIDL_IBackgroundCopyError_0001 {
    BG_ERROR_CONTEXT_NONE = 0,BG_ERROR_CONTEXT_UNKNOWN = 1,BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3,
    BG_ERROR_CONTEXT_LOCAL_FILE = 4,BG_ERROR_CONTEXT_REMOTE_FILE = 5,BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7
  } BG_ERROR_CONTEXT;

  EXTERN_C const IID IID_IBackgroundCopyError;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IBackgroundCopyError : public IUnknown {
  public:
    virtual HRESULT WINAPI GetError(BG_ERROR_CONTEXT *pContext,HRESULT *pCode) = 0;
    virtual HRESULT WINAPI GetFile(IBackgroundCopyFile **pVal) = 0;
    virtual HRESULT WINAPI GetErrorDescription(DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
    virtual HRESULT WINAPI GetErrorContextDescription(DWORD LanguageId,LPWSTR *pContextDescription) = 0;
    virtual HRESULT WINAPI GetProtocol(LPWSTR *pProtocol) = 0;
  };
#else
  typedef struct IBackgroundCopyErrorVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IBackgroundCopyError *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IBackgroundCopyError *This);
      ULONG (WINAPI *Release)(IBackgroundCopyError *This);
      HRESULT (WINAPI *GetError)(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
      HRESULT (WINAPI *GetFile)(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
      HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
      HRESULT (WINAPI *GetErrorContextDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
      HRESULT (WINAPI *GetProtocol)(IBackgroundCopyError *This,LPWSTR *pProtocol);
    END_INTERFACE
  } IBackgroundCopyErrorVtbl;
  struct IBackgroundCopyError {
    CONST_VTBL struct IBackgroundCopyErrorVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IBackgroundCopyError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyError_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyError_Release(This) (This)->lpVtbl->Release(This)
#define IBackgroundCopyError_GetError(This,pContext,pCode) (This)->lpVtbl->GetError(This,pContext,pCode)
#define IBackgroundCopyError_GetFile(This,pVal) (This)->lpVtbl->GetFile(This,pVal)
#define IBackgroundCopyError_GetErrorDescription(This,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription)
#define IBackgroundCopyError_GetErrorContextDescription(This,LanguageId,pContextDescription) (This)->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription)
#define IBackgroundCopyError_GetProtocol(This,pProtocol) (This)->lpVtbl->GetProtocol(This,pProtocol)
#endif
#endif
  HRESULT WINAPI IBackgroundCopyError_GetError_Proxy(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
  void __RPC_STUB IBackgroundCopyError_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyError_GetFile_Proxy(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
  void __RPC_STUB IBackgroundCopyError_GetFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyError_GetErrorDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
  void __RPC_STUB IBackgroundCopyError_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyError_GetErrorContextDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
  void __RPC_STUB IBackgroundCopyError_GetErrorContextDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyError_GetProtocol_Proxy(IBackgroundCopyError *This,LPWSTR *pProtocol);
  void __RPC_STUB IBackgroundCopyError_GetProtocol_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __IBackgroundCopyJob_INTERFACE_DEFINED__
#define __IBackgroundCopyJob_INTERFACE_DEFINED__
  typedef struct _BG_FILE_INFO {
    LPWSTR RemoteName;
    LPWSTR LocalName;
  } BG_FILE_INFO;

  typedef struct _BG_JOB_PROGRESS {
    UINT64 BytesTotal;
    UINT64 BytesTransferred;
    ULONG FilesTotal;
    ULONG FilesTransferred;
  } BG_JOB_PROGRESS;

  typedef struct _BG_JOB_TIMES {
    FILETIME CreationTime;
    FILETIME ModificationTime;
    FILETIME TransferCompletionTime;
  } BG_JOB_TIMES;

  typedef enum __MIDL_IBackgroundCopyJob_0001 {
    BG_JOB_PRIORITY_FOREGROUND = 0,
    BG_JOB_PRIORITY_HIGH,BG_JOB_PRIORITY_NORMAL,BG_JOB_PRIORITY_LOW
  } BG_JOB_PRIORITY;

  typedef enum __MIDL_IBackgroundCopyJob_0002 {
    BG_JOB_STATE_QUEUED = 0,BG_JOB_STATE_CONNECTING,BG_JOB_STATE_TRANSFERRING,
    BG_JOB_STATE_SUSPENDED,BG_JOB_STATE_ERROR,BG_JOB_STATE_TRANSIENT_ERROR,
    BG_JOB_STATE_TRANSFERRED,BG_JOB_STATE_ACKNOWLEDGED,BG_JOB_STATE_CANCELLED
  } BG_JOB_STATE;

  typedef enum __MIDL_IBackgroundCopyJob_0003 {
    BG_JOB_TYPE_DOWNLOAD = 0,BG_JOB_TYPE_UPLOAD,BG_JOB_TYPE_UPLOAD_REPLY
  } BG_JOB_TYPE;

  typedef enum __MIDL_IBackgroundCopyJob_0004 {
    BG_JOB_PROXY_USAGE_PRECONFIG = 0,BG_JOB_PROXY_USAGE_NO_PROXY,
    BG_JOB_PROXY_USAGE_OVERRIDE,BG_JOB_PROXY_USAGE_AUTODETECT
  } BG_JOB_PROXY_USAGE;

  EXTERN_C const IID IID_IBackgroundCopyJob;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IBackgroundCopyJob : public IUnknown {
  public:
    virtual HRESULT WINAPI AddFileSet(ULONG cFileCount,BG_FILE_INFO *pFileSet) = 0;
    virtual HRESULT WINAPI AddFile(LPCWSTR RemoteUrl,LPCWSTR LocalName) = 0;
    virtual HRESULT WINAPI EnumFiles(IEnumBackgroundCopyFiles **pEnum) = 0;
    virtual HRESULT WINAPI Suspend(void) = 0;
    virtual HRESULT WINAPI Resume(void) = 0;
    virtual HRESULT WINAPI Cancel(void) = 0;
    virtual HRESULT WINAPI Complete(void) = 0;
    virtual HRESULT WINAPI GetId(GUID *pVal) = 0;
    virtual HRESULT WINAPI GetType(BG_JOB_TYPE *pVal) = 0;
    virtual HRESULT WINAPI GetProgress(BG_JOB_PROGRESS *pVal) = 0;
    virtual HRESULT WINAPI GetTimes(BG_JOB_TIMES *pVal) = 0;
    virtual HRESULT WINAPI GetState(BG_JOB_STATE *pVal) = 0;
    virtual HRESULT WINAPI GetError(IBackgroundCopyError **ppError) = 0;
    virtual HRESULT WINAPI GetOwner(LPWSTR *pVal) = 0;
    virtual HRESULT WINAPI SetDisplayName(LPCWSTR Val) = 0;
    virtual HRESULT WINAPI GetDisplayName(LPWSTR *pVal) = 0;
    virtual HRESULT WINAPI SetDescription(LPCWSTR Val) = 0;
    virtual HRESULT WINAPI GetDescription(LPWSTR *pVal) = 0;
    virtual HRESULT WINAPI SetPriority(BG_JOB_PRIORITY Val) = 0;
    virtual HRESULT WINAPI GetPriority(BG_JOB_PRIORITY *pVal) = 0;
    virtual HRESULT WINAPI SetNotifyFlags(ULONG Val) = 0;
    virtual HRESULT WINAPI GetNotifyFlags(ULONG *pVal) = 0;
    virtual HRESULT WINAPI SetNotifyInterface(IUnknown *Val) = 0;
    virtual HRESULT WINAPI GetNotifyInterface(IUnknown **pVal) = 0;
    virtual HRESULT WINAPI SetMinimumRetryDelay(ULONG Seconds) = 0;
    virtual HRESULT WINAPI GetMinimumRetryDelay(ULONG *Seconds) = 0;
    virtual HRESULT WINAPI SetNoProgressTimeout(ULONG Seconds) = 0;
    virtual HRESULT WINAPI GetNoProgressTimeout(ULONG *Seconds) = 0;
    virtual HRESULT WINAPI GetErrorCount(ULONG *Errors) = 0;
    virtual HRESULT WINAPI SetProxySettings(BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) = 0;
    virtual HRESULT WINAPI GetProxySettings(BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) = 0;
    virtual HRESULT WINAPI TakeOwnership(void) = 0;
  };
#else
  typedef struct IBackgroundCopyJobVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IBackgroundCopyJob *This);
      ULONG (WINAPI *Release)(IBackgroundCopyJob *This);
      HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
      HRESULT (WINAPI *AddFile)(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
      HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
      HRESULT (WINAPI *Suspend)(IBackgroundCopyJob *This);
      HRESULT (WINAPI *Resume)(IBackgroundCopyJob *This);
      HRESULT (WINAPI *Cancel)(IBackgroundCopyJob *This);
      HRESULT (WINAPI *Complete)(IBackgroundCopyJob *This);
      HRESULT (WINAPI *GetId)(IBackgroundCopyJob *This,GUID *pVal);
      HRESULT (WINAPI *GetType)(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
      HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
      HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
      HRESULT (WINAPI *GetState)(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
      HRESULT (WINAPI *GetError)(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
      HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob *This,LPWSTR *pVal);
      HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob *This,LPCWSTR Val);
      HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob *This,LPWSTR *pVal);
      HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob *This,LPCWSTR Val);
      HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob *This,LPWSTR *pVal);
      HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
      HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
      HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob *This,ULONG Val);
      HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob *This,ULONG *pVal);
      HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob *This,IUnknown *Val);
      HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob *This,IUnknown **pVal);
      HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG Seconds);
      HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG *Seconds);
      HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG Seconds);
      HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG *Seconds);
      HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob *This,ULONG *Errors);
      HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
      HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
      HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob *This);
    END_INTERFACE
  } IBackgroundCopyJobVtbl;
  struct IBackgroundCopyJob {
    CONST_VTBL struct IBackgroundCopyJobVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IBackgroundCopyJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyJob_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyJob_Release(This) (This)->lpVtbl->Release(This)
#define IBackgroundCopyJob_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
#define IBackgroundCopyJob_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
#define IBackgroundCopyJob_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
#define IBackgroundCopyJob_Suspend(This) (This)->lpVtbl->Suspend(This)
#define IBackgroundCopyJob_Resume(This) (This)->lpVtbl->Resume(This)
#define IBackgroundCopyJob_Cancel(This) (This)->lpVtbl->Cancel(This)
#define IBackgroundCopyJob_Complete(This) (This)->lpVtbl->Complete(This)
#define IBackgroundCopyJob_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal)
#define IBackgroundCopyJob_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal)
#define IBackgroundCopyJob_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
#define IBackgroundCopyJob_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal)
#define IBackgroundCopyJob_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal)
#define IBackgroundCopyJob_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError)
#define IBackgroundCopyJob_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal)
#define IBackgroundCopyJob_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val)
#define IBackgroundCopyJob_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal)
#define IBackgroundCopyJob_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val)
#define IBackgroundCopyJob_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal)
#define IBackgroundCopyJob_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val)
#define IBackgroundCopyJob_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal)
#define IBackgroundCopyJob_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val)
#define IBackgroundCopyJob_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal)
#define IBackgroundCopyJob_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val)
#define IBackgroundCopyJob_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal)
#define IBackgroundCopyJob_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds)
#define IBackgroundCopyJob_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds)
#define IBackgroundCopyJob_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds)
#define IBackgroundCopyJob_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds)
#define IBackgroundCopyJob_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors)
#define IBackgroundCopyJob_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
#define IBackgroundCopyJob_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
#define IBackgroundCopyJob_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
#endif
#endif
  HRESULT WINAPI IBackgroundCopyJob_AddFileSet_Proxy(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
  void __RPC_STUB IBackgroundCopyJob_AddFileSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_AddFile_Proxy(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
  void __RPC_STUB IBackgroundCopyJob_AddFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_EnumFiles_Proxy(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
  void __RPC_STUB IBackgroundCopyJob_EnumFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_Suspend_Proxy(IBackgroundCopyJob *This);
  void __RPC_STUB IBackgroundCopyJob_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_Resume_Proxy(IBackgroundCopyJob *This);
  void __RPC_STUB IBackgroundCopyJob_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_Cancel_Proxy(IBackgroundCopyJob *This);
  void __RPC_STUB IBackgroundCopyJob_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_Complete_Proxy(IBackgroundCopyJob *This);
  void __RPC_STUB IBackgroundCopyJob_Complete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetId_Proxy(IBackgroundCopyJob *This,GUID *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetType_Proxy(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetProgress_Proxy(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetTimes_Proxy(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetState_Proxy(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetError_Proxy(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
  void __RPC_STUB IBackgroundCopyJob_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetOwner_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetDisplayName_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
  void __RPC_STUB IBackgroundCopyJob_SetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetDisplayName_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetDescription_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
  void __RPC_STUB IBackgroundCopyJob_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetDescription_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
  void __RPC_STUB IBackgroundCopyJob_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG Val);
  void __RPC_STUB IBackgroundCopyJob_SetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG *pVal);
  void __RPC_STUB IBackgroundCopyJob_GetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown *Val);
  void __RPC_STUB IBackgroundCopyJob_SetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown **pVal);
  void __RPC_STUB IBackgroundCopyJob_GetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
  void __RPC_STUB IBackgroundCopyJob_SetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
  void __RPC_STUB IBackgroundCopyJob_GetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
  void __RPC_STUB IBackgroundCopyJob_SetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
  void __RPC_STUB IBackgroundCopyJob_GetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetErrorCount_Proxy(IBackgroundCopyJob *This,ULONG *Errors);
  void __RPC_STUB IBackgroundCopyJob_GetErrorCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_SetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
  void __RPC_STUB IBackgroundCopyJob_SetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_GetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
  void __RPC_STUB IBackgroundCopyJob_GetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyJob_TakeOwnership_Proxy(IBackgroundCopyJob *This);
  void __RPC_STUB IBackgroundCopyJob_TakeOwnership_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
#define __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
  EXTERN_C const IID IID_IEnumBackgroundCopyJobs;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IEnumBackgroundCopyJobs : public IUnknown {
  public:
    virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) = 0;
    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
    virtual HRESULT WINAPI Reset(void) = 0;
    virtual HRESULT WINAPI Clone(IEnumBackgroundCopyJobs **ppenum) = 0;
    virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
  };
#else
  typedef struct IEnumBackgroundCopyJobsVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyJobs *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IEnumBackgroundCopyJobs *This);
      ULONG (WINAPI *Release)(IEnumBackgroundCopyJobs *This);
      HRESULT (WINAPI *Next)(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
      HRESULT (WINAPI *Skip)(IEnumBackgroundCopyJobs *This,ULONG celt);
      HRESULT (WINAPI *Reset)(IEnumBackgroundCopyJobs *This);
      HRESULT (WINAPI *Clone)(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
      HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs *This,ULONG *puCount);
    END_INTERFACE
  } IEnumBackgroundCopyJobsVtbl;
  struct IEnumBackgroundCopyJobs {
    CONST_VTBL struct IEnumBackgroundCopyJobsVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IEnumBackgroundCopyJobs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumBackgroundCopyJobs_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumBackgroundCopyJobs_Release(This) (This)->lpVtbl->Release(This)
#define IEnumBackgroundCopyJobs_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
#define IEnumBackgroundCopyJobs_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumBackgroundCopyJobs_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumBackgroundCopyJobs_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#define IEnumBackgroundCopyJobs_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
#endif
#endif
  HRESULT WINAPI IEnumBackgroundCopyJobs_Next_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
  void __RPC_STUB IEnumBackgroundCopyJobs_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyJobs_Skip_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt);
  void __RPC_STUB IEnumBackgroundCopyJobs_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyJobs_Reset_Proxy(IEnumBackgroundCopyJobs *This);
  void __RPC_STUB IEnumBackgroundCopyJobs_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyJobs_Clone_Proxy(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
  void __RPC_STUB IEnumBackgroundCopyJobs_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IEnumBackgroundCopyJobs_GetCount_Proxy(IEnumBackgroundCopyJobs *This,ULONG *puCount);
  void __RPC_STUB IEnumBackgroundCopyJobs_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#define BG_NOTIFY_JOB_TRANSFERRED 0x0001
#define BG_NOTIFY_JOB_ERROR 0x0002
#define BG_NOTIFY_DISABLE 0x0004
#define BG_NOTIFY_JOB_MODIFICATION 0x0008

  extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_s_ifspec;

#ifndef __IBackgroundCopyCallback_INTERFACE_DEFINED__
#define __IBackgroundCopyCallback_INTERFACE_DEFINED__
  EXTERN_C const IID IID_IBackgroundCopyCallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IBackgroundCopyCallback : public IUnknown {
  public:
    virtual HRESULT WINAPI JobTransferred(IBackgroundCopyJob *pJob) = 0;
    virtual HRESULT WINAPI JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
    virtual HRESULT WINAPI JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
  };
#else
  typedef struct IBackgroundCopyCallbackVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IBackgroundCopyCallback *This);
      ULONG (WINAPI *Release)(IBackgroundCopyCallback *This);
      HRESULT (WINAPI *JobTransferred)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
      HRESULT (WINAPI *JobError)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
      HRESULT (WINAPI *JobModification)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
    END_INTERFACE
  } IBackgroundCopyCallbackVtbl;
  struct IBackgroundCopyCallback {
    CONST_VTBL struct IBackgroundCopyCallbackVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
#define IBackgroundCopyCallback_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob)
#define IBackgroundCopyCallback_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError)
#define IBackgroundCopyCallback_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved)
#endif
#endif
  HRESULT WINAPI IBackgroundCopyCallback_JobTransferred_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
  void __RPC_STUB IBackgroundCopyCallback_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyCallback_JobError_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
  void __RPC_STUB IBackgroundCopyCallback_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyCallback_JobModification_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
  void __RPC_STUB IBackgroundCopyCallback_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
#define __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
  EXTERN_C const IID IID_AsyncIBackgroundCopyCallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct AsyncIBackgroundCopyCallback : public IUnknown {
  public:
    virtual HRESULT WINAPI Begin_JobTransferred(IBackgroundCopyJob *pJob) = 0;
    virtual HRESULT WINAPI Finish_JobTransferred(void) = 0;
    virtual HRESULT WINAPI Begin_JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
    virtual HRESULT WINAPI Finish_JobError(void) = 0;
    virtual HRESULT WINAPI Begin_JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
    virtual HRESULT WINAPI Finish_JobModification(void) = 0;
  };
#else
  typedef struct AsyncIBackgroundCopyCallbackVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(AsyncIBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(AsyncIBackgroundCopyCallback *This);
      ULONG (WINAPI *Release)(AsyncIBackgroundCopyCallback *This);
      HRESULT (WINAPI *Begin_JobTransferred)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
      HRESULT (WINAPI *Finish_JobTransferred)(AsyncIBackgroundCopyCallback *This);
      HRESULT (WINAPI *Begin_JobError)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
      HRESULT (WINAPI *Finish_JobError)(AsyncIBackgroundCopyCallback *This);
      HRESULT (WINAPI *Begin_JobModification)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
      HRESULT (WINAPI *Finish_JobModification)(AsyncIBackgroundCopyCallback *This);
    END_INTERFACE
  } AsyncIBackgroundCopyCallbackVtbl;
  struct AsyncIBackgroundCopyCallback {
    CONST_VTBL struct AsyncIBackgroundCopyCallbackVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define AsyncIBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define AsyncIBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define AsyncIBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
#define AsyncIBackgroundCopyCallback_Begin_JobTransferred(This,pJob) (This)->lpVtbl->Begin_JobTransferred(This,pJob)
#define AsyncIBackgroundCopyCallback_Finish_JobTransferred(This) (This)->lpVtbl->Finish_JobTransferred(This)
#define AsyncIBackgroundCopyCallback_Begin_JobError(This,pJob,pError) (This)->lpVtbl->Begin_JobError(This,pJob,pError)
#define AsyncIBackgroundCopyCallback_Finish_JobError(This) (This)->lpVtbl->Finish_JobError(This)
#define AsyncIBackgroundCopyCallback_Begin_JobModification(This,pJob,dwReserved) (This)->lpVtbl->Begin_JobModification(This,pJob,dwReserved)
#define AsyncIBackgroundCopyCallback_Finish_JobModification(This) (This)->lpVtbl->Finish_JobModification(This)
#endif
#endif
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobError_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobError_Proxy(AsyncIBackgroundCopyCallback *This);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobModification_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobModification_Proxy(AsyncIBackgroundCopyCallback *This);
  void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __IBackgroundCopyManager_INTERFACE_DEFINED__
#define __IBackgroundCopyManager_INTERFACE_DEFINED__

#define BG_JOB_ENUM_ALL_USERS 0x0001

  EXTERN_C const IID IID_IBackgroundCopyManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct IBackgroundCopyManager : public IUnknown {
  public:
    virtual HRESULT WINAPI CreateJob(LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) = 0;
    virtual HRESULT WINAPI GetJob(REFGUID jobID,IBackgroundCopyJob **ppJob) = 0;
    virtual HRESULT WINAPI EnumJobs(DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) = 0;
    virtual HRESULT WINAPI GetErrorDescription(HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
  };
#else
  typedef struct IBackgroundCopyManagerVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(IBackgroundCopyManager *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(IBackgroundCopyManager *This);
      ULONG (WINAPI *Release)(IBackgroundCopyManager *This);
      HRESULT (WINAPI *CreateJob)(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
      HRESULT (WINAPI *GetJob)(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
      HRESULT (WINAPI *EnumJobs)(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
      HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
    END_INTERFACE
  } IBackgroundCopyManagerVtbl;
  struct IBackgroundCopyManager {
    CONST_VTBL struct IBackgroundCopyManagerVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define IBackgroundCopyManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyManager_Release(This) (This)->lpVtbl->Release(This)
#define IBackgroundCopyManager_CreateJob(This,DisplayName,Type,pJobId,ppJob) (This)->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob)
#define IBackgroundCopyManager_GetJob(This,jobID,ppJob) (This)->lpVtbl->GetJob(This,jobID,ppJob)
#define IBackgroundCopyManager_EnumJobs(This,dwFlags,ppEnum) (This)->lpVtbl->EnumJobs(This,dwFlags,ppEnum)
#define IBackgroundCopyManager_GetErrorDescription(This,hResult,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription)
#endif
#endif
  HRESULT WINAPI IBackgroundCopyManager_CreateJob_Proxy(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
  void __RPC_STUB IBackgroundCopyManager_CreateJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyManager_GetJob_Proxy(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
  void __RPC_STUB IBackgroundCopyManager_GetJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyManager_EnumJobs_Proxy(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
  void __RPC_STUB IBackgroundCopyManager_EnumJobs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI IBackgroundCopyManager_GetErrorDescription_Proxy(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
  void __RPC_STUB IBackgroundCopyManager_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __BackgroundCopyManager_LIBRARY_DEFINED__
#define __BackgroundCopyManager_LIBRARY_DEFINED__
  EXTERN_C const IID LIBID_BackgroundCopyManager;
  EXTERN_C const CLSID CLSID_BackgroundCopyManager;
#ifdef __cplusplus
  class BackgroundCopyManager;
#endif
#endif

#include "bits1_5.h"

  extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_s_ifspec;

#ifdef __cplusplus
}
#endif
#endif