dbgprop.idl 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. cpp_quote("/**")
  2. cpp_quote(" * This file is part of the mingw-w64 runtime package.")
  3. cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
  4. cpp_quote(" */")
  5. cpp_quote("")
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("")
  8. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  9. cpp_quote("")
  10. import "ocidl.idl";
  11. import "oleidl.idl";
  12. cpp_quote("")
  13. interface IDebugProperty;
  14. interface IDebugExtendedProperty;
  15. interface IEnumDebugPropertyInfo;
  16. interface IEnumDebugExtendedPropertyInfo;
  17. interface IPerPropertyBrowsing2;
  18. cpp_quote("")
  19. cpp_quote("extern GUID guidDocument;")
  20. cpp_quote("extern GUID guidCodeContext;")
  21. cpp_quote("")
  22. enum {
  23. DBGPROP_ATTRIB_NO_ATTRIB = 0x0,
  24. DBGPROP_ATTRIB_VALUE_IS_INVALID = 0x8,
  25. DBGPROP_ATTRIB_VALUE_IS_EXPANDABLE =0x10,
  26. DBGPROP_ATTRIB_VALUE_IS_FAKE = 0x20,
  27. DBGPROP_ATTRIB_VALUE_IS_METHOD = 0x100,
  28. DBGPROP_ATTRIB_VALUE_IS_EVENT = 0x200,
  29. DBGPROP_ATTRIB_VALUE_IS_RAW_STRING = 0x400,
  30. DBGPROP_ATTRIB_VALUE_READONLY = 0x800,
  31. DBGPROP_ATTRIB_ACCESS_PUBLIC = 0x1000,
  32. DBGPROP_ATTRIB_ACCESS_PRIVATE = 0x2000,
  33. DBGPROP_ATTRIB_ACCESS_PROTECTED = 0x4000,
  34. DBGPROP_ATTRIB_ACCESS_FINAL = 0x8000,
  35. DBGPROP_ATTRIB_STORAGE_GLOBAL = 0x10000,
  36. DBGPROP_ATTRIB_STORAGE_STATIC = 0x20000,
  37. DBGPROP_ATTRIB_STORAGE_FIELD = 0x40000,
  38. DBGPROP_ATTRIB_STORAGE_VIRTUAL = 0x80000,
  39. DBGPROP_ATTRIB_TYPE_IS_CONSTANT = 0x100000,
  40. DBGPROP_ATTRIB_TYPE_IS_SYNCHRONIZED = 0x200000,
  41. DBGPROP_ATTRIB_TYPE_IS_VOLATILE = 0x400000,
  42. DBGPROP_ATTRIB_HAS_EXTENDED_ATTRIBS = 0x800000
  43. };
  44. cpp_quote("")
  45. typedef DWORD DBGPROP_ATTRIB_FLAGS;
  46. cpp_quote("")
  47. enum {
  48. DBGPROP_INFO_NAME = 0x1,
  49. DBGPROP_INFO_TYPE = 0x2,
  50. DBGPROP_INFO_VALUE = 0x4,
  51. DBGPROP_INFO_FULLNAME = 0x20,
  52. DBGPROP_INFO_ATTRIBUTES = 0x8,
  53. DBGPROP_INFO_DEBUGPROP = 0x10,
  54. DBGPROP_INFO_BEAUTIFY = 0x2000000,
  55. DBGPROP_INFO_CALLTOSTRING = 0x4000000,
  56. DBGPROP_INFO_AUTOEXPAND = 0x8000000
  57. };
  58. cpp_quote("")
  59. typedef DWORD DBGPROP_INFO_FLAGS;
  60. cpp_quote("")
  61. const DBGPROP_INFO_FLAGS DBGPROP_INFO_STANDARD = DBGPROP_INFO_NAME | DBGPROP_INFO_TYPE | DBGPROP_INFO_VALUE | DBGPROP_INFO_ATTRIBUTES;
  62. const DBGPROP_INFO_FLAGS DBGPROP_INFO_ALL = DBGPROP_INFO_NAME | DBGPROP_INFO_TYPE | DBGPROP_INFO_VALUE | DBGPROP_INFO_FULLNAME | DBGPROP_INFO_ATTRIBUTES | DBGPROP_INFO_DEBUGPROP;
  63. cpp_quote("")
  64. typedef enum tagOBJECT_ATTRIB_FLAG {
  65. OBJECT_ATTRIB_NO_ATTRIB = 0x0,
  66. OBJECT_ATTRIB_NO_NAME = 0x1,
  67. OBJECT_ATTRIB_NO_TYPE = 0x2,
  68. OBJECT_ATTRIB_NO_VALUE = 0x4,
  69. OBJECT_ATTRIB_VALUE_IS_INVALID = 0x8,
  70. OBJECT_ATTRIB_VALUE_IS_OBJECT = 0x10,
  71. OBJECT_ATTRIB_VALUE_IS_ENUM = 0x20,
  72. OBJECT_ATTRIB_VALUE_IS_CUSTOM = 0x40,
  73. OBJECT_ATTRIB_OBJECT_IS_EXPANDABLE =0x070,
  74. OBJECT_ATTRIB_VALUE_HAS_CODE = 0x80,
  75. OBJECT_ATTRIB_TYPE_IS_OBJECT = 0x100,
  76. OBJECT_ATTRIB_TYPE_HAS_CODE = 0x200,
  77. OBJECT_ATTRIB_TYPE_IS_EXPANDABLE = 0x100,
  78. OBJECT_ATTRIB_SLOT_IS_CATEGORY = 0x400,
  79. OBJECT_ATTRIB_VALUE_READONLY = 0x800,
  80. OBJECT_ATTRIB_ACCESS_PUBLIC = 0x1000,
  81. OBJECT_ATTRIB_ACCESS_PRIVATE = 0x2000,
  82. OBJECT_ATTRIB_ACCESS_PROTECTED = 0x4000,
  83. OBJECT_ATTRIB_ACCESS_FINAL = 0x8000,
  84. OBJECT_ATTRIB_STORAGE_GLOBAL = 0x10000,
  85. OBJECT_ATTRIB_STORAGE_STATIC = 0x20000,
  86. OBJECT_ATTRIB_STORAGE_FIELD = 0x40000,
  87. OBJECT_ATTRIB_STORAGE_VIRTUAL = 0x80000,
  88. OBJECT_ATTRIB_TYPE_IS_CONSTANT = 0x100000,
  89. OBJECT_ATTRIB_TYPE_IS_SYNCHRONIZED = 0x200000,
  90. OBJECT_ATTRIB_TYPE_IS_VOLATILE = 0x400000,
  91. OBJECT_ATTRIB_HAS_EXTENDED_ATTRIBS = 0x800000,
  92. OBJECT_ATTRIB_IS_CLASS = 0x1000000,
  93. OBJECT_ATTRIB_IS_FUNCTION = 0x2000000,
  94. OBJECT_ATTRIB_IS_VARIABLE = 0x4000000,
  95. OBJECT_ATTRIB_IS_PROPERTY = 0x8000000,
  96. OBJECT_ATTRIB_IS_MACRO = 0x10000000,
  97. OBJECT_ATTRIB_IS_TYPE = 0x20000000,
  98. OBJECT_ATTRIB_IS_INHERITED = 0x40000000,
  99. OBJECT_ATTRIB_IS_INTERFACE = 0x80000000
  100. } OBJECT_ATTRIB_FLAGS;
  101. cpp_quote("")
  102. typedef enum tagPROP_INFO_FLAGS {
  103. PROP_INFO_NAME = 0x1,
  104. PROP_INFO_TYPE = 0x2,
  105. PROP_INFO_VALUE = 0x4,
  106. PROP_INFO_FULLNAME = 0x20,
  107. PROP_INFO_ATTRIBUTES = 0x8,
  108. PROP_INFO_DEBUGPROP = 0x10,
  109. PROP_INFO_AUTOEXPAND = 0x8000000
  110. } PROP_INFO_FLAGS;
  111. cpp_quote("")
  112. const DWORD PROP_INFO_STANDARD = PROP_INFO_NAME | PROP_INFO_TYPE | PROP_INFO_VALUE | PROP_INFO_ATTRIBUTES;
  113. const DWORD PROP_INFO_ALL = PROP_INFO_NAME | PROP_INFO_TYPE | PROP_INFO_VALUE | PROP_INFO_FULLNAME | PROP_INFO_ATTRIBUTES | PROP_INFO_DEBUGPROP;
  114. cpp_quote("")
  115. typedef struct tagDebugPropertyInfo {
  116. DWORD m_dwValidFields;
  117. BSTR m_bstrName;
  118. BSTR m_bstrType;
  119. BSTR m_bstrValue;
  120. BSTR m_bstrFullName;
  121. DWORD m_dwAttrib;
  122. IDebugProperty *m_pDebugProp;
  123. } DebugPropertyInfo;
  124. cpp_quote("")
  125. typedef enum tagEX_PROP_INFO_FLAGS {
  126. EX_PROP_INFO_ID = 0x100,
  127. EX_PROP_INFO_NTYPE = 0x200,
  128. EX_PROP_INFO_NVALUE = 0x400,
  129. EX_PROP_INFO_LOCKBYTES = 0x800,
  130. EX_PROP_INFO_DEBUGEXTPROP = 0x1000,
  131. } EX_PROP_INFO_FLAGS;
  132. typedef struct tagExtendedDebugPropertyInfo {
  133. DWORD dwValidFields;
  134. LPOLESTR pszName;
  135. LPOLESTR pszType;
  136. LPOLESTR pszValue;
  137. LPOLESTR pszFullName;
  138. DWORD dwAttrib;
  139. IDebugProperty *pDebugProp;
  140. DWORD nDISPID;
  141. DWORD nType;
  142. VARIANT varValue;
  143. ILockBytes *plbValue;
  144. IDebugExtendedProperty *pDebugExtProp;
  145. } ExtendedDebugPropertyInfo;
  146. cpp_quote("")
  147. [object, uuid (51973c50-CB0C-11d0-B5C9-00a0244a0e7a),, pointer_default (unique)]
  148. interface IDebugProperty : IUnknown {
  149. [local] HRESULT GetPropertyInfo ([in] DWORD dwFieldSpec,[in] UINT nRadix,[out] DebugPropertyInfo *pPropertyInfo);
  150. [call_as (GetPropertyInfo)] HRESULT RemoteGetPropertyInfo ([in] DWORD dwFieldSpec,[in] UINT nRadix,[out] DWORD *dwValidFields,[out] BSTR *pbstrName,[out] BSTR *pbstrType,[out] BSTR *pbstrValue,[out] BSTR *pbstrFullName,[out] DWORD *pdwAttrib,[in, out, unique] IDebugProperty **ppDebugProperty);
  151. HRESULT GetExtendedInfo ([in] ULONG cInfos,[in, size_is (cInfos)] GUID *rgguidExtendedInfo,[out, size_is (cInfos)] VARIANT *rgvar);
  152. HRESULT SetValueAsString ([in] LPCOLESTR pszValue,[in] UINT nRadix);
  153. HRESULT EnumMembers ([in] DWORD dwFieldSpec,[in] UINT nRadix,[in] REFIID refiid,[out] IEnumDebugPropertyInfo **ppepi);
  154. HRESULT GetParent ([out] IDebugProperty **ppDebugProp);
  155. };
  156. cpp_quote("")
  157. [object, uuid (51973c51-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  158. interface IEnumDebugPropertyInfo : IUnknown {
  159. [local] HRESULT Next ([in] ULONG celt,[out] DebugPropertyInfo *pi,[out] ULONG *pcEltsfetched);
  160. [call_as (Next)]
  161. HRESULT __stdcall RemoteNext ([in] ULONG celt,[in, out, unique, size_is (celt), length_is (*pcEltsfetched)] DebugPropertyInfo *pinfo,[out] ULONG *pcEltsfetched);
  162. HRESULT Skip ([in] ULONG celt);
  163. HRESULT Reset (void);
  164. HRESULT Clone ([out] IEnumDebugPropertyInfo **ppepi);
  165. HRESULT GetCount ([out] ULONG *pcelt);
  166. };
  167. cpp_quote("")
  168. [object, uuid (51973c52-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  169. interface IDebugExtendedProperty : IDebugProperty {
  170. HRESULT GetExtendedPropertyInfo ([in] DWORD dwFieldSpec,[in] UINT nRadix,[out] ExtendedDebugPropertyInfo *pExtendedPropertyInfo);
  171. HRESULT EnumExtendedMembers ([in] DWORD dwFieldSpec,[in] UINT nRadix,[out] IEnumDebugExtendedPropertyInfo **ppeepi);
  172. };
  173. cpp_quote("")
  174. [object, uuid (51973c53-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  175. interface IEnumDebugExtendedPropertyInfo : IUnknown {
  176. HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] ExtendedDebugPropertyInfo *rgExtendedPropertyInfo,[out] ULONG *pceltFetched);
  177. HRESULT Skip ([in] ULONG celt);
  178. HRESULT Reset (void);
  179. HRESULT Clone ([out] IEnumDebugExtendedPropertyInfo **pedpe);
  180. HRESULT GetCount ([out] ULONG *pcelt);
  181. };
  182. cpp_quote("")
  183. [object, uuid (51973c54-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  184. interface IPerPropertyBrowsing2 : IUnknown {
  185. HRESULT GetDisplayString ([in] DISPID dispid,[out] BSTR *pBstr);
  186. HRESULT MapPropertyToPage ([in] DISPID dispid,[out] CLSID *pClsidPropPage);
  187. HRESULT GetPredefinedStrings ([in] DISPID dispid,[out] CALPOLESTR *pCaStrings,[out] CADWORD *pCaCookies);
  188. HRESULT SetPredefinedValue ([in] DISPID dispid,[in] DWORD dwCookie);
  189. };
  190. cpp_quote("")
  191. [object, uuid (51973c55-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  192. interface IDebugPropertyEnumType_All : IUnknown {
  193. HRESULT GetName ([out] BSTR *);
  194. };
  195. cpp_quote("")
  196. [object, uuid (51973c56-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  197. interface IDebugPropertyEnumType_Locals : IDebugPropertyEnumType_All {
  198. };
  199. cpp_quote("")
  200. [object, uuid (51973c57-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  201. interface IDebugPropertyEnumType_Arguments : IDebugPropertyEnumType_All {
  202. };
  203. cpp_quote("")
  204. [object, uuid (51973c58-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  205. interface IDebugPropertyEnumType_LocalsPlusArgs : IDebugPropertyEnumType_All {
  206. };
  207. cpp_quote("")
  208. [object, uuid (51973c59-CB0C-11d0-B5C9-00a0244a0e7a), pointer_default (unique)]
  209. interface IDebugPropertyEnumType_Registers : IDebugPropertyEnumType_All {
  210. };
  211. cpp_quote("#endif")