1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
8 #endif
9 
10 #include "rpc.h"
11 #include "rpcndr.h"
12 
13 #ifndef __RPCNDR_H_VERSION__
14 #error This stub requires an updated version of <rpcndr.h>
15 #endif
16 
17 #ifndef COM_NO_WINDOWS_H
18 #include "windows.h"
19 #include "ole2.h"
20 #endif
21 
22 #ifndef __shappmgr_h__
23 #define __shappmgr_h__
24 
25 #ifndef __IShellApp_FWD_DEFINED__
26 #define __IShellApp_FWD_DEFINED__
27 typedef struct IShellApp IShellApp;
28 #endif
29 
30 #ifndef __IPublishedApp_FWD_DEFINED__
31 #define __IPublishedApp_FWD_DEFINED__
32 typedef struct IPublishedApp IPublishedApp;
33 #endif
34 
35 #ifndef __IEnumPublishedApps_FWD_DEFINED__
36 #define __IEnumPublishedApps_FWD_DEFINED__
37 typedef struct IEnumPublishedApps IEnumPublishedApps;
38 #endif
39 
40 #ifndef __IAppPublisher_FWD_DEFINED__
41 #define __IAppPublisher_FWD_DEFINED__
42 typedef struct IAppPublisher IAppPublisher;
43 #endif
44 
45 #include "oaidl.h"
46 #include "ocidl.h"
47 #include "appmgmt.h"
48 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
53 #ifndef __MIDL_user_allocate_free_DEFINED__
54 #define __MIDL_user_allocate_free_DEFINED__
55   void *__RPC_API MIDL_user_allocate(size_t);
56   void __RPC_API MIDL_user_free(void *);
57 #endif
58 
59 #ifndef _SHAPPMGR_H_
60 #define _SHAPPMGR_H_
61 
62   extern RPC_IF_HANDLE __MIDL_itf_shappmgr_0000_v0_0_c_ifspec;
63   extern RPC_IF_HANDLE __MIDL_itf_shappmgr_0000_v0_0_s_ifspec;
64 
65 #ifndef __IShellApp_INTERFACE_DEFINED__
66 #define __IShellApp_INTERFACE_DEFINED__
67   typedef enum _tagAppInfoFlags {
68     AIM_DISPLAYNAME = 0x1,AIM_VERSION = 0x2,AIM_PUBLISHER = 0x4,AIM_PRODUCTID = 0x8,AIM_REGISTEREDOWNER = 0x10,AIM_REGISTEREDCOMPANY = 0x20,
69     AIM_LANGUAGE = 0x40,AIM_SUPPORTURL = 0x80,AIM_SUPPORTTELEPHONE = 0x100,AIM_HELPLINK = 0x200,AIM_INSTALLLOCATION = 0x400,AIM_INSTALLSOURCE = 0x800,
70     AIM_INSTALLDATE = 0x1000,AIM_CONTACT = 0x4000,AIM_COMMENTS = 0x8000,AIM_IMAGE = 0x20000,AIM_READMEURL = 0x40000,AIM_UPDATEINFOURL = 0x80000
71   } APPINFODATAFLAGS;
72 
73   typedef struct _AppInfoData {
74     DWORD cbSize;
75     DWORD dwMask;
76     LPWSTR pszDisplayName;
77     LPWSTR pszVersion;
78     LPWSTR pszPublisher;
79     LPWSTR pszProductID;
80     LPWSTR pszRegisteredOwner;
81     LPWSTR pszRegisteredCompany;
82     LPWSTR pszLanguage;
83     LPWSTR pszSupportUrl;
84     LPWSTR pszSupportTelephone;
85     LPWSTR pszHelpLink;
86     LPWSTR pszInstallLocation;
87     LPWSTR pszInstallSource;
88     LPWSTR pszInstallDate;
89     LPWSTR pszContact;
90     LPWSTR pszComments;
91     LPWSTR pszImage;
92     LPWSTR pszReadmeUrl;
93     LPWSTR pszUpdateInfoUrl;
94   } APPINFODATA;
95 
96   typedef struct _AppInfoData *PAPPINFODATA;
97 
98   typedef enum _tagAppActionFlags {
99     APPACTION_INSTALL = 0x1,APPACTION_UNINSTALL = 0x2,APPACTION_MODIFY = 0x4,APPACTION_REPAIR = 0x8,APPACTION_UPGRADE = 0x10,
100     APPACTION_CANGETSIZE = 0x20,APPACTION_MODIFYREMOVE = 0x80,APPACTION_ADDLATER = 0x100,APPACTION_UNSCHEDULE = 0x200
101   } APPACTIONFLAGS;
102 
103   typedef struct _tagSlowAppInfo {
104     ULONGLONG ullSize;
105     FILETIME ftLastUsed;
106     int iTimesUsed;
107     LPWSTR pszImage;
108   } SLOWAPPINFO;
109 
110   typedef struct _tagSlowAppInfo *PSLOWAPPINFO;
111 
112   EXTERN_C const IID IID_IShellApp;
113 #if defined(__cplusplus) && !defined(CINTERFACE)
114   struct IShellApp : public IUnknown {
115   public:
116     virtual HRESULT WINAPI GetAppInfo(PAPPINFODATA pai) = 0;
117     virtual HRESULT WINAPI GetPossibleActions(DWORD *pdwActions) = 0;
118     virtual HRESULT WINAPI GetSlowAppInfo(PSLOWAPPINFO psaid) = 0;
119     virtual HRESULT WINAPI GetCachedSlowAppInfo(PSLOWAPPINFO psaid) = 0;
120     virtual HRESULT WINAPI IsInstalled(void) = 0;
121   };
122 #else
123   typedef struct IShellAppVtbl {
124     BEGIN_INTERFACE
125       HRESULT (WINAPI *QueryInterface)(IShellApp *This,REFIID riid,void **ppvObject);
126       ULONG (WINAPI *AddRef)(IShellApp *This);
127       ULONG (WINAPI *Release)(IShellApp *This);
128       HRESULT (WINAPI *GetAppInfo)(IShellApp *This,PAPPINFODATA pai);
129       HRESULT (WINAPI *GetPossibleActions)(IShellApp *This,DWORD *pdwActions);
130       HRESULT (WINAPI *GetSlowAppInfo)(IShellApp *This,PSLOWAPPINFO psaid);
131       HRESULT (WINAPI *GetCachedSlowAppInfo)(IShellApp *This,PSLOWAPPINFO psaid);
132       HRESULT (WINAPI *IsInstalled)(IShellApp *This);
133     END_INTERFACE
134   } IShellAppVtbl;
135   struct IShellApp {
136     CONST_VTBL struct IShellAppVtbl *lpVtbl;
137   };
138 #ifdef COBJMACROS
139 #define IShellApp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
140 #define IShellApp_AddRef(This) (This)->lpVtbl->AddRef(This)
141 #define IShellApp_Release(This) (This)->lpVtbl->Release(This)
142 #define IShellApp_GetAppInfo(This,pai) (This)->lpVtbl->GetAppInfo(This,pai)
143 #define IShellApp_GetPossibleActions(This,pdwActions) (This)->lpVtbl->GetPossibleActions(This,pdwActions)
144 #define IShellApp_GetSlowAppInfo(This,psaid) (This)->lpVtbl->GetSlowAppInfo(This,psaid)
145 #define IShellApp_GetCachedSlowAppInfo(This,psaid) (This)->lpVtbl->GetCachedSlowAppInfo(This,psaid)
146 #define IShellApp_IsInstalled(This) (This)->lpVtbl->IsInstalled(This)
147 #endif
148 #endif
149   HRESULT WINAPI IShellApp_GetAppInfo_Proxy(IShellApp *This,PAPPINFODATA pai);
150   void __RPC_STUB IShellApp_GetAppInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
151   HRESULT WINAPI IShellApp_GetPossibleActions_Proxy(IShellApp *This,DWORD *pdwActions);
152   void __RPC_STUB IShellApp_GetPossibleActions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
153   HRESULT WINAPI IShellApp_GetSlowAppInfo_Proxy(IShellApp *This,PSLOWAPPINFO psaid);
154   void __RPC_STUB IShellApp_GetSlowAppInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
155   HRESULT WINAPI IShellApp_GetCachedSlowAppInfo_Proxy(IShellApp *This,PSLOWAPPINFO psaid);
156   void __RPC_STUB IShellApp_GetCachedSlowAppInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
157   HRESULT WINAPI IShellApp_IsInstalled_Proxy(IShellApp *This);
158   void __RPC_STUB IShellApp_IsInstalled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
159 #endif
160 
161 #ifndef __IPublishedApp_INTERFACE_DEFINED__
162 #define __IPublishedApp_INTERFACE_DEFINED__
163   typedef enum _tagPublishedAppInfoFlags {
164     PAI_SOURCE = 0x1,PAI_ASSIGNEDTIME = 0x2,PAI_PUBLISHEDTIME = 0x4,PAI_SCHEDULEDTIME = 0x8,PAI_EXPIRETIME = 0x10
165   } PUBAPPINFOFLAGS;
166 
167   typedef struct _PubAppInfo {
168     DWORD cbSize;
169     DWORD dwMask;
170     LPWSTR pszSource;
171     SYSTEMTIME stAssigned;
172     SYSTEMTIME stPublished;
173     SYSTEMTIME stScheduled;
174     SYSTEMTIME stExpire;
175   } PUBAPPINFO;
176 
177   typedef struct _PubAppInfo *PPUBAPPINFO;
178 
179   EXTERN_C const IID IID_IPublishedApp;
180 #if defined(__cplusplus) && !defined(CINTERFACE)
181   struct IPublishedApp : public IShellApp {
182   public:
183     virtual HRESULT WINAPI Install(LPSYSTEMTIME pstInstall) = 0;
184     virtual HRESULT WINAPI GetPublishedAppInfo(PPUBAPPINFO ppai) = 0;
185     virtual HRESULT WINAPI Unschedule(void) = 0;
186   };
187 #else
188   typedef struct IPublishedAppVtbl {
189     BEGIN_INTERFACE
190       HRESULT (WINAPI *QueryInterface)(IPublishedApp *This,REFIID riid,void **ppvObject);
191       ULONG (WINAPI *AddRef)(IPublishedApp *This);
192       ULONG (WINAPI *Release)(IPublishedApp *This);
193       HRESULT (WINAPI *GetAppInfo)(IPublishedApp *This,PAPPINFODATA pai);
194       HRESULT (WINAPI *GetPossibleActions)(IPublishedApp *This,DWORD *pdwActions);
195       HRESULT (WINAPI *GetSlowAppInfo)(IPublishedApp *This,PSLOWAPPINFO psaid);
196       HRESULT (WINAPI *GetCachedSlowAppInfo)(IPublishedApp *This,PSLOWAPPINFO psaid);
197       HRESULT (WINAPI *IsInstalled)(IPublishedApp *This);
198       HRESULT (WINAPI *Install)(IPublishedApp *This,LPSYSTEMTIME pstInstall);
199       HRESULT (WINAPI *GetPublishedAppInfo)(IPublishedApp *This,PPUBAPPINFO ppai);
200       HRESULT (WINAPI *Unschedule)(IPublishedApp *This);
201     END_INTERFACE
202   } IPublishedAppVtbl;
203   struct IPublishedApp {
204     CONST_VTBL struct IPublishedAppVtbl *lpVtbl;
205   };
206 #ifdef COBJMACROS
207 #define IPublishedApp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
208 #define IPublishedApp_AddRef(This) (This)->lpVtbl->AddRef(This)
209 #define IPublishedApp_Release(This) (This)->lpVtbl->Release(This)
210 #define IPublishedApp_GetAppInfo(This,pai) (This)->lpVtbl->GetAppInfo(This,pai)
211 #define IPublishedApp_GetPossibleActions(This,pdwActions) (This)->lpVtbl->GetPossibleActions(This,pdwActions)
212 #define IPublishedApp_GetSlowAppInfo(This,psaid) (This)->lpVtbl->GetSlowAppInfo(This,psaid)
213 #define IPublishedApp_GetCachedSlowAppInfo(This,psaid) (This)->lpVtbl->GetCachedSlowAppInfo(This,psaid)
214 #define IPublishedApp_IsInstalled(This) (This)->lpVtbl->IsInstalled(This)
215 #define IPublishedApp_Install(This,pstInstall) (This)->lpVtbl->Install(This,pstInstall)
216 #define IPublishedApp_GetPublishedAppInfo(This,ppai) (This)->lpVtbl->GetPublishedAppInfo(This,ppai)
217 #define IPublishedApp_Unschedule(This) (This)->lpVtbl->Unschedule(This)
218 #endif
219 #endif
220   HRESULT WINAPI IPublishedApp_Install_Proxy(IPublishedApp *This,LPSYSTEMTIME pstInstall);
221   void __RPC_STUB IPublishedApp_Install_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
222   HRESULT WINAPI IPublishedApp_GetPublishedAppInfo_Proxy(IPublishedApp *This,PPUBAPPINFO ppai);
223   void __RPC_STUB IPublishedApp_GetPublishedAppInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
224   HRESULT WINAPI IPublishedApp_Unschedule_Proxy(IPublishedApp *This);
225   void __RPC_STUB IPublishedApp_Unschedule_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
226 #endif
227 
228 #ifndef __IEnumPublishedApps_INTERFACE_DEFINED__
229 #define __IEnumPublishedApps_INTERFACE_DEFINED__
230   EXTERN_C const IID IID_IEnumPublishedApps;
231 #if defined(__cplusplus) && !defined(CINTERFACE)
232   struct IEnumPublishedApps : public IUnknown {
233   public:
234     virtual HRESULT WINAPI Next(IPublishedApp **pia) = 0;
235     virtual HRESULT WINAPI Reset(void) = 0;
236   };
237 #else
238   typedef struct IEnumPublishedAppsVtbl {
239     BEGIN_INTERFACE
240       HRESULT (WINAPI *QueryInterface)(IEnumPublishedApps *This,REFIID riid,void **ppvObject);
241       ULONG (WINAPI *AddRef)(IEnumPublishedApps *This);
242       ULONG (WINAPI *Release)(IEnumPublishedApps *This);
243       HRESULT (WINAPI *Next)(IEnumPublishedApps *This,IPublishedApp **pia);
244       HRESULT (WINAPI *Reset)(IEnumPublishedApps *This);
245     END_INTERFACE
246   } IEnumPublishedAppsVtbl;
247   struct IEnumPublishedApps {
248     CONST_VTBL struct IEnumPublishedAppsVtbl *lpVtbl;
249   };
250 #ifdef COBJMACROS
251 #define IEnumPublishedApps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
252 #define IEnumPublishedApps_AddRef(This) (This)->lpVtbl->AddRef(This)
253 #define IEnumPublishedApps_Release(This) (This)->lpVtbl->Release(This)
254 #define IEnumPublishedApps_Next(This,pia) (This)->lpVtbl->Next(This,pia)
255 #define IEnumPublishedApps_Reset(This) (This)->lpVtbl->Reset(This)
256 #endif
257 #endif
258   HRESULT WINAPI IEnumPublishedApps_Next_Proxy(IEnumPublishedApps *This,IPublishedApp **pia);
259   void __RPC_STUB IEnumPublishedApps_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
260   HRESULT WINAPI IEnumPublishedApps_Reset_Proxy(IEnumPublishedApps *This);
261   void __RPC_STUB IEnumPublishedApps_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
262 #endif
263 
264 #ifndef __IAppPublisher_INTERFACE_DEFINED__
265 #define __IAppPublisher_INTERFACE_DEFINED__
266   EXTERN_C const IID IID_IAppPublisher;
267 #if defined(__cplusplus) && !defined(CINTERFACE)
268   struct IAppPublisher : public IUnknown {
269   public:
270     virtual HRESULT WINAPI GetNumberOfCategories(DWORD *pdwCat) = 0;
271     virtual HRESULT WINAPI GetCategories(APPCATEGORYINFOLIST *pAppCategoryList) = 0;
272     virtual HRESULT WINAPI GetNumberOfApps(DWORD *pdwApps) = 0;
273     virtual HRESULT WINAPI EnumApps(GUID *pAppCategoryId,IEnumPublishedApps **ppepa) = 0;
274   };
275 #else
276   typedef struct IAppPublisherVtbl {
277     BEGIN_INTERFACE
278       HRESULT (WINAPI *QueryInterface)(IAppPublisher *This,REFIID riid,void **ppvObject);
279       ULONG (WINAPI *AddRef)(IAppPublisher *This);
280       ULONG (WINAPI *Release)(IAppPublisher *This);
281       HRESULT (WINAPI *GetNumberOfCategories)(IAppPublisher *This,DWORD *pdwCat);
282       HRESULT (WINAPI *GetCategories)(IAppPublisher *This,APPCATEGORYINFOLIST *pAppCategoryList);
283       HRESULT (WINAPI *GetNumberOfApps)(IAppPublisher *This,DWORD *pdwApps);
284       HRESULT (WINAPI *EnumApps)(IAppPublisher *This,GUID *pAppCategoryId,IEnumPublishedApps **ppepa);
285     END_INTERFACE
286   } IAppPublisherVtbl;
287   struct IAppPublisher {
288     CONST_VTBL struct IAppPublisherVtbl *lpVtbl;
289   };
290 #ifdef COBJMACROS
291 #define IAppPublisher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
292 #define IAppPublisher_AddRef(This) (This)->lpVtbl->AddRef(This)
293 #define IAppPublisher_Release(This) (This)->lpVtbl->Release(This)
294 #define IAppPublisher_GetNumberOfCategories(This,pdwCat) (This)->lpVtbl->GetNumberOfCategories(This,pdwCat)
295 #define IAppPublisher_GetCategories(This,pAppCategoryList) (This)->lpVtbl->GetCategories(This,pAppCategoryList)
296 #define IAppPublisher_GetNumberOfApps(This,pdwApps) (This)->lpVtbl->GetNumberOfApps(This,pdwApps)
297 #define IAppPublisher_EnumApps(This,pAppCategoryId,ppepa) (This)->lpVtbl->EnumApps(This,pAppCategoryId,ppepa)
298 #endif
299 #endif
300   HRESULT WINAPI IAppPublisher_GetNumberOfCategories_Proxy(IAppPublisher *This,DWORD *pdwCat);
301   void __RPC_STUB IAppPublisher_GetNumberOfCategories_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
302   HRESULT WINAPI IAppPublisher_GetCategories_Proxy(IAppPublisher *This,APPCATEGORYINFOLIST *pAppCategoryList);
303   void __RPC_STUB IAppPublisher_GetCategories_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
304   HRESULT WINAPI IAppPublisher_GetNumberOfApps_Proxy(IAppPublisher *This,DWORD *pdwApps);
305   void __RPC_STUB IAppPublisher_GetNumberOfApps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
306   HRESULT WINAPI IAppPublisher_EnumApps_Proxy(IAppPublisher *This,GUID *pAppCategoryId,IEnumPublishedApps **ppepa);
307   void __RPC_STUB IAppPublisher_EnumApps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
308 #endif
309 #endif
310 
311   extern RPC_IF_HANDLE __MIDL_itf_shappmgr_0266_v0_0_c_ifspec;
312   extern RPC_IF_HANDLE __MIDL_itf_shappmgr_0266_v0_0_s_ifspec;
313 
314 #ifdef __cplusplus
315 }
316 #endif
317 #endif
318