shtypes.idl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  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. import "unknwn.idl";
  7. import "wtypes.idl";
  8. cpp_quote("")
  9. cpp_quote("#ifndef DUMMYUNIONNAME")
  10. cpp_quote("#ifdef NONAMELESSUNION")
  11. cpp_quote("#define DUMMYUNIONNAME u")
  12. cpp_quote("#define DUMMYUNIONNAME2 u2")
  13. cpp_quote("#define DUMMYUNIONNAME3 u3")
  14. cpp_quote("#define DUMMYUNIONNAME4 u4")
  15. cpp_quote("#define DUMMYUNIONNAME5 u5")
  16. cpp_quote("#else")
  17. cpp_quote("#define DUMMYUNIONNAME")
  18. cpp_quote("#define DUMMYUNIONNAME2")
  19. cpp_quote("#define DUMMYUNIONNAME3")
  20. cpp_quote("#define DUMMYUNIONNAME4")
  21. cpp_quote("#define DUMMYUNIONNAME5")
  22. cpp_quote("#endif")
  23. cpp_quote("#endif")
  24. cpp_quote("")
  25. cpp_quote("#include <pshpack1.h>")
  26. typedef struct _SHITEMID {
  27. USHORT cb;
  28. BYTE abID[];
  29. } SHITEMID;
  30. cpp_quote("#include <poppack.h>")
  31. cpp_quote("")
  32. cpp_quote("#if (defined(_X86_) && !defined(__x86_64))")
  33. cpp_quote("#undef __unaligned")
  34. cpp_quote("#define __unaligned")
  35. cpp_quote("#endif")
  36. cpp_quote("")
  37. typedef SHITEMID *LPSHITEMID;
  38. typedef const SHITEMID *LPCSHITEMID;
  39. cpp_quote("")
  40. cpp_quote("#include <pshpack1.h>")
  41. typedef struct _ITEMIDLIST {
  42. SHITEMID mkid;
  43. } ITEMIDLIST;
  44. cpp_quote("")
  45. cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)")
  46. cpp_quote(" typedef struct _ITEMIDLIST_RELATIVE : ITEMIDLIST { } ITEMIDLIST_RELATIVE;")
  47. cpp_quote(" typedef struct _ITEMID_CHILD : ITEMIDLIST_RELATIVE { } ITEMID_CHILD;")
  48. cpp_quote(" typedef struct _ITEMIDLIST_ABSOLUTE : ITEMIDLIST_RELATIVE { } ITEMIDLIST_ABSOLUTE;")
  49. cpp_quote("#else")
  50. typedef ITEMIDLIST ITEMIDLIST_RELATIVE;
  51. typedef ITEMIDLIST ITEMID_CHILD;
  52. typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE;
  53. cpp_quote("#endif")
  54. cpp_quote("#include <poppack.h>")
  55. cpp_quote("")
  56. typedef [unique] BYTE_BLOB *wirePIDL;
  57. typedef [wire_marshal (wirePIDL)] ITEMIDLIST *LPITEMIDLIST;
  58. typedef [wire_marshal (wirePIDL)] const ITEMIDLIST *LPCITEMIDLIST;
  59. cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)")
  60. typedef [wire_marshal (wirePIDL)] ITEMIDLIST_ABSOLUTE *PIDLIST_ABSOLUTE;
  61. typedef [wire_marshal (wirePIDL)] const ITEMIDLIST_ABSOLUTE *PCIDLIST_ABSOLUTE;
  62. typedef [wire_marshal (wirePIDL)] const ITEMIDLIST_ABSOLUTE *PCUIDLIST_ABSOLUTE;
  63. typedef [wire_marshal (wirePIDL)] ITEMIDLIST_RELATIVE *PIDLIST_RELATIVE;
  64. typedef [wire_marshal (wirePIDL)] const ITEMIDLIST_RELATIVE *PCIDLIST_RELATIVE;
  65. typedef [wire_marshal (wirePIDL)] ITEMIDLIST_RELATIVE *PUIDLIST_RELATIVE;
  66. typedef [wire_marshal (wirePIDL)] const ITEMIDLIST_RELATIVE *PCUIDLIST_RELATIVE;
  67. typedef [wire_marshal (wirePIDL)] ITEMID_CHILD *PITEMID_CHILD;
  68. typedef [wire_marshal (wirePIDL)] const ITEMID_CHILD *PCITEMID_CHILD;
  69. typedef [wire_marshal (wirePIDL)] ITEMID_CHILD *PUITEMID_CHILD;
  70. typedef [wire_marshal (wirePIDL)] const ITEMID_CHILD *PCUITEMID_CHILD;
  71. typedef PCUITEMID_CHILD const *PCUITEMID_CHILD_ARRAY;
  72. typedef PCUIDLIST_RELATIVE const *PCUIDLIST_RELATIVE_ARRAY;
  73. typedef PCIDLIST_ABSOLUTE const *PCIDLIST_ABSOLUTE_ARRAY;
  74. typedef PCUIDLIST_ABSOLUTE const *PCUIDLIST_ABSOLUTE_ARRAY;
  75. cpp_quote("#else")
  76. cpp_quote("#define PIDLIST_ABSOLUTE LPITEMIDLIST")
  77. cpp_quote("#define PCIDLIST_ABSOLUTE LPCITEMIDLIST")
  78. cpp_quote("#define PCUIDLIST_ABSOLUTE LPCITEMIDLIST")
  79. cpp_quote("#define PIDLIST_RELATIVE LPITEMIDLIST")
  80. cpp_quote("#define PCIDLIST_RELATIVE LPCITEMIDLIST")
  81. cpp_quote("#define PUIDLIST_RELATIVE LPITEMIDLIST")
  82. cpp_quote("#define PCUIDLIST_RELATIVE LPCITEMIDLIST")
  83. cpp_quote("#define PITEMID_CHILD LPITEMIDLIST")
  84. cpp_quote("#define PCITEMID_CHILD LPCITEMIDLIST")
  85. cpp_quote("#define PUITEMID_CHILD LPITEMIDLIST")
  86. cpp_quote("#define PCUITEMID_CHILD LPCITEMIDLIST")
  87. cpp_quote("#define PCUITEMID_CHILD_ARRAY LPCITEMIDLIST *")
  88. cpp_quote("#define PCUIDLIST_RELATIVE_ARRAY LPCITEMIDLIST *")
  89. cpp_quote("#define PCIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *")
  90. cpp_quote("#define PCUIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *")
  91. cpp_quote("#endif")
  92. #ifndef MAX_PATH
  93. #define MAX_PATH 260
  94. #endif
  95. cpp_quote("")
  96. cpp_quote("#if 0")
  97. typedef struct _WIN32_FIND_DATAA {
  98. DWORD dwFileAttributes;
  99. FILETIME ftCreationTime;
  100. FILETIME ftLastAccessTime;
  101. FILETIME ftLastWriteTime;
  102. DWORD nFileSizeHigh;
  103. DWORD nFileSizeLow;
  104. DWORD dwReserved0;
  105. DWORD dwReserved1;
  106. CHAR cFileName[MAX_PATH];
  107. CHAR cAlternateFileName[14];
  108. } WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
  109. cpp_quote("")
  110. typedef struct _WIN32_FIND_DATAW {
  111. DWORD dwFileAttributes;
  112. FILETIME ftCreationTime;
  113. FILETIME ftLastAccessTime;
  114. FILETIME ftLastWriteTime;
  115. DWORD nFileSizeHigh;
  116. DWORD nFileSizeLow;
  117. DWORD dwReserved0;
  118. DWORD dwReserved1;
  119. WCHAR cFileName[MAX_PATH];
  120. WCHAR cAlternateFileName[14];
  121. } WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
  122. cpp_quote("#endif")
  123. cpp_quote("")
  124. typedef [v1_enum] enum tagSTRRET_TYPE {
  125. STRRET_WSTR = 0x0000,
  126. STRRET_OFFSET = 0x0001,
  127. STRRET_CSTR = 0x0002
  128. } STRRET_TYPE;
  129. cpp_quote("")
  130. cpp_quote("#include <pshpack8.h>")
  131. typedef struct _STRRET {
  132. UINT uType;
  133. [switch_type (UINT), switch_is (uType)] union {
  134. [case (STRRET_WSTR)][string] LPWSTR pOleStr;
  135. [case (STRRET_OFFSET)] UINT uOffset;
  136. [case (STRRET_CSTR)] char cStr[MAX_PATH];
  137. };
  138. } STRRET;
  139. cpp_quote("#include <poppack.h>")
  140. cpp_quote("")
  141. typedef STRRET *LPSTRRET;
  142. cpp_quote("")
  143. cpp_quote("#include <pshpack1.h>")
  144. typedef struct _SHELLDETAILS {
  145. int fmt;
  146. int cxChar;
  147. STRRET str;
  148. } SHELLDETAILS,*LPSHELLDETAILS;
  149. cpp_quote("#include <poppack.h>")
  150. cpp_quote("")
  151. cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60SP2")
  152. typedef [v1_enum] enum tagPERCEIVED {
  153. PERCEIVED_TYPE_FIRST = -3,
  154. PERCEIVED_TYPE_CUSTOM = -3,
  155. PERCEIVED_TYPE_UNSPECIFIED = -2,
  156. PERCEIVED_TYPE_FOLDER = -1,
  157. PERCEIVED_TYPE_UNKNOWN = 0,
  158. PERCEIVED_TYPE_TEXT = 1,
  159. PERCEIVED_TYPE_IMAGE = 2,
  160. PERCEIVED_TYPE_AUDIO = 3,
  161. PERCEIVED_TYPE_VIDEO = 4,
  162. PERCEIVED_TYPE_COMPRESSED = 5,
  163. PERCEIVED_TYPE_DOCUMENT = 6,
  164. PERCEIVED_TYPE_SYSTEM = 7,
  165. PERCEIVED_TYPE_APPLICATION = 8,
  166. PERCEIVED_TYPE_GAMEMEDIA = 9,
  167. PERCEIVED_TYPE_CONTACTS = 10,
  168. PERCEIVED_TYPE_LAST = 10
  169. } PERCEIVED;
  170. cpp_quote("")
  171. cpp_quote("#define PERCEIVEDFLAG_UNDEFINED 0x0000")
  172. cpp_quote("#define PERCEIVEDFLAG_SOFTCODED 0x0001")
  173. cpp_quote("#define PERCEIVEDFLAG_HARDCODED 0x0002")
  174. cpp_quote("#define PERCEIVEDFLAG_NATIVESUPPORT 0x0004")
  175. cpp_quote("#define PERCEIVEDFLAG_GDIPLUS 0x0010")
  176. cpp_quote("#define PERCEIVEDFLAG_WMSDK 0x0020")
  177. cpp_quote("#define PERCEIVEDFLAG_ZIPFOLDER 0x0040")
  178. cpp_quote("")
  179. typedef DWORD PERCEIVEDFLAG;
  180. cpp_quote("#endif")
  181. cpp_quote("")
  182. typedef struct _COMDLG_FILTERSPEC {
  183. [string] LPCWSTR pszName;
  184. [string] LPCWSTR pszSpec;
  185. } COMDLG_FILTERSPEC;
  186. cpp_quote("")
  187. typedef GUID KNOWNFOLDERID;
  188. cpp_quote("")
  189. cpp_quote("#if 0")
  190. typedef KNOWNFOLDERID *REFKNOWNFOLDERID;
  191. cpp_quote("#endif")
  192. cpp_quote("")
  193. cpp_quote("#ifdef __cplusplus")
  194. cpp_quote("#define REFKNOWNFOLDERID const KNOWNFOLDERID &")
  195. cpp_quote("#else")
  196. cpp_quote("#define REFKNOWNFOLDERID const KNOWNFOLDERID * __MIDL_CONST")
  197. cpp_quote("#endif")
  198. cpp_quote("")
  199. cpp_quote("typedef DWORD KF_REDIRECT_FLAGS;")
  200. cpp_quote("")
  201. typedef GUID FOLDERTYPEID;
  202. cpp_quote("")
  203. cpp_quote("#if 0")
  204. typedef FOLDERTYPEID *REFFOLDERTYPEID;
  205. cpp_quote("#endif")
  206. cpp_quote("")
  207. cpp_quote("#ifdef __cplusplus")
  208. cpp_quote("#define REFFOLDERTYPEID const FOLDERTYPEID &")
  209. cpp_quote("#else")
  210. cpp_quote("#define REFFOLDERTYPEID const FOLDERTYPEID * __MIDL_CONST")
  211. cpp_quote("#endif")
  212. cpp_quote("")
  213. typedef GUID TASKOWNERID;
  214. cpp_quote("")
  215. cpp_quote("#if 0")
  216. typedef TASKOWNERID *REFTASKOWNERID;
  217. cpp_quote("#endif")
  218. cpp_quote("")
  219. cpp_quote("#ifdef __cplusplus")
  220. cpp_quote("#define REFTASKOWNERID const TASKOWNERID &")
  221. cpp_quote("#else")
  222. cpp_quote("#define REFTASKOWNERID const TASKOWNERID * __MIDL_CONST")
  223. cpp_quote("#endif")
  224. cpp_quote("")
  225. typedef GUID ELEMENTID;
  226. cpp_quote("")
  227. cpp_quote("#if 0")
  228. typedef ELEMENTID *REFELEMENTID;
  229. cpp_quote("#endif")
  230. cpp_quote("")
  231. cpp_quote("#ifdef __cplusplus")
  232. cpp_quote("#define REFELEMENTID const ELEMENTID &")
  233. cpp_quote("#else")
  234. cpp_quote("#define REFELEMENTID const ELEMENTID * __MIDL_CONST")
  235. cpp_quote("#endif")
  236. cpp_quote("")
  237. cpp_quote("#ifndef LF_FACESIZE")
  238. #define LF_FACESIZE 32
  239. typedef struct tagLOGFONTA {
  240. LONG lfHeight;
  241. LONG lfWidth;
  242. LONG lfEscapement;
  243. LONG lfOrientation;
  244. LONG lfWeight;
  245. BYTE lfItalic;
  246. BYTE lfUnderline;
  247. BYTE lfStrikeOut;
  248. BYTE lfCharSet;
  249. BYTE lfOutPrecision;
  250. BYTE lfClipPrecision;
  251. BYTE lfQuality;
  252. BYTE lfPitchAndFamily;
  253. CHAR lfFaceName[LF_FACESIZE];
  254. } LOGFONTA;
  255. cpp_quote("")
  256. typedef struct tagLOGFONTW {
  257. LONG lfHeight;
  258. LONG lfWidth;
  259. LONG lfEscapement;
  260. LONG lfOrientation;
  261. LONG lfWeight;
  262. BYTE lfItalic;
  263. BYTE lfUnderline;
  264. BYTE lfStrikeOut;
  265. BYTE lfCharSet;
  266. BYTE lfOutPrecision;
  267. BYTE lfClipPrecision;
  268. BYTE lfQuality;
  269. BYTE lfPitchAndFamily;
  270. WCHAR lfFaceName[LF_FACESIZE];
  271. } LOGFONTW;
  272. cpp_quote("")
  273. #ifdef UNICODE
  274. typedef LOGFONTW LOGFONT;
  275. #else
  276. typedef LOGFONTA LOGFONT;
  277. #endif
  278. cpp_quote("#endif")
  279. cpp_quote("")
  280. typedef [v1_enum] enum tagSHCOLSTATE {
  281. SHCOLSTATE_DEFAULT = 0x00000000,
  282. SHCOLSTATE_TYPE_STR = 0x00000001,
  283. SHCOLSTATE_TYPE_INT = 0x00000002,
  284. SHCOLSTATE_TYPE_DATE = 0x00000003,
  285. SHCOLSTATE_TYPEMASK = 0x0000000f,
  286. SHCOLSTATE_ONBYDEFAULT = 0x00000010,
  287. SHCOLSTATE_SLOW = 0x00000020,
  288. SHCOLSTATE_EXTENDED = 0x00000040,
  289. SHCOLSTATE_SECONDARYUI = 0x00000080,
  290. SHCOLSTATE_HIDDEN = 0x00000100,
  291. SHCOLSTATE_PREFER_VARCMP = 0x00000200,
  292. SHCOLSTATE_PREFER_FMTCMP = 0x00000400,
  293. SHCOLSTATE_NOSORTBYFOLDERNESS =
  294. 0x00000800,
  295. SHCOLSTATE_VIEWONLY = 0x00010000,
  296. SHCOLSTATE_BATCHREAD = 0x00020000,
  297. SHCOLSTATE_NO_GROUPBY = 0x00040000,
  298. SHCOLSTATE_FIXED_WIDTH = 0x00001000,
  299. SHCOLSTATE_NODPISCALE = 0x00002000,
  300. SHCOLSTATE_FIXED_RATIO = 0x00004000,
  301. SHCOLSTATE_DISPLAYMASK = 0x0000f000
  302. } SHCOLSTATE;
  303. cpp_quote("")
  304. typedef DWORD SHCOLSTATEF;
  305. typedef PROPERTYKEY SHCOLUMNID;
  306. typedef const SHCOLUMNID *LPCSHCOLUMNID;
  307. cpp_quote("")
  308. typedef [v1_enum] enum DEVICE_SCALE_FACTOR {
  309. DEVICE_SCALE_FACTOR_INVALID = 0,
  310. SCALE_100_PERCENT = 100,
  311. SCALE_120_PERCENT = 120,
  312. SCALE_125_PERCENT = 125,
  313. SCALE_140_PERCENT = 140,
  314. SCALE_150_PERCENT = 150,
  315. SCALE_160_PERCENT = 160,
  316. SCALE_175_PERCENT = 175,
  317. SCALE_180_PERCENT = 180,
  318. SCALE_200_PERCENT = 200,
  319. SCALE_225_PERCENT = 225,
  320. SCALE_250_PERCENT = 250,
  321. SCALE_300_PERCENT = 300,
  322. SCALE_350_PERCENT = 350,
  323. SCALE_400_PERCENT = 400,
  324. SCALE_450_PERCENT = 450,
  325. SCALE_500_PERCENT = 500
  326. } DEVICE_SCALE_FACTOR;