177 lines
4.9 KiB
Plaintext
177 lines
4.9 KiB
Plaintext
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
cpp_quote("#ifndef _SHAPPMGR_H_")
|
||
|
cpp_quote("#define _SHAPPMGR_H_")
|
||
|
|
||
|
|
||
|
//
|
||
|
// shappmgr.idl : IDL source for shappmgr.h
|
||
|
//
|
||
|
import "oaidl.idl";
|
||
|
import "ocidl.idl";
|
||
|
import "appmgmt.h";
|
||
|
|
||
|
//
|
||
|
// IShellApp interface
|
||
|
//
|
||
|
[
|
||
|
uuid(A3E14960-935F-11D1-B8B8-006008059382), // IID_IShellApp
|
||
|
object
|
||
|
]
|
||
|
interface IShellApp : IUnknown
|
||
|
{
|
||
|
typedef enum _tagAppInfoFlags {
|
||
|
AIM_DISPLAYNAME = 0x00000001,
|
||
|
AIM_VERSION = 0x00000002,
|
||
|
AIM_PUBLISHER = 0x00000004,
|
||
|
AIM_PRODUCTID = 0x00000008,
|
||
|
AIM_REGISTEREDOWNER = 0x00000010,
|
||
|
AIM_REGISTEREDCOMPANY = 0x00000020,
|
||
|
AIM_LANGUAGE = 0x00000040,
|
||
|
AIM_SUPPORTURL = 0x00000080,
|
||
|
AIM_SUPPORTTELEPHONE = 0x00000100,
|
||
|
AIM_HELPLINK = 0x00000200,
|
||
|
AIM_INSTALLLOCATION = 0x00000400,
|
||
|
AIM_INSTALLSOURCE = 0x00000800,
|
||
|
AIM_INSTALLDATE = 0x00001000,
|
||
|
// AIM_REQUIREDBYPOLICY = 0x00002000, Obsolete. Do not reuse.
|
||
|
AIM_CONTACT = 0x00004000,
|
||
|
AIM_COMMENTS = 0x00008000,
|
||
|
AIM_IMAGE = 0x00020000,
|
||
|
AIM_READMEURL = 0x00040000,
|
||
|
AIM_UPDATEINFOURL = 0x00080000
|
||
|
} APPINFODATAFLAGS;
|
||
|
|
||
|
typedef struct _AppInfoData {
|
||
|
DWORD cbSize;
|
||
|
DWORD dwMask; // APPINFODATAFLAGS, IN/OUT
|
||
|
LPWSTR pszDisplayName;
|
||
|
LPWSTR pszVersion;
|
||
|
LPWSTR pszPublisher;
|
||
|
LPWSTR pszProductID;
|
||
|
LPWSTR pszRegisteredOwner;
|
||
|
LPWSTR pszRegisteredCompany;
|
||
|
LPWSTR pszLanguage;
|
||
|
LPWSTR pszSupportUrl;
|
||
|
LPWSTR pszSupportTelephone;
|
||
|
LPWSTR pszHelpLink;
|
||
|
LPWSTR pszInstallLocation;
|
||
|
LPWSTR pszInstallSource;
|
||
|
LPWSTR pszInstallDate;
|
||
|
LPWSTR pszContact;
|
||
|
LPWSTR pszComments;
|
||
|
LPWSTR pszImage;
|
||
|
LPWSTR pszReadmeUrl;
|
||
|
LPWSTR pszUpdateInfoUrl;
|
||
|
} APPINFODATA, *PAPPINFODATA;
|
||
|
|
||
|
HRESULT GetAppInfo([in, out] PAPPINFODATA pai);
|
||
|
|
||
|
typedef enum _tagAppActionFlags {
|
||
|
APPACTION_INSTALL = 0x00000001,
|
||
|
APPACTION_UNINSTALL = 0x00000002,
|
||
|
APPACTION_MODIFY = 0x00000004,
|
||
|
APPACTION_REPAIR = 0x00000008,
|
||
|
APPACTION_UPGRADE = 0x00000010,
|
||
|
APPACTION_CANGETSIZE = 0x00000020,
|
||
|
APPACTION_MODIFYREMOVE = 0x00000080,
|
||
|
APPACTION_ADDLATER = 0x00000100,
|
||
|
APPACTION_UNSCHEDULE = 0x00000200
|
||
|
} APPACTIONFLAGS;
|
||
|
|
||
|
HRESULT GetPossibleActions([out] DWORD * pdwActions);
|
||
|
//
|
||
|
// Synchronously obtains the slow info for the app. This method call
|
||
|
// can be very slow.
|
||
|
//
|
||
|
typedef struct _tagSlowAppInfo {
|
||
|
ULONGLONG ullSize;
|
||
|
FILETIME ftLastUsed;
|
||
|
int iTimesUsed;
|
||
|
LPWSTR pszImage;
|
||
|
} SLOWAPPINFO, *PSLOWAPPINFO;
|
||
|
|
||
|
HRESULT GetSlowAppInfo([in] PSLOWAPPINFO psaid);
|
||
|
//
|
||
|
// Obtain the cached slow info for the app, this will be fast.
|
||
|
//
|
||
|
HRESULT GetCachedSlowAppInfo([in] PSLOWAPPINFO psaid);
|
||
|
//
|
||
|
// Returns S_OK if installed S_FALSE if not installed
|
||
|
//
|
||
|
HRESULT IsInstalled(void);
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// IPublishedApp interface
|
||
|
//
|
||
|
[
|
||
|
uuid(1BC752E0-9046-11D1-B8B3-006008059382), // IID_IPublishedApp
|
||
|
object
|
||
|
]
|
||
|
interface IPublishedApp : IShellApp
|
||
|
{
|
||
|
typedef enum _tagPublishedAppInfoFlags {
|
||
|
PAI_SOURCE = 0x00000001,
|
||
|
PAI_ASSIGNEDTIME = 0x00000002,
|
||
|
PAI_PUBLISHEDTIME = 0x00000004,
|
||
|
PAI_SCHEDULEDTIME = 0x00000008,
|
||
|
PAI_EXPIRETIME = 0x00000010
|
||
|
} PUBAPPINFOFLAGS;
|
||
|
|
||
|
typedef struct _PubAppInfo {
|
||
|
DWORD cbSize;
|
||
|
DWORD dwMask; // PUBAPPINFOFLAGS, IN/OUT
|
||
|
LPWSTR pszSource;
|
||
|
SYSTEMTIME stAssigned;
|
||
|
SYSTEMTIME stPublished;
|
||
|
SYSTEMTIME stScheduled;
|
||
|
SYSTEMTIME stExpire;
|
||
|
} PUBAPPINFO, *PPUBAPPINFO;
|
||
|
|
||
|
HRESULT Install([in]LPSYSTEMTIME pstInstall);
|
||
|
HRESULT GetPublishedAppInfo([in, out] PPUBAPPINFO ppai);
|
||
|
HRESULT Unschedule(void);
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// IEnumPublishedApps interface
|
||
|
//
|
||
|
[
|
||
|
uuid(0B124F8C-91F0-11D1-B8B5-006008059382), // IID_IEnumPublishedApps
|
||
|
object
|
||
|
]
|
||
|
interface IEnumPublishedApps : IUnknown
|
||
|
{
|
||
|
|
||
|
HRESULT Next([out] IPublishedApp** pia);
|
||
|
HRESULT Reset(void);
|
||
|
};
|
||
|
|
||
|
|
||
|
//
|
||
|
// IAppPublisher interface
|
||
|
//
|
||
|
[
|
||
|
uuid(07250A10-9CF9-11D1-9076-006008059382), // IID_IAppPublisher
|
||
|
object
|
||
|
]
|
||
|
interface IAppPublisher : IUnknown
|
||
|
{
|
||
|
HRESULT GetNumberOfCategories(DWORD * pdwCat);
|
||
|
HRESULT GetCategories(APPCATEGORYINFOLIST * pAppCategoryList);
|
||
|
HRESULT GetNumberOfApps(DWORD * pdwApps);
|
||
|
HRESULT EnumApps(GUID * pAppCategoryId, IEnumPublishedApps ** ppepa);
|
||
|
}
|
||
|
|
||
|
cpp_quote("#endif // _SHAPPMGR_H_")
|
||
|
|
||
|
|