WindowsXP-SP1/shell/published/inc/shappmgr.idl

177 lines
5.1 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_")