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.

197 lines
5.8 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright 1995-2000 Microsoft Corporation. All Rights Reserved.
  5. //
  6. //--------------------------------------------------------------------------
  7. cpp_quote("#ifndef _SHAPPMGRP_H_")
  8. cpp_quote("#define _SHAPPMGRP_H_")
  9. import "oleidl.idl";
  10. import "oaidl.idl";
  11. import "shappmgr.idl";
  12. #include <olectl.h>
  13. #include <shdispid.h>
  14. [
  15. uuid(157193AA-D8B2-435f-A79C-B8F332357C6B), // LIBID_SHAPPMGRP
  16. helpstring("shappmgrp 1.0 Type Library"),
  17. lcid(0x0000),
  18. version(1.0)
  19. ]
  20. library SHAPPMGRPLib
  21. {
  22. importlib("stdole32.tlb");
  23. importlib("stdole2.tlb");
  24. //
  25. // IADCCtl interface
  26. //
  27. [
  28. uuid(3964D99F-AC96-11D1-9851-00C04FD91972), // IID_IADCCtl
  29. helpstring("Application Data Control Interface"),
  30. pointer_default(unique),
  31. oleautomation,
  32. object,
  33. dual
  34. ]
  35. interface IADCCtl : IDispatch
  36. {
  37. // Properties
  38. [propput, id(DISPID_IADCCTL_DIRTY)]
  39. HRESULT Dirty([in] VARIANT_BOOL bDirty);
  40. [propget, id(DISPID_IADCCTL_DIRTY)]
  41. HRESULT Dirty([out, retval] VARIANT_BOOL * pbDirty);
  42. [propput, id(DISPID_IADCCTL_PUBCAT)]
  43. HRESULT Category([in] BSTR bstrCategory);
  44. [propget, id(DISPID_IADCCTL_PUBCAT)]
  45. HRESULT Category([out, retval] BSTR * pbstrCategory);
  46. [propput, id(DISPID_IADCCTL_SORT)]
  47. HRESULT Sort([in] BSTR bstrSortExpr);
  48. [propget, id(DISPID_IADCCTL_SORT)]
  49. HRESULT Sort([out, retval] BSTR* pbstrSortExpr);
  50. [propput, id(DISPID_IADCCTL_FORCEX86)]
  51. HRESULT Forcex86([in] VARIANT_BOOL bForce);
  52. [propget, id(DISPID_IADCCTL_FORCEX86)]
  53. HRESULT Forcex86([out, retval] VARIANT_BOOL * pbForce);
  54. [propget, id(DISPID_IADCCTL_SHOWPOSTSETUP)]
  55. HRESULT ShowPostSetup([out, retval] VARIANT_BOOL * pbShow);
  56. [propput, id(DISPID_IADCCTL_ONDOMAIN)]
  57. HRESULT OnDomain([in] VARIANT_BOOL bOnDomain);
  58. [propget, id(DISPID_IADCCTL_ONDOMAIN)]
  59. HRESULT OnDomain([out, retval] VARIANT_BOOL * pbOnDomain);
  60. [propget, id(DISPID_IADCCTL_DEFAULTCAT)]
  61. HRESULT DefaultCategory([out, retval] BSTR * pbstrCategory);
  62. [restricted, id(-3900)]
  63. HRESULT msDataSourceObject([in] BSTR qualifier,
  64. [out, retval] IUnknown **ppUnk);
  65. [restricted, id(-3901)]
  66. HRESULT addDataSourceListener([in] IUnknown *pEvent);
  67. // Methods
  68. //
  69. HRESULT Reset(BSTR bstrQualifier);
  70. HRESULT IsRestricted([in] BSTR bstrPolicy, [out, retval] VARIANT_BOOL * pbRestricted);
  71. // Valid Exec command strings:
  72. //
  73. // "install" - install app at nRecord
  74. // "uninstall" - uninstall app
  75. // "modify" - modify app
  76. // "repair" - repair app
  77. // "upgrade" - upgrade app
  78. // "generic install" - invoke the 'install from floppy or CD' wizard
  79. // "ntoptions" - add/remove NT options
  80. // "winupdate" - update windows
  81. HRESULT Exec(BSTR bstrQualifier, [in] BSTR bstrCmd, [in] LONG nRecord);
  82. };
  83. [
  84. uuid(3964D9A0-AC96-11D1-9851-00C04FD91972), // CLSID_ADCCtl
  85. helpstring("ADCCtl Class")
  86. ]
  87. coclass ADCCtl
  88. {
  89. [default] interface IADCCtl;
  90. };
  91. //
  92. // IInstalledApp interface
  93. //
  94. [
  95. uuid(1BC752DF-9046-11D1-B8B3-006008059382), // IID_IInstalledApp
  96. helpstring("Shell Installed Application Interface"),
  97. object
  98. ]
  99. interface IInstalledApp : IShellApp
  100. {
  101. HRESULT Uninstall(HWND hwnd); // Same as Add/Remove maybe we should call it AddRemove.
  102. HRESULT Modify(HWND hwndParent);
  103. HRESULT Repair([in] BOOL bReinstall);
  104. HRESULT Upgrade(void);
  105. };
  106. //
  107. // IEnumInstalledApps interface
  108. //
  109. [
  110. uuid(1BC752E1-9046-11D1-B8B3-006008059382), // IID_IEnumInstalledApps
  111. helpstring("Shell Installed Apps Enumeration Interface"),
  112. object,
  113. ]
  114. interface IEnumInstalledApps : IUnknown
  115. {
  116. HRESULT Next([out] IInstalledApp** pia);
  117. HRESULT Reset(void);
  118. };
  119. [
  120. uuid(0B124F8F-91F0-11D1-B8B5-006008059382), // CLSID_EnumInstalledApps
  121. helpstring("Shell Installed Applications Enumeration Object"),
  122. ]
  123. coclass EnumInstalledApps
  124. {
  125. [default] interface IEnumInstalledApps;
  126. };
  127. //
  128. // IShellAppManager interface
  129. //
  130. [
  131. uuid(352EC2B8-8B9A-11D1-B8AE-006008059382), // IID_IShellAppManager
  132. helpstring("Application Manager"),
  133. object,
  134. ]
  135. interface IShellAppManager : IUnknown
  136. {
  137. // NOTE: These structures are very similar to CategoryInfo* in NT5
  138. typedef struct _ShellAppCategory {
  139. LPWSTR pszCategory; // category description
  140. UINT idCategory; // category id for ShellAppManager
  141. } SHELLAPPCATEGORY, *PSHELLAPPCATEGORY;
  142. typedef struct _ShellAppCategoryList {
  143. UINT cCategories;
  144. SHELLAPPCATEGORY * pCategory;
  145. } SHELLAPPCATEGORYLIST, *PSHELLAPPCATEGORYLIST;
  146. HRESULT GetNumberofInstalledApps(DWORD * pdwResult);
  147. HRESULT EnumInstalledApps(IEnumInstalledApps ** peia);
  148. HRESULT GetPublishedAppCategories(PSHELLAPPCATEGORYLIST pCategoryList);
  149. HRESULT EnumPublishedApps(LPCWSTR pszCategory, IEnumPublishedApps ** ppepa);
  150. HRESULT InstallFromFloppyOrCDROM(HWND hwndParent);
  151. }
  152. [
  153. uuid(352EC2B7-8B9A-11D1-B8AE-006008059382), // CLSID_ShellAppManager
  154. helpstring("Shell Application Manager"),
  155. ]
  156. coclass ShellAppManager
  157. {
  158. [default] interface IShellAppManager;
  159. };
  160. };
  161. cpp_quote("#endif // _SHAPPMGRP_H_")