wtypesbase.idl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  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 "basetsd.h";
  7. import "guiddef.h";
  8. cpp_quote("")
  9. [uuid (B1BEA154-1c2f-4da9-9abf-6e2d24eea1be), version (0.1), pointer_default (unique)]
  10. interface IWinTypesBase {
  11. cpp_quote("")
  12. cpp_quote("#if 0")
  13. typedef byte BYTE;
  14. typedef unsigned short WORD;
  15. typedef unsigned int UINT;
  16. typedef int INT;
  17. typedef long BOOL;
  18. /*typedef long WINBOOL;*/
  19. typedef long LONG;
  20. typedef unsigned long DWORD;
  21. typedef void *HANDLE;
  22. typedef WORD *LPWORD;
  23. typedef DWORD *LPDWORD;
  24. typedef char CHAR;
  25. typedef [string] CHAR *LPSTR;
  26. typedef [string] const CHAR *LPCSTR;
  27. typedef wchar_t WCHAR;
  28. typedef WCHAR TCHAR;
  29. typedef [string] WCHAR *LPWSTR;
  30. typedef [string] TCHAR *LPTSTR;
  31. typedef [string] const WCHAR *LPCWSTR;
  32. typedef [string] const TCHAR *LPCTSTR;
  33. typedef HANDLE *LPHANDLE;
  34. cpp_quote("#endif")
  35. cpp_quote("")
  36. cpp_quote("#if !defined(OLE2ANSI)")
  37. typedef WCHAR OLECHAR;
  38. typedef [string] OLECHAR *LPOLESTR;
  39. typedef [string] const OLECHAR *LPCOLESTR;
  40. cpp_quote("")
  41. cpp_quote("#define OLESTR(str) L##str")
  42. cpp_quote("#else")
  43. cpp_quote("typedef char OLECHAR;")
  44. cpp_quote("typedef LPSTR LPOLESTR;")
  45. cpp_quote("typedef LPCSTR LPCOLESTR;")
  46. cpp_quote("")
  47. cpp_quote("#define OLESTR(str) str")
  48. cpp_quote("#endif")
  49. cpp_quote("")
  50. cpp_quote("#ifndef _WINDEF_")
  51. cpp_quote("#ifndef _MINWINDEF_")
  52. typedef void *PVOID, *LPVOID;
  53. typedef float FLOAT;
  54. cpp_quote("#endif")
  55. cpp_quote("#endif")
  56. cpp_quote("")
  57. typedef unsigned char UCHAR;
  58. typedef short SHORT;
  59. typedef unsigned short USHORT;
  60. typedef DWORD ULONG;
  61. typedef double DOUBLE;
  62. cpp_quote("#ifndef _DWORDLONG_")
  63. typedef unsigned __int64 DWORDLONG;
  64. typedef DWORDLONG *PDWORDLONG;
  65. cpp_quote("#endif")
  66. cpp_quote("")
  67. cpp_quote("#ifndef _ULONGLONG_")
  68. typedef __int64 LONGLONG;
  69. typedef unsigned __int64 ULONGLONG;
  70. typedef LONGLONG *PLONGLONG;
  71. typedef ULONGLONG *PULONGLONG;
  72. cpp_quote("#endif")
  73. cpp_quote("#if 0")
  74. typedef struct _LARGE_INTEGER {
  75. LONGLONG QuadPart;
  76. } LARGE_INTEGER;
  77. typedef LARGE_INTEGER *PLARGE_INTEGER;
  78. typedef struct _ULARGE_INTEGER {
  79. ULONGLONG QuadPart;
  80. } ULARGE_INTEGER;
  81. cpp_quote("#endif")
  82. cpp_quote("")
  83. cpp_quote("#ifndef _WINBASE_")
  84. cpp_quote("#ifndef _FILETIME_")
  85. cpp_quote("#define _FILETIME_")
  86. cpp_quote("")
  87. typedef struct _FILETIME {
  88. DWORD dwLowDateTime;
  89. DWORD dwHighDateTime;
  90. } FILETIME,*PFILETIME,*LPFILETIME;
  91. cpp_quote("#endif")
  92. cpp_quote("")
  93. cpp_quote("#ifndef _SYSTEMTIME_")
  94. cpp_quote("#define _SYSTEMTIME_")
  95. cpp_quote("")
  96. typedef struct _SYSTEMTIME {
  97. WORD wYear;
  98. WORD wMonth;
  99. WORD wDayOfWeek;
  100. WORD wDay;
  101. WORD wHour;
  102. WORD wMinute;
  103. WORD wSecond;
  104. WORD wMilliseconds;
  105. } SYSTEMTIME,*PSYSTEMTIME,*LPSYSTEMTIME;
  106. cpp_quote("#endif")
  107. cpp_quote("")
  108. cpp_quote("#ifndef _SECURITY_ATTRIBUTES_")
  109. cpp_quote("#define _SECURITY_ATTRIBUTES_")
  110. cpp_quote("")
  111. typedef struct _SECURITY_ATTRIBUTES {
  112. DWORD nLength;
  113. LPVOID lpSecurityDescriptor;
  114. BOOL bInheritHandle;
  115. } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
  116. cpp_quote("#endif")
  117. cpp_quote("")
  118. cpp_quote("#ifndef SECURITY_DESCRIPTOR_REVISION")
  119. typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
  120. typedef PVOID PSID;
  121. cpp_quote("")
  122. typedef struct _ACL {
  123. UCHAR AclRevision;
  124. UCHAR Sbz1;
  125. USHORT AclSize;
  126. USHORT AceCount;
  127. USHORT Sbz2;
  128. } ACL;
  129. cpp_quote("")
  130. typedef ACL *PACL;
  131. cpp_quote("")
  132. typedef struct _SECURITY_DESCRIPTOR {
  133. UCHAR Revision;
  134. UCHAR Sbz1;
  135. SECURITY_DESCRIPTOR_CONTROL Control;
  136. PSID Owner;
  137. PSID Group;
  138. PACL Sacl;
  139. PACL Dacl;
  140. } SECURITY_DESCRIPTOR,*PISECURITY_DESCRIPTOR;
  141. cpp_quote("#endif")
  142. cpp_quote("#endif")
  143. cpp_quote("")
  144. typedef struct _COAUTHIDENTITY {
  145. [size_is (UserLength+1)] USHORT *User;
  146. [range (0, 256)]ULONG UserLength;
  147. [size_is (DomainLength+1)] USHORT *Domain;
  148. [range (0, 256)]ULONG DomainLength;
  149. [size_is (PasswordLength+1)] USHORT *Password;
  150. [range (0, 256)]ULONG PasswordLength;
  151. ULONG Flags;
  152. } COAUTHIDENTITY;
  153. cpp_quote("")
  154. typedef struct _COAUTHINFO {
  155. DWORD dwAuthnSvc;
  156. DWORD dwAuthzSvc;
  157. LPWSTR pwszServerPrincName;
  158. DWORD dwAuthnLevel;
  159. DWORD dwImpersonationLevel;
  160. COAUTHIDENTITY *pAuthIdentityData;
  161. DWORD dwCapabilities;
  162. } COAUTHINFO;
  163. cpp_quote("")
  164. typedef LONG SCODE;
  165. typedef SCODE *PSCODE;
  166. cpp_quote("")
  167. cpp_quote("#ifndef _HRESULT_DEFINED")
  168. cpp_quote("#define _HRESULT_DEFINED")
  169. #if defined (_STRICT_HRESULT)
  170. typedef struct _HRESULT_STRUCT {
  171. DWORD Data1;
  172. } HRESULT_STRUCT,*PHRESULT_STRUCT;
  173. typedef PHRESULT_STRUCT HRESULT;
  174. #else
  175. cpp_quote("#ifdef __WIDL__")
  176. typedef LONG HRESULT;
  177. cpp_quote("#else")
  178. cpp_quote("typedef __LONG32 HRESULT;")
  179. cpp_quote("#endif")
  180. #endif
  181. cpp_quote("#endif")
  182. cpp_quote("")
  183. cpp_quote("#ifndef __OBJECTID_DEFINED")
  184. cpp_quote("#define __OBJECTID_DEFINED")
  185. cpp_quote("#define _OBJECTID_DEFINED")
  186. cpp_quote("")
  187. typedef struct _OBJECTID {
  188. GUID Lineage;
  189. unsigned long Uniquifier;
  190. } OBJECTID;
  191. cpp_quote("#endif")
  192. cpp_quote("")
  193. cpp_quote("#if 0")
  194. typedef GUID *REFGUID;
  195. typedef IID *REFIID;
  196. typedef CLSID *REFCLSID;
  197. cpp_quote("#endif")
  198. cpp_quote("")
  199. typedef enum tagMEMCTX {
  200. MEMCTX_TASK = 1,
  201. MEMCTX_SHARED = 2,
  202. MEMCTX_MACSYSTEM = 3,
  203. MEMCTX_UNKNOWN = -1,
  204. MEMCTX_SAME = -2,
  205. } MEMCTX;
  206. cpp_quote("#ifndef _ROTREGFLAGS_DEFINED")
  207. cpp_quote("#define _ROTREGFLAGS_DEFINED")
  208. cpp_quote("")
  209. cpp_quote("#define ROTREGFLAGS_ALLOWANYCLIENT 0x1")
  210. cpp_quote("#endif")
  211. cpp_quote("")
  212. cpp_quote("#ifndef _APPIDREGFLAGS_DEFINED")
  213. cpp_quote("#define _APPIDREGFLAGS_DEFINED")
  214. cpp_quote("")
  215. cpp_quote("#define APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP 0x1")
  216. cpp_quote("#define APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 0x2")
  217. cpp_quote("#define APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 0x4")
  218. cpp_quote("#define APPIDREGFLAGS_IUSERVER_UNMODIFIED_LOGON_TOKEN 0x8")
  219. cpp_quote("#define APPIDREGFLAGS_IUSERVER_SELF_SID_IN_LAUNCH_PERMISSION 0x10")
  220. cpp_quote("#define APPIDREGFLAGS_IUSERVER_ACTIVATE_IN_CLIENT_SESSION_ONLY 0x20")
  221. cpp_quote("#define APPIDREGFLAGS_RESERVED1 0x40")
  222. cpp_quote("#endif")
  223. cpp_quote("")
  224. cpp_quote("#ifndef _DCOMSCM_REMOTECALL_FLAGS_DEFINED")
  225. cpp_quote("#define _DCOMSCM_REMOTECALL_FLAGS_DEFINED")
  226. cpp_quote("")
  227. cpp_quote("#define DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES 0x1")
  228. cpp_quote("#define DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL 0x2")
  229. cpp_quote("#define DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES 0x4")
  230. cpp_quote("#define DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL 0x8")
  231. cpp_quote("#define DCOMSCM_PING_USE_MID_AUTHNSERVICE 0x10")
  232. cpp_quote("#define DCOMSCM_PING_DISALLOW_UNSECURE_CALL 0x20")
  233. cpp_quote("#endif")
  234. cpp_quote("")
  235. typedef enum tagCLSCTX {
  236. CLSCTX_INPROC_SERVER = 0x01,
  237. CLSCTX_INPROC_HANDLER = 0x02,
  238. CLSCTX_LOCAL_SERVER = 0x04,
  239. CLSCTX_INPROC_SERVER16 = 0x08,
  240. CLSCTX_REMOTE_SERVER = 0x10,
  241. CLSCTX_INPROC_HANDLER16 = 0x20,
  242. CLSCTX_RESERVED1 = 0x40,
  243. CLSCTX_RESERVED2 = 0x80,
  244. CLSCTX_RESERVED3 = 0x100,
  245. CLSCTX_RESERVED4 = 0x200,
  246. CLSCTX_NO_CODE_DOWNLOAD = 0x400,
  247. CLSCTX_RESERVED5 = 0x800,
  248. CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
  249. CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
  250. CLSCTX_NO_FAILURE_LOG = 0x4000,
  251. CLSCTX_DISABLE_AAA = 0x8000,
  252. CLSCTX_ENABLE_AAA = 0x10000,
  253. CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000,
  254. CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000,
  255. CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000,
  256. CLSCTX_ENABLE_CLOAKING = 0x100000,
  257. CLSCTX_APPCONTAINER = 0x400000,
  258. CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000,
  259. CLSCTX_PS_DLL = (int) 0x80000000,
  260. } CLSCTX;
  261. cpp_quote("")
  262. cpp_quote("#define CLSCTX_VALID_MASK (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER16 | CLSCTX_REMOTE_SERVER | CLSCTX_NO_CODE_DOWNLOAD | CLSCTX_NO_CUSTOM_MARSHAL | CLSCTX_ENABLE_CODE_DOWNLOAD | CLSCTX_NO_FAILURE_LOG | CLSCTX_DISABLE_AAA | CLSCTX_ENABLE_AAA | CLSCTX_FROM_DEFAULT_CONTEXT | CLSCTX_ACTIVATE_32_BIT_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER | CLSCTX_ENABLE_CLOAKING | CLSCTX_APPCONTAINER | CLSCTX_ACTIVATE_AAA_AS_IU | CLSCTX_PS_DLL)")
  263. cpp_quote("")
  264. typedef enum tagMSHLFLAGS {
  265. MSHLFLAGS_NORMAL = 0,
  266. MSHLFLAGS_TABLESTRONG = 1,
  267. MSHLFLAGS_TABLEWEAK = 2,
  268. MSHLFLAGS_NOPING = 4,
  269. MSHLFLAGS_RESERVED1 = 8,
  270. MSHLFLAGS_RESERVED2 = 16,
  271. MSHLFLAGS_RESERVED3 = 32,
  272. MSHLFLAGS_RESERVED4 = 64
  273. } MSHLFLAGS;
  274. cpp_quote("")
  275. typedef enum tagMSHCTX {
  276. MSHCTX_LOCAL = 0,
  277. MSHCTX_NOSHAREDMEM = 1,
  278. MSHCTX_DIFFERENTMACHINE = 2,
  279. MSHCTX_INPROC = 3,
  280. MSHCTX_CROSSCTX = 4
  281. } MSHCTX;
  282. cpp_quote("")
  283. typedef struct _BYTE_BLOB {
  284. unsigned long clSize;
  285. [size_is (clSize)] byte abData[];
  286. } BYTE_BLOB;
  287. cpp_quote("")
  288. typedef [unique] BYTE_BLOB *UP_BYTE_BLOB;
  289. cpp_quote("")
  290. typedef struct _WORD_BLOB {
  291. unsigned long clSize;
  292. [size_is (clSize)] unsigned short asData[];
  293. } WORD_BLOB;
  294. cpp_quote("")
  295. typedef [unique] WORD_BLOB *UP_WORD_BLOB;
  296. cpp_quote("")
  297. typedef struct _DWORD_BLOB {
  298. unsigned long clSize;
  299. [size_is (clSize)] unsigned long alData[];
  300. } DWORD_BLOB;
  301. cpp_quote("")
  302. typedef [unique] DWORD_BLOB *UP_DWORD_BLOB;
  303. cpp_quote("")
  304. typedef struct _FLAGGED_BYTE_BLOB {
  305. unsigned long fFlags;
  306. unsigned long clSize;
  307. [size_is (clSize)] byte abData[];
  308. } FLAGGED_BYTE_BLOB;
  309. cpp_quote("")
  310. typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
  311. cpp_quote("")
  312. typedef struct _FLAGGED_WORD_BLOB {
  313. unsigned long fFlags;
  314. unsigned long clSize;
  315. [size_is (clSize)] unsigned short asData[];
  316. } FLAGGED_WORD_BLOB;
  317. cpp_quote("")
  318. typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
  319. cpp_quote("")
  320. typedef struct _BYTE_SIZEDARR {
  321. unsigned long clSize;
  322. [size_is (clSize)] byte *pData;
  323. } BYTE_SIZEDARR;
  324. cpp_quote("")
  325. typedef struct _SHORT_SIZEDARR {
  326. unsigned long clSize;
  327. [size_is (clSize)] unsigned short *pData;
  328. } WORD_SIZEDARR;
  329. cpp_quote("")
  330. typedef struct _LONG_SIZEDARR {
  331. unsigned long clSize;
  332. [size_is (clSize)] unsigned long *pData;
  333. } DWORD_SIZEDARR;
  334. cpp_quote("")
  335. typedef struct _HYPER_SIZEDARR {
  336. unsigned long clSize;
  337. [size_is (clSize)] hyper *pData;
  338. } HYPER_SIZEDARR;
  339. }
  340. cpp_quote("")
  341. typedef boolean BOOLEAN;
  342. cpp_quote("#ifndef _tagBLOB_DEFINED")
  343. cpp_quote("#define _tagBLOB_DEFINED")
  344. cpp_quote("#define _BLOB_DEFINED")
  345. cpp_quote("#define _LPBLOB_DEFINED")
  346. cpp_quote("")
  347. typedef struct tagBLOB {
  348. ULONG cbSize;
  349. [size_is (cbSize)] BYTE *pBlobData;
  350. } BLOB,*LPBLOB;
  351. cpp_quote("#endif")
  352. cpp_quote("")
  353. cpp_quote("#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED")
  354. cpp_quote("#define SID_IDENTIFIER_AUTHORITY_DEFINED")
  355. typedef struct _SID_IDENTIFIER_AUTHORITY {
  356. UCHAR Value[6];
  357. } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
  358. cpp_quote("#endif")
  359. cpp_quote("")
  360. cpp_quote("#ifndef SID_DEFINED")
  361. cpp_quote("#define SID_DEFINED")
  362. cpp_quote("")
  363. typedef struct _SID {
  364. BYTE Revision;
  365. BYTE SubAuthorityCount;
  366. SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  367. [size_is (SubAuthorityCount)] ULONG SubAuthority[*];
  368. } SID,*PISID;
  369. cpp_quote("")
  370. typedef struct _SID_AND_ATTRIBUTES {
  371. SID *Sid;
  372. DWORD Attributes;
  373. } SID_AND_ATTRIBUTES,*PSID_AND_ATTRIBUTES;
  374. cpp_quote("#endif")