Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

169 lines
6.2 KiB

//////////////////////////////////////////////////////////////////////////////////////////////
//
// IAppManAdmin
//
// Copyright (C) 1998, 1999 Microsoft Corporation. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////////////////////
#ifndef __IAPPMANADMIN_
#define __IAPPMANADMIN_
#ifdef __cplusplus
extern "C" {
#endif
#include "AppMan.h"
//
// GUID definition for the IApplicationManagerAdmin interface
//
// IID_ApplicationManagerAdmin = {8AE0897A-923A-4a1e-AA50-79E508281DAB}
//
DEFINE_GUID(IID_ApplicationManagerAdmin, 0x8ae0897a, 0x923a, 0x4a1e, 0xaa, 0x50, 0x79, 0xe5, 0x8, 0x28, 0x1d, 0xab);
//
// Device indexes go from 0-25 (A: through Z:). The MAX_DEVICES define should be used
// as an upper limit (exclusive)
//
#define MAX_DEVICES 26
//
// Defines used with GetProperty method
//
#define DEVICE_PROPERTY_TOTALKILOBYTES 0x00000001
#define DEVICE_PROPERTY_TOTALFREEKILOBYTES 0x00000002
#define DEVICE_PROPERTY_TOTALAVAILABLEKILOBYTES 0x00000004
#define DEVICE_PROPERTY_OPTIMALAVAILABLEKILOBYTES 0x00000008
#define DEVICE_PROPERTY_REMOVABLEKILOBYTES 0x00000010
#define DEVICE_PROPERTY_NONREMOVABLEKILOBYTES 0x00000020
#define DEVICE_PROPERTY_RESERVEDKILOBYTES 0x00000040
#define DEVICE_PROPERTY_TOTALTEMPORARYKILOBYTES 0x00000080
#define DEVICE_PROPERTY_USEDTEMPORARYKILOBYTES 0x00000100
#define DEVICE_PROPERTY_PERCENTCACHESIZE 0x00000200
#define DEVICE_PROPERTY_PERCENTMINIMUMFREESIZE 0x00000400
#define DEVICE_PROPERTY_EXCLUSIONMASK 0x00000800
#define APPMAN_PROPERTY_TOTALKILOBYTES 0x10000000
#define APPMAN_PROPERTY_OPTIMALKILOBYTES 0x20000000
#define APPMAN_PROPERTY_ADVANCEDMODE 0x40000000
//
// Defines used to define device exclusion mask
//
#define DEVICE_EXCLUDE_ALL 0xffffffff
#define DEVICE_EXCLUSION_MASK DEVICE_EXCLUDE_ALL
//
// Defines used with the DoAction method
//
#define ACTION_APP_DOWNSIZE 0x00000008
#define ACTION_APP_REINSTALL 0x00000010
#define ACTION_APP_UNINSTALL 0x00000020
#define ACTION_APP_SELFTEST 0x00000040
#define ACTION_APP_RUN_BLOCK 0x00000080
#define ACTION_APP_RUN_NOBLOCK 0x00000100
#define ACTION_APP_PIN 0x00000200
#define ACTION_APP_UNINSTALLBLOCK 0x00000400
#define SORT_APP_LASTUSEDDATE 0x00000001
#define SORT_APP_SIGNATURE 0x00000002
#define SORT_APP_COMPANYNAME 0x00000004
#define SORT_APP_SIZE 0x00000008
#define SORT_APP_ASCENDING 0x40000000
#define SORT_APP_DESCENDING 0x80000000
//
// These defines are used in conjunction with the APP_PROPERTY_CATEGORY and the
// IApplicationEntry->SetProperty() and IApplicationEntry->GetProperty() methods
//
#define APP_CATEGORY_PRODUCTIVITY 0x00000002
#define APP_CATEGORY_PUBLISHING 0x00000004
#define APP_CATEGORY_SCIENTIFIC 0x00000008
#define APP_CATEGORY_AUTHORING 0x00000010
#define APP_CATEGORY_MEDICAL 0x00000020
#define APP_CATEGORY_BUSINESS 0x00000040
#define APP_CATEGORY_FINANCIAL 0x00000080
#define APP_CATEGORY_EDUCATIONAL 0x00000100
#define APP_CATEGORY_REFERENCE 0x00000200
#define APP_CATEGORY_WEB 0x00000400
#define APP_CATEGORY_DEVELOPMENTTOOL 0x00000800
#define APP_CATEGORY_MULTIMEDIA 0x00001000
#define APP_CATEGORY_VIRUSCLEANER 0x00002000
#define APP_CATEGORY_CONNECTIVITY 0x00004000
#define APP_CATEGORY_MISC 0x00008000
//
// Old retired properties that still require support
//
#define APP_PROPERTY_REMOVABLEKILOBYTES 0x0000000b
#define APP_PROPERTY_NONREMOVABLEKILOBYTES 0x0000000a
//
// Misc defines
//
#define APP_PROPERTY_PIN 0x00000018
#define APP_CATEGORY_LEGACY 0x80000000
//
// Error defines
//
#define APPMANADMIN_E_INVALIDPROPERTY 0x85680001
#define APPMANADMIN_E_READONLYPROPERTY 0x85680002
#define APPMANADMIN_E_INVALIDPARAMETERS 0x85680003
//////////////////////////////////////////////////////////////////////////////////////////////
//
// Interface definitions
//
//////////////////////////////////////////////////////////////////////////////////////////////
#if defined( _WIN32 ) && !defined( _NO_COM )
//
// IApplicationManager Interface
//
#undef INTERFACE
#define INTERFACE IApplicationManagerAdmin
DECLARE_INTERFACE_( IApplicationManagerAdmin, IUnknown )
{
//
// IUnknown Interfaces
//
STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
//
// IApplicationManager interface methods
//
STDMETHOD (EnumerateDevices) (THIS_ const DWORD, GUID *) PURE;
STDMETHOD (GetDeviceProperty) (THIS_ const DWORD, const GUID *, LPVOID, const DWORD) PURE;
STDMETHOD (SetDeviceProperty) (THIS_ const DWORD, const GUID *, LPVOID, const DWORD) PURE;
STDMETHOD (GetAppManProperty) (THIS_ const DWORD, LPVOID, const DWORD) PURE;
STDMETHOD (SetAppManProperty) (THIS_ const DWORD, LPCVOID, const DWORD) PURE;
STDMETHOD (CreateApplicationEntry) (THIS_ IApplicationEntry **) PURE;
STDMETHOD (GetApplicationInfo) (IApplicationEntry *) PURE;
STDMETHOD (EnumApplications) (THIS_ const DWORD, IApplicationEntry *) PURE;
STDMETHOD (DoApplicationAction) (THIS_ const DWORD, const GUID *, const DWORD, LPVOID, const DWORD) PURE;
};
#endif // defined( _WIN32 ) && !defined( _NO_COM )
#ifdef __cplusplus
}
#endif
#endif // __IAPPMANADMIN_