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.

168 lines
6.2 KiB

  1. //////////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // IAppManAdmin
  4. //
  5. // Copyright (C) 1998, 1999 Microsoft Corporation. All rights reserved.
  6. //
  7. //////////////////////////////////////////////////////////////////////////////////////////////
  8. #ifndef __IAPPMANADMIN_
  9. #define __IAPPMANADMIN_
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #include "AppMan.h"
  14. //
  15. // GUID definition for the IApplicationManagerAdmin interface
  16. //
  17. // IID_ApplicationManagerAdmin = {8AE0897A-923A-4a1e-AA50-79E508281DAB}
  18. //
  19. DEFINE_GUID(IID_ApplicationManagerAdmin, 0x8ae0897a, 0x923a, 0x4a1e, 0xaa, 0x50, 0x79, 0xe5, 0x8, 0x28, 0x1d, 0xab);
  20. //
  21. // Device indexes go from 0-25 (A: through Z:). The MAX_DEVICES define should be used
  22. // as an upper limit (exclusive)
  23. //
  24. #define MAX_DEVICES 26
  25. //
  26. // Defines used with GetProperty method
  27. //
  28. #define DEVICE_PROPERTY_TOTALKILOBYTES 0x00000001
  29. #define DEVICE_PROPERTY_TOTALFREEKILOBYTES 0x00000002
  30. #define DEVICE_PROPERTY_TOTALAVAILABLEKILOBYTES 0x00000004
  31. #define DEVICE_PROPERTY_OPTIMALAVAILABLEKILOBYTES 0x00000008
  32. #define DEVICE_PROPERTY_REMOVABLEKILOBYTES 0x00000010
  33. #define DEVICE_PROPERTY_NONREMOVABLEKILOBYTES 0x00000020
  34. #define DEVICE_PROPERTY_RESERVEDKILOBYTES 0x00000040
  35. #define DEVICE_PROPERTY_TOTALTEMPORARYKILOBYTES 0x00000080
  36. #define DEVICE_PROPERTY_USEDTEMPORARYKILOBYTES 0x00000100
  37. #define DEVICE_PROPERTY_PERCENTCACHESIZE 0x00000200
  38. #define DEVICE_PROPERTY_PERCENTMINIMUMFREESIZE 0x00000400
  39. #define DEVICE_PROPERTY_EXCLUSIONMASK 0x00000800
  40. #define APPMAN_PROPERTY_TOTALKILOBYTES 0x10000000
  41. #define APPMAN_PROPERTY_OPTIMALKILOBYTES 0x20000000
  42. #define APPMAN_PROPERTY_ADVANCEDMODE 0x40000000
  43. //
  44. // Defines used to define device exclusion mask
  45. //
  46. #define DEVICE_EXCLUDE_ALL 0xffffffff
  47. #define DEVICE_EXCLUSION_MASK DEVICE_EXCLUDE_ALL
  48. //
  49. // Defines used with the DoAction method
  50. //
  51. #define ACTION_APP_DOWNSIZE 0x00000008
  52. #define ACTION_APP_REINSTALL 0x00000010
  53. #define ACTION_APP_UNINSTALL 0x00000020
  54. #define ACTION_APP_SELFTEST 0x00000040
  55. #define ACTION_APP_RUN_BLOCK 0x00000080
  56. #define ACTION_APP_RUN_NOBLOCK 0x00000100
  57. #define ACTION_APP_PIN 0x00000200
  58. #define ACTION_APP_UNINSTALLBLOCK 0x00000400
  59. #define SORT_APP_LASTUSEDDATE 0x00000001
  60. #define SORT_APP_SIGNATURE 0x00000002
  61. #define SORT_APP_COMPANYNAME 0x00000004
  62. #define SORT_APP_SIZE 0x00000008
  63. #define SORT_APP_ASCENDING 0x40000000
  64. #define SORT_APP_DESCENDING 0x80000000
  65. //
  66. // These defines are used in conjunction with the APP_PROPERTY_CATEGORY and the
  67. // IApplicationEntry->SetProperty() and IApplicationEntry->GetProperty() methods
  68. //
  69. #define APP_CATEGORY_PRODUCTIVITY 0x00000002
  70. #define APP_CATEGORY_PUBLISHING 0x00000004
  71. #define APP_CATEGORY_SCIENTIFIC 0x00000008
  72. #define APP_CATEGORY_AUTHORING 0x00000010
  73. #define APP_CATEGORY_MEDICAL 0x00000020
  74. #define APP_CATEGORY_BUSINESS 0x00000040
  75. #define APP_CATEGORY_FINANCIAL 0x00000080
  76. #define APP_CATEGORY_EDUCATIONAL 0x00000100
  77. #define APP_CATEGORY_REFERENCE 0x00000200
  78. #define APP_CATEGORY_WEB 0x00000400
  79. #define APP_CATEGORY_DEVELOPMENTTOOL 0x00000800
  80. #define APP_CATEGORY_MULTIMEDIA 0x00001000
  81. #define APP_CATEGORY_VIRUSCLEANER 0x00002000
  82. #define APP_CATEGORY_CONNECTIVITY 0x00004000
  83. #define APP_CATEGORY_MISC 0x00008000
  84. //
  85. // Old retired properties that still require support
  86. //
  87. #define APP_PROPERTY_REMOVABLEKILOBYTES 0x0000000b
  88. #define APP_PROPERTY_NONREMOVABLEKILOBYTES 0x0000000a
  89. //
  90. // Misc defines
  91. //
  92. #define APP_PROPERTY_PIN 0x00000018
  93. #define APP_CATEGORY_LEGACY 0x80000000
  94. //
  95. // Error defines
  96. //
  97. #define APPMANADMIN_E_INVALIDPROPERTY 0x85680001
  98. #define APPMANADMIN_E_READONLYPROPERTY 0x85680002
  99. #define APPMANADMIN_E_INVALIDPARAMETERS 0x85680003
  100. //////////////////////////////////////////////////////////////////////////////////////////////
  101. //
  102. // Interface definitions
  103. //
  104. //////////////////////////////////////////////////////////////////////////////////////////////
  105. #if defined( _WIN32 ) && !defined( _NO_COM )
  106. //
  107. // IApplicationManager Interface
  108. //
  109. #undef INTERFACE
  110. #define INTERFACE IApplicationManagerAdmin
  111. DECLARE_INTERFACE_( IApplicationManagerAdmin, IUnknown )
  112. {
  113. //
  114. // IUnknown Interfaces
  115. //
  116. STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
  117. STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  118. STDMETHOD_(ULONG, Release) (THIS) PURE;
  119. //
  120. // IApplicationManager interface methods
  121. //
  122. STDMETHOD (EnumerateDevices) (THIS_ const DWORD, GUID *) PURE;
  123. STDMETHOD (GetDeviceProperty) (THIS_ const DWORD, const GUID *, LPVOID, const DWORD) PURE;
  124. STDMETHOD (SetDeviceProperty) (THIS_ const DWORD, const GUID *, LPVOID, const DWORD) PURE;
  125. STDMETHOD (GetAppManProperty) (THIS_ const DWORD, LPVOID, const DWORD) PURE;
  126. STDMETHOD (SetAppManProperty) (THIS_ const DWORD, LPCVOID, const DWORD) PURE;
  127. STDMETHOD (CreateApplicationEntry) (THIS_ IApplicationEntry **) PURE;
  128. STDMETHOD (GetApplicationInfo) (IApplicationEntry *) PURE;
  129. STDMETHOD (EnumApplications) (THIS_ const DWORD, IApplicationEntry *) PURE;
  130. STDMETHOD (DoApplicationAction) (THIS_ const DWORD, const GUID *, const DWORD, LPVOID, const DWORD) PURE;
  131. };
  132. #endif // defined( _WIN32 ) && !defined( _NO_COM )
  133. #ifdef __cplusplus
  134. }
  135. #endif
  136. #endif // __IAPPMANADMIN_