From d1a62e862ebcdd6233b694578122aac82e0b3c38 Mon Sep 17 00:00:00 2001 From: Zhiyi Zhang Date: Mon, 3 Jun 2024 15:27:09 +0800 Subject: [PATCH] include: Add some windows.applicationmodel definitions. --- dlls/windows.applicationmodel/classes.idl | 3 + include/Makefile.in | 2 + .../windows.applicationmodel.activation.idl | 198 +++++++++ .../windows.applicationmodel.background.idl | 310 ++++++++++++++ include/windows.applicationmodel.core.idl | 393 ++++++++++++++++++ include/windows.applicationmodel.idl | 105 +++++ 6 files changed, 1011 insertions(+) create mode 100644 include/windows.applicationmodel.activation.idl create mode 100644 include/windows.applicationmodel.background.idl diff --git a/dlls/windows.applicationmodel/classes.idl b/dlls/windows.applicationmodel/classes.idl index c0c706787bc..c1f76f67d2f 100644 --- a/dlls/windows.applicationmodel/classes.idl +++ b/dlls/windows.applicationmodel/classes.idl @@ -29,5 +29,8 @@ import "windows.storage.idl"; import "windows.system.idl"; #define DO_NO_IMPORTS +#define _WINDOWS_APPLICATIONMODEL #include "windows.applicationmodel.core.idl" #include "windows.applicationmodel.idl" +#include "windows.applicationmodel.activation.idl" +#include "windows.applicationmodel.background.idl" diff --git a/include/Makefile.in b/include/Makefile.in index a4a3352ce71..d52afd06926 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -826,6 +826,8 @@ SOURCES = \ windef.h \ windns.h \ windot11.h \ + windows.applicationmodel.activation.idl \ + windows.applicationmodel.background.idl \ windows.applicationmodel.core.idl \ windows.applicationmodel.idl \ windows.devices.bluetooth.idl \ diff --git a/include/windows.applicationmodel.activation.idl b/include/windows.applicationmodel.activation.idl new file mode 100644 index 00000000000..3392a5bb316 --- /dev/null +++ b/include/windows.applicationmodel.activation.idl @@ -0,0 +1,198 @@ +/* + * Copyright (C) 2024 Zhiyi Zhang for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +#ifndef DO_NO_IMPORTS +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.applicationmodel.background.idl"; +import "windows.applicationmodel.core.idl"; +import "windows.storage.idl"; +import "windows.system.idl"; +#endif + +namespace Windows.ApplicationModel.Background { + interface IBackgroundTaskInstance; + + runtimeclass BackgroundTaskRegistrationGroup; +} + +namespace Windows.ApplicationModel.Core { + runtimeclass CoreApplicationView; +} + +namespace Windows.ApplicationModel.Activation { + typedef enum ActivationKind ActivationKind; + typedef enum ApplicationExecutionState ApplicationExecutionState; + + interface IActivatedEventArgs; + interface IBackgroundActivatedEventArgs; + interface ISplashScreen; + + runtimeclass BackgroundActivatedEventArgs; + runtimeclass SplashScreen; + + declare { + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.TypedEventHandler; + interface Windows.Foundation.TypedEventHandler; + interface Windows.Foundation.TypedEventHandler; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum ActivationKind + { + Launch = 0, + Search = 1, + ShareTarget = 2, + File = 3, + Protocol = 4, + FileOpenPicker = 5, + FileSavePicker = 6, + CachedFileUpdater = 7, + ContactPicker = 8, + Device = 9, + PrintTaskSettings = 10, + CameraSettings = 11, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + RestrictedLaunch = 12, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + AppointmentsProvider = 13, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + Contact = 14, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + LockScreenCall = 15, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + VoiceCommand = 16, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + LockScreen = 17, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PickerReturned = 1000, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + WalletAction = 1001, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PickFileContinuation = 1002, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PickSaveFileContinuation = 1003, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + PickFolderContinuation = 1004, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + WebAuthenticationBrokerContinuation = 1005, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + WebAccountProvider = 1006, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + ComponentUI = 1007, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + ProtocolForResults = 1009, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + ToastNotification = 1010, + [contract(Windows.Foundation.UniversalApiContract, 2.0)] + Print3DWorkflow = 1011, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + DialReceiver = 1012, + [contract(Windows.Foundation.UniversalApiContract, 2.0)] + DevicePairing = 1013, + [contract(Windows.Foundation.UniversalApiContract, 3.0)] + UserDataAccountsProvider = 1014, + [contract(Windows.Foundation.UniversalApiContract, 3.0)] + FilePickerExperience = 1015, + [contract(Windows.Foundation.UniversalApiContract, 4.0)] + LockScreenComponent = 1016, + [contract(Windows.Foundation.UniversalApiContract, 4.0)] + ContactPanel = 1017, + [contract(Windows.Foundation.UniversalApiContract, 5.0)] + PrintWorkflowForegroundTask = 1018, + [contract(Windows.Foundation.UniversalApiContract, 5.0)] + GameUIProvider = 1019, + [contract(Windows.Foundation.UniversalApiContract, 5.0)] + StartupTask = 1020, + [contract(Windows.Foundation.UniversalApiContract, 5.0)] + CommandLineLaunch = 1021, + [contract(Windows.Foundation.UniversalApiContract, 6.0)] + BarcodeScannerProvider = 1022 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum ApplicationExecutionState + { + NotRunning = 0, + Running = 1, + Suspended = 2, + Terminated = 3, + ClosedByUser = 4 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(cf651713-cd08-4fd8-b697-a281b6544e2e) + ] + interface IActivatedEventArgs : IInspectable + { + [propget] HRESULT Kind([out, retval] Windows.ApplicationModel.Activation.ActivationKind *value); + [propget] HRESULT PreviousExecutionState([out, retval] Windows.ApplicationModel.Activation.ApplicationExecutionState *value); + [propget] HRESULT SplashScreen([out, retval] Windows.ApplicationModel.Activation.SplashScreen **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + uuid(ab14bee0-e760-440e-a91c-44796de3a92d) + ] + interface IBackgroundActivatedEventArgs : IInspectable + { + [propget] HRESULT TaskInstance([out, retval] Windows.ApplicationModel.Background.IBackgroundTaskInstance **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Activation.SplashScreen), + uuid(ca4d975c-d4d6-43f0-97c0-0833c6391c24) + ] + interface ISplashScreen : IInspectable + { + [propget] HRESULT ImageLocation([out, retval] Windows.Foundation.Rect *value); + [eventadd] HRESULT Dismissed([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *cookie); + [eventremove] HRESULT Dismissed([in] EventRegistrationToken cookie); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + marshaling_behavior(agile) + ] + runtimeclass BackgroundActivatedEventArgs + { + [default] interface Windows.ApplicationModel.Activation.IBackgroundActivatedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + runtimeclass SplashScreen + { + [default] interface Windows.ApplicationModel.Activation.ISplashScreen; + } +} diff --git a/include/windows.applicationmodel.background.idl b/include/windows.applicationmodel.background.idl new file mode 100644 index 00000000000..12780e5c9c6 --- /dev/null +++ b/include/windows.applicationmodel.background.idl @@ -0,0 +1,310 @@ +/* + * Copyright (C) 2024 Zhiyi Zhang for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +#ifndef DO_NO_IMPORTS +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.applicationmodel.activation.idl"; +import "windows.storage.idl"; +import "windows.system.idl"; +#endif + +namespace Windows.ApplicationModel.Activation { + runtimeclass BackgroundActivatedEventArgs; +} + +namespace Windows.ApplicationModel.Background { + runtimeclass BackgroundTaskRegistrationGroup; +} + +namespace Windows.ApplicationModel.Activation { + declare { + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.TypedEventHandler; + } +} + +namespace Windows.ApplicationModel.Background { + typedef enum BackgroundTaskCancellationReason BackgroundTaskCancellationReason; + + interface IBackgroundTaskCompletedEventArgs; + interface IBackgroundTaskDeferral; + interface IBackgroundTaskProgressEventArgs; + interface IBackgroundTaskInstance; + interface IBackgroundTaskRegistration; + interface IBackgroundTaskRegistration2; + interface IBackgroundTaskRegistration3; + interface IBackgroundTaskRegistrationGroup; + interface IBackgroundTaskRegistrationGroupFactory; + interface IBackgroundTaskRegistrationStatics; + interface IBackgroundTaskRegistrationStatics2; + interface IBackgroundTrigger; + + runtimeclass BackgroundTaskCompletedEventArgs; + runtimeclass BackgroundTaskDeferral; + runtimeclass BackgroundTaskProgressEventArgs; + runtimeclass BackgroundTaskRegistration; + runtimeclass BackgroundTaskRegistrationGroup; + + declare { + interface Windows.Foundation.Collections.IMapView; + interface Windows.Foundation.Collections.IMapView; + interface Windows.Foundation.Collections.IMapView; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum BackgroundTaskCancellationReason + { + Abort = 0, + Terminating = 1, + LoggingOff = 2, + ServicingUpdate = 3, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] IdleTask = 4, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] Uninstall = 5, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] ConditionLoss = 6, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] SystemPolicy = 7, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] QuietHoursEntered = 8, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] ExecutionTimeExceeded = 9, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] ResourceRevocation = 10, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] EnergySaver = 11 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(a6c4bac0-51f8-4c57-ac3f-156dd1680c4f) + ] + delegate + HRESULT BackgroundTaskCanceledEventHandler([in] Windows.ApplicationModel.Background.IBackgroundTaskInstance *sender, [in] Windows.ApplicationModel.Background.BackgroundTaskCancellationReason reason); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(5B38E929-A086-46A7-A678-439135822BCF) + ] + delegate + HRESULT BackgroundTaskCompletedEventHandler([in] Windows.ApplicationModel.Background.BackgroundTaskRegistration *sender, [in] Windows.ApplicationModel.Background.BackgroundTaskCompletedEventArgs *args); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(46e0683c-8a88-4c99-804c-76897f6277a6) + ] + delegate + HRESULT BackgroundTaskProgressEventHandler([in] Windows.ApplicationModel.Background.BackgroundTaskRegistration *sender, [in] Windows.ApplicationModel.Background.BackgroundTaskProgressEventArgs *args); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskCompletedEventArgs), + uuid(565d25cf-f209-48f4-9967-2b184f7bfbf0) + ] + interface IBackgroundTaskCompletedEventArgs : IInspectable + { + [propget] HRESULT InstanceId([out, retval] GUID *value); + HRESULT CheckResult(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskDeferral), + uuid(93cc156d-af27-4dd3-846e-24ee40cadd25) + ] + interface IBackgroundTaskDeferral : IInspectable + { + HRESULT Complete(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskProgressEventArgs), + uuid(fb1468ac-8332-4d0a-9532-03eae684da31) + ] + interface IBackgroundTaskProgressEventArgs : IInspectable + { + [propget] HRESULT InstanceId([out, retval] GUID *value); + [propget] HRESULT Progress([out, retval] UINT32 *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(865bda7a-21d8-4573-8f32-928a1b0641f6) + ] + interface IBackgroundTaskInstance : IInspectable + { + [propget] HRESULT InstanceId([out, retval] GUID *value); + [propget] HRESULT Task([out, retval] Windows.ApplicationModel.Background.BackgroundTaskRegistration **task); + [propget] HRESULT Progress([out, retval] UINT32 *value); + [propput] HRESULT Progress([in] UINT32 value); + [propget] HRESULT TriggerDetails([out, retval] IInspectable **details); + [eventadd] HRESULT Canceled([in] Windows.ApplicationModel.Background.BackgroundTaskCanceledEventHandler *handler, [out, retval] EventRegistrationToken *cookie); + [eventremove] HRESULT Canceled([in] EventRegistrationToken cookie); + [propget] HRESULT SuspendedCount([out, retval] UINT32 *value); + HRESULT GetDeferral([out, retval] Windows.ApplicationModel.Background.BackgroundTaskDeferral **deferral); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(10654cc2-a26e-43bf-8c12-1fb40dbfbfa0) + ] + interface IBackgroundTaskRegistration : IInspectable + { + [propget] HRESULT TaskId([out, retval] GUID *value); + [propget] HRESULT Name([out, retval] HSTRING *value); + [eventadd] HRESULT Progress([in] Windows.ApplicationModel.Background.BackgroundTaskProgressEventHandler *handler, [out, retval] EventRegistrationToken *cookie); + [eventremove] HRESULT Progress([in] EventRegistrationToken cookie); + [eventadd] HRESULT Completed([in] Windows.ApplicationModel.Background.BackgroundTaskCompletedEventHandler *handler, [out, retval] EventRegistrationToken *cookie); + [eventremove] HRESULT Completed([in] EventRegistrationToken cookie); + HRESULT Unregister([in] boolean cancel_task); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(6138c703-bb86-4112-afc3-7f939b166e3b) + ] + interface IBackgroundTaskRegistration2 : IInspectable + requires Windows.ApplicationModel.Background.IBackgroundTaskRegistration + { + [propget] HRESULT Trigger([out, retval] Windows.ApplicationModel.Background.IBackgroundTrigger **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + uuid(fe338195-9423-4d8b-830d-b1dd2c7badd5) + ] + interface IBackgroundTaskRegistration3 : IInspectable + requires Windows.ApplicationModel.Background.IBackgroundTaskRegistration + { + [propget] HRESULT TaskGroup([out, retval] Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup), + uuid(2ab1919a-871b-4167-8a76-055cd67b5b23) + ] + interface IBackgroundTaskRegistrationGroup : IInspectable + { + [propget] HRESULT Id([out, retval] HSTRING *value); + [propget] HRESULT Name([out, retval] HSTRING *value); + [eventadd] HRESULT BackgroundActivated([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT BackgroundActivated([in] EventRegistrationToken token); + [propget] HRESULT AllTasks([out, retval] Windows.Foundation.Collections.IMapView **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup), + uuid(83d92b69-44cf-4631-9740-03c7d8741bc5) + ] + interface IBackgroundTaskRegistrationGroupFactory : IInspectable + { + HRESULT Create([in] HSTRING id, [out, retval] Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup **group); + HRESULT CreateWithName([in] HSTRING id, [in] HSTRING name, [out, retval] Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup **group); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskRegistration), + uuid(4c542f69-b000-42ba-a093-6a563c65e3f8) + ] + interface IBackgroundTaskRegistrationStatics : IInspectable + { + [propget] HRESULT AllTasks([out, retval] Windows.Foundation.Collections.IMapView **tasks); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.ApplicationModel.Background.BackgroundTaskRegistration), + uuid(174b671e-b20d-4fa9-ad9a-e93ad6c71e01) + ] + interface IBackgroundTaskRegistrationStatics2 : IInspectable + { + [propget] HRESULT AllTaskGroups([out, retval] Windows.Foundation.Collections.IMapView **value); + HRESULT GetTaskGroup([in] HSTRING groupId, [out, retval] Windows.ApplicationModel.Background.BackgroundTaskRegistrationGroup **value); + } + + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(84b3a058-6027-4b87-9790-bdf3f757dbd7) + ] + interface IBackgroundTrigger : IInspectable + { + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BackgroundTaskCompletedEventArgs + { + [default] interface Windows.ApplicationModel.Background.IBackgroundTaskCompletedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(mta) + ] + runtimeclass BackgroundTaskDeferral + { + [default] interface Windows.ApplicationModel.Background.IBackgroundTaskDeferral; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BackgroundTaskProgressEventArgs + { + [default] interface Windows.ApplicationModel.Background.IBackgroundTaskProgressEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.ApplicationModel.Background.IBackgroundTaskRegistrationStatics, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Background.IBackgroundTaskRegistrationStatics2, Windows.Foundation.UniversalApiContract, 4.0), + threading(both) + ] + runtimeclass BackgroundTaskRegistration + { + [default] interface Windows.ApplicationModel.Background.IBackgroundTaskRegistration; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.Background.IBackgroundTaskRegistration2; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Background.IBackgroundTaskRegistration3; + } + + [ + activatable(Windows.ApplicationModel.Background.IBackgroundTaskRegistrationGroupFactory, Windows.Foundation.UniversalApiContract, 4.0), + contract(Windows.Foundation.UniversalApiContract, 4.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass BackgroundTaskRegistrationGroup + { + [default] interface Windows.ApplicationModel.Background.IBackgroundTaskRegistrationGroup; + } +} diff --git a/include/windows.applicationmodel.core.idl b/include/windows.applicationmodel.core.idl index 7a4ea85c642..4d3504ede68 100644 --- a/include/windows.applicationmodel.core.idl +++ b/include/windows.applicationmodel.core.idl @@ -25,16 +25,99 @@ import "windows.foundation.idl"; import "windows.storage.idl"; import "windows.system.idl"; import "windows.applicationmodel.idl"; +import "windows.applicationmodel.activation.idl"; +import "windows.ui.core.idl"; #endif +namespace Windows.ApplicationModel.Core { + runtimeclass CoreApplicationView; +} + +namespace Windows.ApplicationModel.Activation { + interface IActivatedEventArgs; + + runtimeclass BackgroundActivatedEventArgs; + + declare { + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.TypedEventHandler; + } +} + namespace Windows.ApplicationModel { runtimeclass AppDisplayInfo; + runtimeclass EnteredBackgroundEventArgs; + runtimeclass LeavingBackgroundEventArgs; + runtimeclass SuspendingEventArgs; + + declare { + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.EventHandler; + } +} + +namespace Windows.Foundation { + interface IGetActivationFactory; +} + +namespace Windows.UI.Core { + runtimeclass CoreDispatcher; + runtimeclass CoreWindow; } namespace Windows.ApplicationModel.Core { + typedef enum AppRestartFailureReason AppRestartFailureReason; + interface IAppListEntry; + interface ICoreApplication; + interface ICoreApplication2; + interface ICoreApplication3; + interface ICoreApplicationExit; + interface ICoreApplicationUnhandledError; + interface ICoreApplicationUseCount; + interface ICoreApplicationView; + interface ICoreApplicationView2; + interface ICoreApplicationView3; + interface ICoreApplicationView5; + interface ICoreApplicationView6; + interface ICoreApplicationViewTitleBar; + interface ICoreImmersiveApplication; + interface ICoreImmersiveApplication2; + interface ICoreImmersiveApplication3; + interface IFrameworkView; + interface IFrameworkViewSource; + interface IHostedViewClosingEventArgs; + interface IUnhandledError; + interface IUnhandledErrorDetectedEventArgs; runtimeclass AppListEntry; + runtimeclass CoreApplication; + runtimeclass CoreApplicationView; + runtimeclass CoreApplicationViewTitleBar; + runtimeclass HostedViewClosingEventArgs; + runtimeclass UnhandledError; + runtimeclass UnhandledErrorDetectedEventArgs; + + declare { + interface Windows.Foundation.AsyncOperationCompletedHandler; + interface Windows.Foundation.Collections.IVectorView; + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.IAsyncOperation; + interface Windows.Foundation.TypedEventHandler; + interface Windows.Foundation.TypedEventHandler; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0) + ] + enum AppRestartFailureReason + { + RestartPending = 0, + NotInForeground = 1, + InvalidUser = 2, + Other = 3 + }; [ contract(Windows.Foundation.UniversalApiContract, 1.0), @@ -47,6 +130,248 @@ namespace Windows.ApplicationModel.Core { HRESULT LaunchAsync([out, retval] Windows.Foundation.IAsyncOperation **operation); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(0aacf7a4-5e1d-49df-8034-fb6a68bc5ed1) + ] + interface ICoreApplication : IInspectable + { + [propget] HRESULT Id([out, retval] HSTRING *value); + [eventadd] HRESULT Suspending([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Suspending([in] EventRegistrationToken token); + [eventadd] HRESULT Resuming([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Resuming([in] EventRegistrationToken token); + [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IPropertySet **value); + HRESULT GetCurrentView([out, retval] Windows.ApplicationModel.Core.CoreApplicationView **value); + HRESULT Run([in] Windows.ApplicationModel.Core.IFrameworkViewSource *view_source); + HRESULT RunWithActivationFactories([in] Windows.Foundation.IGetActivationFactory *factory); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(998681fb-1ab6-4b7f-be4a-9a0645224c04) + ] + interface ICoreApplication2 : IInspectable + { + [eventadd] HRESULT BackgroundActivated([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT BackgroundActivated([in] EventRegistrationToken token); + [eventadd] HRESULT LeavingBackground([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT LeavingBackground([in] EventRegistrationToken token); + [eventadd] HRESULT EnteredBackground([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT EnteredBackground([in] EventRegistrationToken token); + HRESULT EnablePrelaunch([in] boolean value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(feec0d39-598b-4507-8a67-772632580a57) + ] + interface ICoreApplication3 : IInspectable + { + HRESULT RequestRestartAsync([in] HSTRING launch_arguments, [out, retval] Windows.Foundation.IAsyncOperation **operation); + HRESULT RequestRestartForUserAsync([in] Windows.System.User *user, [in] HSTRING launch_arguments, [out, retval] Windows.Foundation.IAsyncOperation **operation); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(cf86461d-261e-4b72-9acd-44ed2ace6a29) + ] + interface ICoreApplicationExit : IInspectable + { + HRESULT Exit(); + [eventadd] HRESULT Exiting([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Exiting([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(f0e24ab0-dd09-42e1-b0bc-e0e131f78d7e) + ] + interface ICoreApplicationUnhandledError : IInspectable + { + [eventadd] HRESULT UnhandledErrorDetected([in] Windows.Foundation.EventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT UnhandledErrorDetected([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(518dc408-c077-475b-809e-0bc0c57e4b74) + ] + interface ICoreApplicationUseCount : IInspectable + { + HRESULT IncrementApplicationUseCount(); + HRESULT DecrementApplicationUseCount(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView), + uuid(638bb2db-451d-4661-b099-414f34ffb9f1) + ] + interface ICoreApplicationView : IInspectable + { + [propget] HRESULT CoreWindow([out, retval] Windows.UI.Core.CoreWindow **value); + [eventadd] HRESULT Activated([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT Activated([in] EventRegistrationToken token); + [propget] HRESULT IsMain([out, retval] boolean *value); + [propget] HRESULT IsHosted([out, retval] boolean *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView), + uuid(68eb7adf-917f-48eb-9aeb-7de53e086ab1) + ] + interface ICoreApplicationView2 : IInspectable + { + [propget] HRESULT Dispatcher([out, retval] Windows.UI.Core.CoreDispatcher **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView), + uuid(07ebe1b3-a4cf-4550-ab70-b07e85330bc8) + ] + interface ICoreApplicationView3 : IInspectable + { + [propget] HRESULT IsComponent([out, retval] boolean *value); + [propget] HRESULT TitleBar([out, retval] Windows.ApplicationModel.Core.CoreApplicationViewTitleBar **value); + [eventadd] HRESULT HostedViewClosing([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT HostedViewClosing([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 4.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView), + uuid(2bc095a8-8ef0-446d-9e60-3a3e0428c671) + ] + interface ICoreApplicationView5 : IInspectable + { + [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IPropertySet **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationView), + uuid(c119d49a-0679-49ba-803f-b79c5cf34cca) + ] + interface ICoreApplicationView6 : IInspectable + { + [propget] HRESULT DispatcherQueue([out, retval] Windows.System.DispatcherQueue **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplicationViewTitleBar), + uuid(006d35e3-e1f1-431b-9508-29b96926ac53) + ] + interface ICoreApplicationViewTitleBar : IInspectable + { + [propput] HRESULT ExtendViewIntoTitleBar([in] boolean value); + [propget] HRESULT ExtendViewIntoTitleBar([out, retval] boolean *value); + [propget] HRESULT SystemOverlayLeftInset([out, retval] DOUBLE *value); + [propget] HRESULT SystemOverlayRightInset([out, retval] DOUBLE *value); + [propget] HRESULT Height([out, retval] DOUBLE *value); + [eventadd] HRESULT LayoutMetricsChanged([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT LayoutMetricsChanged([in] EventRegistrationToken token); + [propget] HRESULT IsVisible([out, retval] boolean *value); + [eventadd] HRESULT IsVisibleChanged([in] Windows.Foundation.TypedEventHandler *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT IsVisibleChanged([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(1ada0e3e-e4a2-4123-b451-dc96bf800419) + ] + interface ICoreImmersiveApplication : IInspectable + { + [propget] HRESULT Views([out, retval] Windows.Foundation.Collections.IVectorView **value); + [overload("CreateNewView"), default_overload] + HRESULT CreateNewView([in] HSTRING runtime_type, [in] HSTRING entry_point, [out, retval] Windows.ApplicationModel.Core.CoreApplicationView **view); + [propget] HRESULT MainView([out, retval] Windows.ApplicationModel.Core.CoreApplicationView **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(828e1e36-e9e3-4cfc-9b66-48b78ea9bb2c) + ] + interface ICoreImmersiveApplication2 : IInspectable + { + [overload("CreateNewView")] + HRESULT CreateNewViewFromMainView([out, retval] Windows.ApplicationModel.Core.CoreApplicationView **view); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.CoreApplication), + uuid(34a05b2f-ee0d-41e5-8314-cf10c91bf0af) + ] + interface ICoreImmersiveApplication3 : IInspectable + { + [overload("CreateNewView")] + HRESULT CreateNewViewWithViewSource([in] Windows.ApplicationModel.Core.IFrameworkViewSource *view_source, [out, retval] Windows.ApplicationModel.Core.CoreApplicationView **view); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(faab5cd0-8924-45ac-ad0f-a08fae5d0324) + ] + interface IFrameworkView : IInspectable + { + HRESULT Initialize([in] Windows.ApplicationModel.Core.CoreApplicationView *application_view); + HRESULT SetWindow([in] Windows.UI.Core.CoreWindow *window); + HRESULT Load([in] HSTRING entry_point); + HRESULT Run(); + HRESULT Uninitialize(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(cd770614-65c4-426c-9494-34fc43554862) + ] + interface IFrameworkViewSource : IInspectable + { + HRESULT CreateView([out, retval] Windows.ApplicationModel.Core.IFrameworkView **view); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.HostedViewClosingEventArgs), + uuid(d238943c-b24e-4790-acb5-3e4243c4ff87) + ] + interface IHostedViewClosingEventArgs : IInspectable + { + HRESULT GetDeferral([out, retval] Windows.Foundation.Deferral **result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.UnhandledError), + uuid(9459b726-53b5-4686-9eaf-fa8162dc3980) + ] + interface IUnhandledError : IInspectable + { + [propget] HRESULT Handled([out, retval] boolean *value); + HRESULT Propagate(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Core.UnhandledErrorDetectedEventArgs), + uuid(679ab78b-b336-4822-ac40-0d750f0b7a2b) + ] + interface IUnhandledErrorDetectedEventArgs : IInspectable + { + [propget] HRESULT UnhandledError([out, retval] Windows.ApplicationModel.Core.UnhandledError **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -59,4 +384,72 @@ namespace Windows.ApplicationModel.Core { [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.ApplicationModel.Core.IAppListEntry3; [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.ApplicationModel.Core.IAppListEntry4; } + +#ifndef _WINDOWS_APPLICATIONMODEL + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.ApplicationModel.Core.ICoreApplication, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreApplication2, Windows.Foundation.UniversalApiContract, 3.0), + static(Windows.ApplicationModel.Core.ICoreApplication3, Windows.Foundation.UniversalApiContract, 5.0), + static(Windows.ApplicationModel.Core.ICoreApplicationExit, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreApplicationUnhandledError, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreApplicationUseCount, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreImmersiveApplication, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreImmersiveApplication2, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.ApplicationModel.Core.ICoreImmersiveApplication3, Windows.Foundation.UniversalApiContract, 1.0) + ] + runtimeclass CoreApplication + { + } +#endif + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(standard) + ] + runtimeclass CoreApplicationView + { + [default] interface Windows.ApplicationModel.Core.ICoreApplicationView; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView3; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView5; + [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.ApplicationModel.Core.ICoreApplicationView6; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(standard) + ] + runtimeclass CoreApplicationViewTitleBar + { + [default] interface Windows.ApplicationModel.Core.ICoreApplicationViewTitleBar; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass HostedViewClosingEventArgs + { + [default] interface Windows.ApplicationModel.Core.IHostedViewClosingEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass UnhandledError + { + [default] interface Windows.ApplicationModel.Core.IUnhandledError; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass UnhandledErrorDetectedEventArgs + { + [default] interface Windows.ApplicationModel.Core.IUnhandledErrorDetectedEventArgs; + } } diff --git a/include/windows.applicationmodel.idl b/include/windows.applicationmodel.idl index dfb22d5c371..3d6f4c60d0f 100644 --- a/include/windows.applicationmodel.idl +++ b/include/windows.applicationmodel.idl @@ -24,6 +24,7 @@ import "windows.foundation.idl"; import "windows.storage.idl"; import "windows.system.idl"; +import "windows.applicationmodel.activation.idl"; import "windows.applicationmodel.core.idl"; #endif @@ -35,6 +36,8 @@ namespace Windows.ApplicationModel { typedef struct PackageVersion PackageVersion; interface IAppDisplayInfo; + interface IEnteredBackgroundEventArgs; + interface ILeavingBackgroundEventArgs; interface IPackage; interface IPackage2; interface IPackage3; @@ -42,17 +45,28 @@ namespace Windows.ApplicationModel { interface IPackageId; interface IPackageIdWithMetadata; interface IPackageStatics; + interface ISuspendingDeferral; + interface ISuspendingEventArgs; + interface ISuspendingOperation; runtimeclass AppDisplayInfo; + runtimeclass EnteredBackgroundEventArgs; + runtimeclass LeavingBackgroundEventArgs; runtimeclass Package; runtimeclass PackageId; runtimeclass PackageStatus; + runtimeclass SuspendingDeferral; + runtimeclass SuspendingEventArgs; + runtimeclass SuspendingOperation; declare { interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IVectorView; interface Windows.Foundation.Collections.IVectorView; + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.EventHandler; + interface Windows.Foundation.EventHandler; interface Windows.Foundation.IAsyncOperation *>; interface Windows.Foundation.AsyncOperationCompletedHandler *>; } @@ -80,6 +94,24 @@ namespace Windows.ApplicationModel { HRESULT GetLogo([in] Windows.Foundation.Size size, [out, retval] Windows.Storage.Streams.RandomAccessStreamReference **value); } + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + uuid(f722dcc2-9827-403d-aaed-ecca9ac17398) + ] + interface IEnteredBackgroundEventArgs : IInspectable + { + HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + uuid(39c6ec9a-ae6e-46f9-a07a-cfc23f88733e) + ] + interface ILeavingBackgroundEventArgs : IInspectable + { + HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.ApplicationModel.Package), @@ -180,6 +212,34 @@ namespace Windows.ApplicationModel { [propget] HRESULT Current([out, retval] Windows.ApplicationModel.Package **value); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(59140509-8bc9-4eb4-b636-dabdc4f46f66) + ] + interface ISuspendingDeferral : IInspectable + { + HRESULT Complete(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(96061c05-2dba-4d08-b0bd-2b30a131c6aa) + ] + interface ISuspendingEventArgs : IInspectable + { + [propget] HRESULT SuspendingOperation([out, retval] Windows.ApplicationModel.SuspendingOperation **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(9da4ca41-20e1-4e9b-9f65-a9f435340c3a) + ] + interface ISuspendingOperation : IInspectable + { + HRESULT GetDeferral([out, retval] Windows.ApplicationModel.SuspendingDeferral **deferral); + [propget] HRESULT Deadline([out, retval] Windows.Foundation.DateTime *value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -190,6 +250,24 @@ namespace Windows.ApplicationModel { [default] interface Windows.ApplicationModel.IAppDisplayInfo; } + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + marshaling_behavior(agile) + ] + runtimeclass EnteredBackgroundEventArgs + { + [default] interface Windows.ApplicationModel.IEnteredBackgroundEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 3.0), + marshaling_behavior(agile) + ] + runtimeclass LeavingBackgroundEventArgs + { + [default] interface Windows.ApplicationModel.ILeavingBackgroundEventArgs; + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -228,4 +306,31 @@ namespace Windows.ApplicationModel { [default] interface Windows.ApplicationModel.IPackageId; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackageIdWithMetadata; } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass SuspendingDeferral + { + [default] interface Windows.ApplicationModel.ISuspendingDeferral; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass SuspendingEventArgs + { + [default] interface Windows.ApplicationModel.ISuspendingEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass SuspendingOperation + { + [default] interface Windows.ApplicationModel.ISuspendingOperation; + } }