Imported Upstream version 2.73.3
[platform/upstream/glib.git] / gio / gwin32api-application-activation-manager.h
1 /*
2  * SPDX-FileCopyrightText: This file has no copyright assigned and is placed in the Public Domain.
3  * SPDX-License-Identifier: CC0-1.0
4  *
5  * This file is part of the w64 mingw-runtime package.
6  * No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD.
7  */
8
9 #if NTDDI_VERSION < NTDDI_WIN8
10 /* The following code is copied verbatim from MinGW-w64 shobjidl.h */
11 /*
12  * IApplicationActivationManager interface
13  */
14 typedef enum ACTIVATEOPTIONS {
15     AO_NONE = 0x0,
16     AO_DESIGNMODE = 0x1,
17     AO_NOERRORUI = 0x2,
18     AO_NOSPLASHSCREEN = 0x4
19 } ACTIVATEOPTIONS;
20
21 DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
22
23 #ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
24 #define __IApplicationActivationManager_INTERFACE_DEFINED__
25
26 DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
27 #if defined(__cplusplus) && !defined(CINTERFACE)
28 MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
29 IApplicationActivationManager : public IUnknown
30 {
31     virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
32         LPCWSTR appUserModelId,
33         LPCWSTR arguments,
34         ACTIVATEOPTIONS options,
35         DWORD *processId) = 0;
36
37     virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
38         LPCWSTR appUserModelId,
39         IShellItemArray *itemArray,
40         LPCWSTR verb,
41         DWORD *processId) = 0;
42
43     virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
44         LPCWSTR appUserModelId,
45         IShellItemArray *itemArray,
46         DWORD *processId) = 0;
47
48 };
49 #ifdef __CRT_UUID_DECL
50 __CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
51 #endif
52 #else
53 typedef struct IApplicationActivationManagerVtbl {
54     BEGIN_INTERFACE
55
56     /*** IUnknown methods ***/
57     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
58         IApplicationActivationManager *This,
59         REFIID riid,
60         void **ppvObject);
61
62     ULONG (STDMETHODCALLTYPE *AddRef)(
63         IApplicationActivationManager *This);
64
65     ULONG (STDMETHODCALLTYPE *Release)(
66         IApplicationActivationManager *This);
67
68     /*** IApplicationActivationManager methods ***/
69     HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
70         IApplicationActivationManager *This,
71         LPCWSTR appUserModelId,
72         LPCWSTR arguments,
73         ACTIVATEOPTIONS options,
74         DWORD *processId);
75
76     HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
77         IApplicationActivationManager *This,
78         LPCWSTR appUserModelId,
79         IShellItemArray *itemArray,
80         LPCWSTR verb,
81         DWORD *processId);
82
83     HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
84         IApplicationActivationManager *This,
85         LPCWSTR appUserModelId,
86         IShellItemArray *itemArray,
87         DWORD *processId);
88
89     END_INTERFACE
90 } IApplicationActivationManagerVtbl;
91
92 interface IApplicationActivationManager {
93     CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
94 };
95
96 #ifdef COBJMACROS
97 #ifndef WIDL_C_INLINE_WRAPPERS
98 /*** IUnknown methods ***/
99 #define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
100 #define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
101 #define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
102 /*** IApplicationActivationManager methods ***/
103 #define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
104 #define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
105 #define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
106 #else
107 /*** IUnknown methods ***/
108 static FORCEINLINE HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
109     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
110 }
111 static FORCEINLINE ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
112     return This->lpVtbl->AddRef(This);
113 }
114 static FORCEINLINE ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
115     return This->lpVtbl->Release(This);
116 }
117 /*** IApplicationActivationManager methods ***/
118 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
119     return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
120 }
121 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
122     return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
123 }
124 static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
125     return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
126 }
127 #endif
128 #endif
129
130 #endif
131
132
133 #endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
134 #endif /* NTDDI_VERSION < NTDDI_WIN8 */