| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| #ifdef __WIDL__ |
| #pragma winrt ns_prefix |
| #endif |
| |
| import "inspectable.idl"; |
| import "windowscontracts.idl"; |
| import "windows.foundation.collections.idl"; |
| |
| namespace Windows { |
| namespace Foundation { |
| interface IAsyncInfo; |
| interface IAsyncAction; |
| interface IAsyncOperation; |
| interface AsyncActionCompletedHandler; // delegate |
| interface TypedEventHandler; // delegate |
| struct DateTime; |
| struct EventRegistrationToken; |
| |
| namespace Collections { |
| interface IPropertySet; |
| } |
| } |
| } |
| |
| namespace Windows { |
| namespace Foundation { |
| typedef enum AsyncStatus { |
| Started, |
| Completed, |
| Canceled, |
| Error |
| } AsyncStatus; |
| |
| typedef struct DateTime { |
| UINT64 UniversalTime; |
| } DateTime; |
| |
| typedef struct EventRegistrationToken { |
| UINT64 Value; |
| } EventRegistrationToken; |
| |
| [uuid(00000036-0000-0000-C000-000000000046)] |
| interface IAsyncInfo : IInspectable |
| { |
| [propget] HRESULT Id(unsigned int *id); |
| [propget] HRESULT Status(AsyncStatus *status); |
| [propget] HRESULT ErrorCode(HRESULT *errorCode); |
| HRESULT Cancel(); |
| HRESULT Close(); |
| } |
| |
| [uuid(5A648006-843A-4DA9-865B-9D26E5DFAD7B)] |
| interface IASyncAction : IAsyncInfo { |
| [propput] HRESULT Completed(AsyncActionCompletedHandler* handler); |
| [propget] HRESULT Completed(AsyncActionCompletedHandler** handler); |
| HRESULT GetResults(); |
| } |
| |
| [uuid(A4ED5C81-76C9-40BD-8BE6-B1D90FB20AE7)] |
| interface AsyncActionCompletedHandler : IUnknown { |
| //FIXME: should support cyclic dependency |
| HRESULT Invoke(IAsyncAction *asyncAction, AsyncStatus status); |
| } |
| |
| //FIXME: WHERE IS IT? |
| //generic <typename TResult> |
| [uuid("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")] |
| interface IAsyncOperation : IAsyncInfo { |
| [propput] HRESULT Completed(AsyncActionCompletedHandler* handler); |
| [propget] HRESULT Completed(AsyncActionCompletedHandler** handler); |
| //FIXME: implement generics |
| /*TResult*/ IInspectable* GetResults(); |
| } |
| |
| |
| namespace Collections { |
| //interface IVectorView; |
| /*[uuid(8A43ED9F-F4E6-4421-ACF9-1DAB2986820C)] |
| interface IPropertySet : IInspectable { |
| // |
| }*/ |
| } |
| } |
| } |