1/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __windows_foundation_h__
16#define __windows_foundation_h__
17
18/* Forward declarations */
19
20#ifndef __IAsyncInfo_FWD_DEFINED__
21#define __IAsyncInfo_FWD_DEFINED__
22typedef interface IAsyncInfo IAsyncInfo;
23#endif
24
25#ifndef __IASyncAction_FWD_DEFINED__
26#define __IASyncAction_FWD_DEFINED__
27typedef interface IASyncAction IASyncAction;
28#endif
29
30#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
31#define __AsyncActionCompletedHandler_FWD_DEFINED__
32typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
33#endif
34
35#ifndef __IAsyncOperation_FWD_DEFINED__
36#define __IAsyncOperation_FWD_DEFINED__
37typedef interface IAsyncOperation IAsyncOperation;
38#endif
39
40/* Headers for imported files */
41
42#include <inspectable.h>
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48#ifndef __IAsyncInfo_FWD_DEFINED__
49#define __IAsyncInfo_FWD_DEFINED__
50typedef interface IAsyncInfo IAsyncInfo;
51#endif
52
53#ifndef __IAsyncAction_FWD_DEFINED__
54#define __IAsyncAction_FWD_DEFINED__
55typedef interface IAsyncAction IAsyncAction;
56#endif
57
58#ifndef __IAsyncOperation_FWD_DEFINED__
59#define __IAsyncOperation_FWD_DEFINED__
60typedef interface IAsyncOperation IAsyncOperation;
61#endif
62
63#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
64#define __AsyncActionCompletedHandler_FWD_DEFINED__
65typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
66#endif
67
68#ifndef __TypedEventHandler_FWD_DEFINED__
69#define __TypedEventHandler_FWD_DEFINED__
70typedef interface TypedEventHandler TypedEventHandler;
71#endif
72
73struct DateTime;
74
75struct EventRegistrationToken;
76
77#ifndef __IVectorView_FWD_DEFINED__
78#define __IVectorView_FWD_DEFINED__
79typedef interface IVectorView IVectorView;
80#endif
81
82#ifndef __IPropertySet_FWD_DEFINED__
83#define __IPropertySet_FWD_DEFINED__
84typedef interface IPropertySet IPropertySet;
85#endif
86
87typedef enum AsyncStatus {
88    Started = 0,
89    Completed = 1,
90    Canceled = 2,
91    Error = 3
92} AsyncStatus;
93typedef struct DateTime {
94    UINT64 UniversalTime;
95} DateTime;
96typedef struct EventRegistrationToken {
97    UINT64 Value;
98} EventRegistrationToken;
99/*****************************************************************************
100 * IAsyncInfo interface
101 */
102#ifndef __IAsyncInfo_INTERFACE_DEFINED__
103#define __IAsyncInfo_INTERFACE_DEFINED__
104
105DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
106#if defined(__cplusplus) && !defined(CINTERFACE)
107MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
108IAsyncInfo : public IInspectable
109{
110    virtual HRESULT STDMETHODCALLTYPE get_Id(
111        unsigned int *id) = 0;
112
113    virtual HRESULT STDMETHODCALLTYPE get_Status(
114        AsyncStatus *status) = 0;
115
116    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
117        HRESULT *errorCode) = 0;
118
119    virtual HRESULT STDMETHODCALLTYPE Cancel(
120        ) = 0;
121
122    virtual HRESULT STDMETHODCALLTYPE Close(
123        ) = 0;
124
125};
126#ifdef __CRT_UUID_DECL
127__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
128#endif
129#else
130typedef struct IAsyncInfoVtbl {
131    BEGIN_INTERFACE
132
133    /*** IUnknown methods ***/
134    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135        IAsyncInfo* This,
136        REFIID riid,
137        void **ppvObject);
138
139    ULONG (STDMETHODCALLTYPE *AddRef)(
140        IAsyncInfo* This);
141
142    ULONG (STDMETHODCALLTYPE *Release)(
143        IAsyncInfo* This);
144
145    /*** IInspectable methods ***/
146    HRESULT (STDMETHODCALLTYPE *GetIids)(
147        IAsyncInfo* This,
148        ULONG *iidCount,
149        IID **iids);
150
151    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
152        IAsyncInfo* This,
153        HSTRING *className);
154
155    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
156        IAsyncInfo* This,
157        TrustLevel *trustLevel);
158
159    /*** IAsyncInfo methods ***/
160    HRESULT (STDMETHODCALLTYPE *get_Id)(
161        IAsyncInfo* This,
162        unsigned int *id);
163
164    HRESULT (STDMETHODCALLTYPE *get_Status)(
165        IAsyncInfo* This,
166        AsyncStatus *status);
167
168    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
169        IAsyncInfo* This,
170        HRESULT *errorCode);
171
172    HRESULT (STDMETHODCALLTYPE *Cancel)(
173        IAsyncInfo* This);
174
175    HRESULT (STDMETHODCALLTYPE *Close)(
176        IAsyncInfo* This);
177
178    END_INTERFACE
179} IAsyncInfoVtbl;
180interface IAsyncInfo {
181    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
182};
183
184#ifdef COBJMACROS
185#ifndef WIDL_C_INLINE_WRAPPERS
186/*** IUnknown methods ***/
187#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
188#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
189#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
190/*** IInspectable methods ***/
191#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
192#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
193#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
194/*** IAsyncInfo methods ***/
195#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
196#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
197#define IAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
198#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
199#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
200#else
201/*** IUnknown methods ***/
202static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
203    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
204}
205static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
206    return This->lpVtbl->AddRef(This);
207}
208static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
209    return This->lpVtbl->Release(This);
210}
211/*** IInspectable methods ***/
212static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
213    return This->lpVtbl->GetIids(This,iidCount,iids);
214}
215static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
216    return This->lpVtbl->GetRuntimeClassName(This,className);
217}
218static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
219    return This->lpVtbl->GetTrustLevel(This,trustLevel);
220}
221/*** IAsyncInfo methods ***/
222static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int *id) {
223    return This->lpVtbl->get_Id(This,id);
224}
225static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
226    return This->lpVtbl->get_Status(This,status);
227}
228static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *errorCode) {
229    return This->lpVtbl->get_ErrorCode(This,errorCode);
230}
231static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
232    return This->lpVtbl->Cancel(This);
233}
234static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
235    return This->lpVtbl->Close(This);
236}
237#endif
238#endif
239
240#endif
241
242HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
243    IAsyncInfo* This,
244    unsigned int *id);
245void __RPC_STUB IAsyncInfo_get_Id_Stub(
246    IRpcStubBuffer* This,
247    IRpcChannelBuffer* pRpcChannelBuffer,
248    PRPC_MESSAGE pRpcMessage,
249    DWORD* pdwStubPhase);
250HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
251    IAsyncInfo* This,
252    AsyncStatus *status);
253void __RPC_STUB IAsyncInfo_get_Status_Stub(
254    IRpcStubBuffer* This,
255    IRpcChannelBuffer* pRpcChannelBuffer,
256    PRPC_MESSAGE pRpcMessage,
257    DWORD* pdwStubPhase);
258HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
259    IAsyncInfo* This,
260    HRESULT *errorCode);
261void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
262    IRpcStubBuffer* This,
263    IRpcChannelBuffer* pRpcChannelBuffer,
264    PRPC_MESSAGE pRpcMessage,
265    DWORD* pdwStubPhase);
266HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
267    IAsyncInfo* This);
268void __RPC_STUB IAsyncInfo_Cancel_Stub(
269    IRpcStubBuffer* This,
270    IRpcChannelBuffer* pRpcChannelBuffer,
271    PRPC_MESSAGE pRpcMessage,
272    DWORD* pdwStubPhase);
273HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
274    IAsyncInfo* This);
275void __RPC_STUB IAsyncInfo_Close_Stub(
276    IRpcStubBuffer* This,
277    IRpcChannelBuffer* pRpcChannelBuffer,
278    PRPC_MESSAGE pRpcMessage,
279    DWORD* pdwStubPhase);
280
281#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
282
283/*****************************************************************************
284 * IASyncAction interface
285 */
286#ifndef __IASyncAction_INTERFACE_DEFINED__
287#define __IASyncAction_INTERFACE_DEFINED__
288
289DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
290#if defined(__cplusplus) && !defined(CINTERFACE)
291MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
292IASyncAction : public IInspectable
293{
294    virtual HRESULT STDMETHODCALLTYPE put_Completed(
295        AsyncActionCompletedHandler *handler) = 0;
296
297    virtual HRESULT STDMETHODCALLTYPE get_Completed(
298        AsyncActionCompletedHandler **handler) = 0;
299
300    virtual HRESULT STDMETHODCALLTYPE GetResults(
301        ) = 0;
302
303};
304#ifdef __CRT_UUID_DECL
305__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
306#endif
307#else
308typedef struct IASyncActionVtbl {
309    BEGIN_INTERFACE
310
311    /*** IUnknown methods ***/
312    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
313        IASyncAction* This,
314        REFIID riid,
315        void **ppvObject);
316
317    ULONG (STDMETHODCALLTYPE *AddRef)(
318        IASyncAction* This);
319
320    ULONG (STDMETHODCALLTYPE *Release)(
321        IASyncAction* This);
322
323    /*** IInspectable methods ***/
324    HRESULT (STDMETHODCALLTYPE *GetIids)(
325        IASyncAction* This,
326        ULONG *iidCount,
327        IID **iids);
328
329    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
330        IASyncAction* This,
331        HSTRING *className);
332
333    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
334        IASyncAction* This,
335        TrustLevel *trustLevel);
336
337    /*** IASyncAction methods ***/
338    HRESULT (STDMETHODCALLTYPE *put_Completed)(
339        IASyncAction* This,
340        AsyncActionCompletedHandler *handler);
341
342    HRESULT (STDMETHODCALLTYPE *get_Completed)(
343        IASyncAction* This,
344        AsyncActionCompletedHandler **handler);
345
346    HRESULT (STDMETHODCALLTYPE *GetResults)(
347        IASyncAction* This);
348
349    END_INTERFACE
350} IASyncActionVtbl;
351interface IASyncAction {
352    CONST_VTBL IASyncActionVtbl* lpVtbl;
353};
354
355#ifdef COBJMACROS
356#ifndef WIDL_C_INLINE_WRAPPERS
357/*** IUnknown methods ***/
358#define IASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
359#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
360#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
361/*** IInspectable methods ***/
362#define IASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
363#define IASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
364#define IASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
365/*** IASyncAction methods ***/
366#define IASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
367#define IASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
368#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
369#else
370/*** IUnknown methods ***/
371static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* This,REFIID riid,void **ppvObject) {
372    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
373}
374static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
375    return This->lpVtbl->AddRef(This);
376}
377static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
378    return This->lpVtbl->Release(This);
379}
380/*** IInspectable methods ***/
381static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG *iidCount,IID **iids) {
382    return This->lpVtbl->GetIids(This,iidCount,iids);
383}
384static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* This,HSTRING *className) {
385    return This->lpVtbl->GetRuntimeClassName(This,className);
386}
387static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* This,TrustLevel *trustLevel) {
388    return This->lpVtbl->GetTrustLevel(This,trustLevel);
389}
390/*** IASyncAction methods ***/
391static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* This,AsyncActionCompletedHandler *handler) {
392    return This->lpVtbl->put_Completed(This,handler);
393}
394static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* This,AsyncActionCompletedHandler **handler) {
395    return This->lpVtbl->get_Completed(This,handler);
396}
397static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
398    return This->lpVtbl->GetResults(This);
399}
400#endif
401#endif
402
403#endif
404
405HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
406    IASyncAction* This,
407    AsyncActionCompletedHandler *handler);
408void __RPC_STUB IASyncAction_put_Completed_Stub(
409    IRpcStubBuffer* This,
410    IRpcChannelBuffer* pRpcChannelBuffer,
411    PRPC_MESSAGE pRpcMessage,
412    DWORD* pdwStubPhase);
413HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
414    IASyncAction* This,
415    AsyncActionCompletedHandler **handler);
416void __RPC_STUB IASyncAction_get_Completed_Stub(
417    IRpcStubBuffer* This,
418    IRpcChannelBuffer* pRpcChannelBuffer,
419    PRPC_MESSAGE pRpcMessage,
420    DWORD* pdwStubPhase);
421HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
422    IASyncAction* This);
423void __RPC_STUB IASyncAction_GetResults_Stub(
424    IRpcStubBuffer* This,
425    IRpcChannelBuffer* pRpcChannelBuffer,
426    PRPC_MESSAGE pRpcMessage,
427    DWORD* pdwStubPhase);
428
429#endif  /* __IASyncAction_INTERFACE_DEFINED__ */
430
431/*****************************************************************************
432 * AsyncActionCompletedHandler interface
433 */
434#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
435#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
436
437DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
438#if defined(__cplusplus) && !defined(CINTERFACE)
439MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
440AsyncActionCompletedHandler : public IUnknown
441{
442    virtual HRESULT STDMETHODCALLTYPE Invoke(
443        IInspectable *asyncAction,
444        AsyncStatus status) = 0;
445
446};
447#ifdef __CRT_UUID_DECL
448__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
449#endif
450#else
451typedef struct AsyncActionCompletedHandlerVtbl {
452    BEGIN_INTERFACE
453
454    /*** IUnknown methods ***/
455    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
456        AsyncActionCompletedHandler* This,
457        REFIID riid,
458        void **ppvObject);
459
460    ULONG (STDMETHODCALLTYPE *AddRef)(
461        AsyncActionCompletedHandler* This);
462
463    ULONG (STDMETHODCALLTYPE *Release)(
464        AsyncActionCompletedHandler* This);
465
466    /*** AsyncActionCompletedHandler methods ***/
467    HRESULT (STDMETHODCALLTYPE *Invoke)(
468        AsyncActionCompletedHandler* This,
469        IInspectable *asyncAction,
470        AsyncStatus status);
471
472    END_INTERFACE
473} AsyncActionCompletedHandlerVtbl;
474interface AsyncActionCompletedHandler {
475    CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
476};
477
478#ifdef COBJMACROS
479#ifndef WIDL_C_INLINE_WRAPPERS
480/*** IUnknown methods ***/
481#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
482#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
483#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
484/*** AsyncActionCompletedHandler methods ***/
485#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
486#else
487/*** IUnknown methods ***/
488static FORCEINLINE HRESULT AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
489    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
490}
491static FORCEINLINE ULONG AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
492    return This->lpVtbl->AddRef(This);
493}
494static FORCEINLINE ULONG AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
495    return This->lpVtbl->Release(This);
496}
497/*** AsyncActionCompletedHandler methods ***/
498static FORCEINLINE HRESULT AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* This,IInspectable *asyncAction,AsyncStatus status) {
499    return This->lpVtbl->Invoke(This,asyncAction,status);
500}
501#endif
502#endif
503
504#endif
505
506HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
507    AsyncActionCompletedHandler* This,
508    IInspectable *asyncAction,
509    AsyncStatus status);
510void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
511    IRpcStubBuffer* This,
512    IRpcChannelBuffer* pRpcChannelBuffer,
513    PRPC_MESSAGE pRpcMessage,
514    DWORD* pdwStubPhase);
515
516#endif  /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
517
518/*****************************************************************************
519 * IAsyncOperation interface
520 */
521#ifndef __IAsyncOperation_INTERFACE_DEFINED__
522#define __IAsyncOperation_INTERFACE_DEFINED__
523
524DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
525#if defined(__cplusplus) && !defined(CINTERFACE)
526MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
527IAsyncOperation : public IAsyncInfo
528{
529    virtual HRESULT STDMETHODCALLTYPE put_Completed(
530        AsyncActionCompletedHandler *handler) = 0;
531
532    virtual HRESULT STDMETHODCALLTYPE get_Completed(
533        AsyncActionCompletedHandler **handler) = 0;
534
535    virtual IInspectable * STDMETHODCALLTYPE GetResults(
536        ) = 0;
537
538};
539#ifdef __CRT_UUID_DECL
540__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
541#endif
542#else
543typedef struct IAsyncOperationVtbl {
544    BEGIN_INTERFACE
545
546    /*** IUnknown methods ***/
547    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
548        IAsyncOperation* This,
549        REFIID riid,
550        void **ppvObject);
551
552    ULONG (STDMETHODCALLTYPE *AddRef)(
553        IAsyncOperation* This);
554
555    ULONG (STDMETHODCALLTYPE *Release)(
556        IAsyncOperation* This);
557
558    /*** IInspectable methods ***/
559    HRESULT (STDMETHODCALLTYPE *GetIids)(
560        IAsyncOperation* This,
561        ULONG *iidCount,
562        IID **iids);
563
564    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
565        IAsyncOperation* This,
566        HSTRING *className);
567
568    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
569        IAsyncOperation* This,
570        TrustLevel *trustLevel);
571
572    /*** IAsyncInfo methods ***/
573    HRESULT (STDMETHODCALLTYPE *get_Id)(
574        IAsyncOperation* This,
575        unsigned int *id);
576
577    HRESULT (STDMETHODCALLTYPE *get_Status)(
578        IAsyncOperation* This,
579        AsyncStatus *status);
580
581    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
582        IAsyncOperation* This,
583        HRESULT *errorCode);
584
585    HRESULT (STDMETHODCALLTYPE *Cancel)(
586        IAsyncOperation* This);
587
588    HRESULT (STDMETHODCALLTYPE *Close)(
589        IAsyncOperation* This);
590
591    /*** IAsyncOperation methods ***/
592    HRESULT (STDMETHODCALLTYPE *put_Completed)(
593        IAsyncOperation* This,
594        AsyncActionCompletedHandler *handler);
595
596    HRESULT (STDMETHODCALLTYPE *get_Completed)(
597        IAsyncOperation* This,
598        AsyncActionCompletedHandler **handler);
599
600    IInspectable * (STDMETHODCALLTYPE *GetResults)(
601        IAsyncOperation* This);
602
603    END_INTERFACE
604} IAsyncOperationVtbl;
605interface IAsyncOperation {
606    CONST_VTBL IAsyncOperationVtbl* lpVtbl;
607};
608
609#ifdef COBJMACROS
610#ifndef WIDL_C_INLINE_WRAPPERS
611/*** IUnknown methods ***/
612#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
613#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
614#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
615/*** IInspectable methods ***/
616#define IAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
617#define IAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
618#define IAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
619/*** IAsyncInfo methods ***/
620#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
621#define IAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
622#define IAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
623#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
624#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
625/*** IAsyncOperation methods ***/
626#define IAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
627#define IAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
628#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
629#else
630/*** IUnknown methods ***/
631static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* This,REFIID riid,void **ppvObject) {
632    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
633}
634static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
635    return This->lpVtbl->AddRef(This);
636}
637static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
638    return This->lpVtbl->Release(This);
639}
640/*** IInspectable methods ***/
641static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG *iidCount,IID **iids) {
642    return This->lpVtbl->GetIids(This,iidCount,iids);
643}
644static FORCEINLINE HRESULT IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
645    return This->lpVtbl->GetRuntimeClassName(This,className);
646}
647static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* This,TrustLevel *trustLevel) {
648    return This->lpVtbl->GetTrustLevel(This,trustLevel);
649}
650/*** IAsyncInfo methods ***/
651static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* This,unsigned int *id) {
652    return This->lpVtbl->get_Id(This,id);
653}
654static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* This,AsyncStatus *status) {
655    return This->lpVtbl->get_Status(This,status);
656}
657static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* This,HRESULT *errorCode) {
658    return This->lpVtbl->get_ErrorCode(This,errorCode);
659}
660static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
661    return This->lpVtbl->Cancel(This);
662}
663static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
664    return This->lpVtbl->Close(This);
665}
666/*** IAsyncOperation methods ***/
667static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* This,AsyncActionCompletedHandler *handler) {
668    return This->lpVtbl->put_Completed(This,handler);
669}
670static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* This,AsyncActionCompletedHandler **handler) {
671    return This->lpVtbl->get_Completed(This,handler);
672}
673static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* This) {
674    return This->lpVtbl->GetResults(This);
675}
676#endif
677#endif
678
679#endif
680
681HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
682    IAsyncOperation* This,
683    AsyncActionCompletedHandler *handler);
684void __RPC_STUB IAsyncOperation_put_Completed_Stub(
685    IRpcStubBuffer* This,
686    IRpcChannelBuffer* pRpcChannelBuffer,
687    PRPC_MESSAGE pRpcMessage,
688    DWORD* pdwStubPhase);
689HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
690    IAsyncOperation* This,
691    AsyncActionCompletedHandler **handler);
692void __RPC_STUB IAsyncOperation_get_Completed_Stub(
693    IRpcStubBuffer* This,
694    IRpcChannelBuffer* pRpcChannelBuffer,
695    PRPC_MESSAGE pRpcMessage,
696    DWORD* pdwStubPhase);
697IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
698    IAsyncOperation* This);
699void __RPC_STUB IAsyncOperation_GetResults_Stub(
700    IRpcStubBuffer* This,
701    IRpcChannelBuffer* pRpcChannelBuffer,
702    PRPC_MESSAGE pRpcMessage,
703    DWORD* pdwStubPhase);
704
705#endif  /* __IAsyncOperation_INTERFACE_DEFINED__ */
706
707/* Begin additional prototypes for all interfaces */
708
709
710/* End additional prototypes */
711
712#ifdef __cplusplus
713}
714#endif
715
716#endif /* __windows_foundation_h__ */
717