WTypes.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:30k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for wtypes.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef __wtypes_h__
  23. #define __wtypes_h__
  24. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  25. #pragma once
  26. #endif
  27. /* Forward Declarations */ 
  28. /* header files for imported files */
  29. #include "basetsd.h"
  30. #include "guiddef.h"
  31. #ifdef __cplusplus
  32. extern "C"{
  33. #endif 
  34. void * __RPC_USER MIDL_user_allocate(size_t);
  35. void __RPC_USER MIDL_user_free( void * ); 
  36. /* interface __MIDL_itf_wtypes_0000 */
  37. /* [local] */ 
  38. //+-------------------------------------------------------------------------
  39. //
  40. //  Microsoft Windows
  41. //  Copyright (c) Microsoft Corporation. All rights reserved.
  42. //
  43. //--------------------------------------------------------------------------
  44. #if ( _MSC_VER >= 1020 )
  45. #pragma once
  46. #endif
  47. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_v0_0_c_ifspec;
  48. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_v0_0_s_ifspec;
  49. #ifndef __IWinTypes_INTERFACE_DEFINED__
  50. #define __IWinTypes_INTERFACE_DEFINED__
  51. /* interface IWinTypes */
  52. /* [auto_handle][unique][version][uuid] */ 
  53. typedef struct tagRemHGLOBAL
  54.     {
  55.     long fNullHGlobal;
  56.     unsigned long cbData;
  57.     /* [size_is] */ byte data[ 1 ];
  58.     }  RemHGLOBAL;
  59. typedef struct tagRemHMETAFILEPICT
  60.     {
  61.     long mm;
  62.     long xExt;
  63.     long yExt;
  64.     unsigned long cbData;
  65.     /* [size_is] */ byte data[ 1 ];
  66.     }  RemHMETAFILEPICT;
  67. typedef struct tagRemHENHMETAFILE
  68.     {
  69.     unsigned long cbData;
  70.     /* [size_is] */ byte data[ 1 ];
  71.     }  RemHENHMETAFILE;
  72. typedef struct tagRemHBITMAP
  73.     {
  74.     unsigned long cbData;
  75.     /* [size_is] */ byte data[ 1 ];
  76.     }  RemHBITMAP;
  77. typedef struct tagRemHPALETTE
  78.     {
  79.     unsigned long cbData;
  80.     /* [size_is] */ byte data[ 1 ];
  81.     }  RemHPALETTE;
  82. typedef struct tagRemBRUSH
  83.     {
  84.     unsigned long cbData;
  85.     /* [size_is] */ byte data[ 1 ];
  86.     }  RemHBRUSH;
  87. #if !defined(_WIN32) && !defined(_MPPC_)
  88. // The following code is for Win16 only
  89. #ifndef WINAPI          // If not included with 3.1 headers...
  90. #define FAR             _far
  91. #define PASCAL          _pascal
  92. #define CDECL           _cdecl
  93. #define VOID            void
  94. #define WINAPI      FAR PASCAL
  95. #define CALLBACK    FAR PASCAL
  96. #ifndef FALSE
  97. #define FALSE 0
  98. #define TRUE 1
  99. #endif // !FALSE
  100. #ifndef _BYTE_DEFINED
  101. #define _BYTE_DEFINED
  102. typedef byte BYTE;
  103. #endif // !_BYTE_DEFINED
  104. #ifndef _WORD_DEFINED
  105. #define _WORD_DEFINED
  106. typedef unsigned short WORD;
  107. #endif // !_WORD_DEFINED
  108. typedef unsigned int UINT;
  109. typedef int INT;
  110. typedef long BOOL;
  111. #ifndef _LONG_DEFINED
  112. #define _LONG_DEFINED
  113. typedef long LONG;
  114. #endif // !_LONG_DEFINED
  115. #ifndef _WPARAM_DEFINED
  116. #define _WPARAM_DEFINED
  117. typedef UINT_PTR WPARAM;
  118. #endif // _WPARAM_DEFINED
  119. #ifndef _DWORD_DEFINED
  120. #define _DWORD_DEFINED
  121. typedef unsigned long DWORD;
  122. #endif // !_DWORD_DEFINED
  123. #ifndef _LPARAM_DEFINED
  124. #define _LPARAM_DEFINED
  125. typedef LONG_PTR LPARAM;
  126. #endif // !_LPARAM_DEFINED
  127. #ifndef _LRESULT_DEFINED
  128. #define _LRESULT_DEFINED
  129. typedef LONG_PTR LRESULT;
  130. #endif // !_LRESULT_DEFINED
  131. typedef void *HANDLE;
  132. typedef void *HMODULE;
  133. typedef void *HINSTANCE;
  134. typedef void *HRGN;
  135. typedef void *HTASK;
  136. typedef void *HKEY;
  137. typedef void *HDESK;
  138. typedef void *HMF;
  139. typedef void *HEMF;
  140. typedef void *HPEN;
  141. typedef void *HRSRC;
  142. typedef void *HSTR;
  143. typedef void *HWINSTA;
  144. typedef void *HKL;
  145. typedef void *HGDIOBJ;
  146. typedef HANDLE HDWP;
  147. #ifndef _HFILE_DEFINED
  148. #define _HFILE_DEFINED
  149. typedef INT HFILE;
  150. #endif // !_HFILE_DEFINED
  151. #ifndef _LPWORD_DEFINED
  152. #define _LPWORD_DEFINED
  153. typedef WORD *LPWORD;
  154. #endif // !_LPWORD_DEFINED
  155. #ifndef _LPDWORD_DEFINED
  156. #define _LPDWORD_DEFINED
  157. typedef DWORD *LPDWORD;
  158. #endif // !_LPDWORD_DEFINED
  159. typedef char CHAR;
  160. typedef /* [string] */ CHAR *LPSTR;
  161. typedef /* [string] */ const CHAR *LPCSTR;
  162. #ifndef _WCHAR_DEFINED
  163. #define _WCHAR_DEFINED
  164. typedef wchar_t WCHAR;
  165. typedef WCHAR TCHAR;
  166. #endif // !_WCHAR_DEFINED
  167. typedef /* [string] */ WCHAR *LPWSTR;
  168. typedef /* [string] */ TCHAR *LPTSTR;
  169. typedef /* [string] */ const WCHAR *LPCWSTR;
  170. typedef /* [string] */ const TCHAR *LPCTSTR;
  171. #ifndef _COLORREF_DEFINED
  172. #define _COLORREF_DEFINED
  173. typedef DWORD COLORREF;
  174. #endif // !_COLORREF_DEFINED
  175. #ifndef _LPCOLORREF_DEFINED
  176. #define _LPCOLORREF_DEFINED
  177. typedef DWORD *LPCOLORREF;
  178. #endif // !_LPCOLORREF_DEFINED
  179. typedef HANDLE *LPHANDLE;
  180. typedef struct _RECTL
  181.     {
  182.     LONG left;
  183.     LONG top;
  184.     LONG right;
  185.     LONG bottom;
  186.     }  RECTL;
  187. typedef struct _RECTL *PRECTL;
  188. typedef struct _RECTL *LPRECTL;
  189. typedef struct tagPOINT
  190.     {
  191.     LONG x;
  192.     LONG y;
  193.     }  POINT;
  194. typedef struct tagPOINT *PPOINT;
  195. typedef struct tagPOINT *LPPOINT;
  196. typedef struct _POINTL
  197.     {
  198.     LONG x;
  199.     LONG y;
  200.     }  POINTL;
  201. typedef struct _POINTL *PPOINTL;
  202. #ifndef WIN16
  203. typedef struct tagSIZE
  204.     {
  205.     LONG cx;
  206.     LONG cy;
  207.     }  SIZE;
  208. typedef struct tagSIZE *PSIZE;
  209. typedef struct tagSIZE *LPSIZE;
  210. #else // WIN16
  211. typedef struct tagSIZE
  212. {
  213.     INT cx;
  214.     INT cy;
  215. } SIZE, *PSIZE, *LPSIZE;
  216. #endif // WIN16
  217. typedef struct tagSIZEL
  218.     {
  219.     LONG cx;
  220.     LONG cy;
  221.     }  SIZEL;
  222. typedef struct tagSIZEL *PSIZEL;
  223. typedef struct tagSIZEL *LPSIZEL;
  224. #endif  //WINAPI
  225. #endif  //!WIN32 && !MPPC
  226. #ifndef _PALETTEENTRY_DEFINED
  227. #define _PALETTEENTRY_DEFINED
  228. typedef struct tagPALETTEENTRY
  229.     {
  230.     BYTE peRed;
  231.     BYTE peGreen;
  232.     BYTE peBlue;
  233.     BYTE peFlags;
  234.     }  PALETTEENTRY;
  235. typedef struct tagPALETTEENTRY *PPALETTEENTRY;
  236. typedef struct tagPALETTEENTRY *LPPALETTEENTRY;
  237. #endif // !_PALETTEENTRY_DEFINED
  238. #ifndef _LOGPALETTE_DEFINED
  239. #define _LOGPALETTE_DEFINED
  240. typedef struct tagLOGPALETTE
  241.     {
  242.     WORD palVersion;
  243.     WORD palNumEntries;
  244.     /* [size_is] */ PALETTEENTRY palPalEntry[ 1 ];
  245.     }  LOGPALETTE;
  246. typedef struct tagLOGPALETTE *PLOGPALETTE;
  247. typedef struct tagLOGPALETTE *LPLOGPALETTE;
  248. #endif // !_LOGPALETTE_DEFINED
  249. #if defined(_WIN32) && !defined(OLE2ANSI)
  250. typedef WCHAR OLECHAR;
  251. typedef /* [string] */ OLECHAR *LPOLESTR;
  252. typedef /* [string] */ const OLECHAR *LPCOLESTR;
  253. #define OLESTR(str) L##str
  254. #else
  255. typedef char      OLECHAR;
  256. typedef LPSTR     LPOLESTR;
  257. typedef LPCSTR    LPCOLESTR;
  258. #define OLESTR(str) str
  259. #endif
  260. #ifndef _WINDEF_
  261. typedef const RECTL *LPCRECTL;
  262. typedef void *PVOID;
  263. typedef void *LPVOID;
  264. typedef float FLOAT;
  265. typedef struct tagRECT
  266.     {
  267.     LONG left;
  268.     LONG top;
  269.     LONG right;
  270.     LONG bottom;
  271.     }  RECT;
  272. typedef struct tagRECT *PRECT;
  273. typedef struct tagRECT *LPRECT;
  274. typedef const RECT *LPCRECT;
  275. #endif  //_WINDEF_
  276. typedef unsigned char UCHAR;
  277. typedef short SHORT;
  278. typedef unsigned short USHORT;
  279. typedef DWORD ULONG;
  280. typedef double DOUBLE;
  281. #ifndef _DWORDLONG_
  282. typedef unsigned __int64 DWORDLONG;
  283. typedef DWORDLONG *PDWORDLONG;
  284. #endif // !_DWORDLONG_
  285. #ifndef _ULONGLONG_
  286. typedef __int64 LONGLONG;
  287. typedef unsigned __int64 ULONGLONG;
  288. typedef LONGLONG *PLONGLONG;
  289. typedef ULONGLONG *PULONGLONG;
  290. #endif // _ULONGLONG_
  291. #if 0
  292. typedef struct _LARGE_INTEGER
  293.     {
  294.     LONGLONG QuadPart;
  295.     }  LARGE_INTEGER;
  296. typedef LARGE_INTEGER *PLARGE_INTEGER;
  297. typedef struct _ULARGE_INTEGER
  298.     {
  299.     ULONGLONG QuadPart;
  300.     }  ULARGE_INTEGER;
  301. #endif // 0
  302. #ifndef _WINBASE_
  303. #ifndef _FILETIME_
  304. #define _FILETIME_
  305. typedef struct _FILETIME
  306.     {
  307.     DWORD dwLowDateTime;
  308.     DWORD dwHighDateTime;
  309.     }  FILETIME;
  310. typedef struct _FILETIME *PFILETIME;
  311. typedef struct _FILETIME *LPFILETIME;
  312. #endif // !_FILETIME
  313. #ifndef _SYSTEMTIME_
  314. #define _SYSTEMTIME_
  315. typedef struct _SYSTEMTIME
  316.     {
  317.     WORD wYear;
  318.     WORD wMonth;
  319.     WORD wDayOfWeek;
  320.     WORD wDay;
  321.     WORD wHour;
  322.     WORD wMinute;
  323.     WORD wSecond;
  324.     WORD wMilliseconds;
  325.     }  SYSTEMTIME;
  326. typedef struct _SYSTEMTIME *PSYSTEMTIME;
  327. typedef struct _SYSTEMTIME *LPSYSTEMTIME;
  328. #endif // !_SYSTEMTIME
  329. #ifndef _SECURITY_ATTRIBUTES_
  330. #define _SECURITY_ATTRIBUTES_
  331. typedef struct _SECURITY_ATTRIBUTES
  332.     {
  333.     DWORD nLength;
  334.     /* [size_is] */ LPVOID lpSecurityDescriptor;
  335.     BOOL bInheritHandle;
  336.     }  SECURITY_ATTRIBUTES;
  337. typedef struct _SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES;
  338. typedef struct _SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES;
  339. #endif // !_SECURITY_ATTRIBUTES_
  340. #ifndef SECURITY_DESCRIPTOR_REVISION
  341. typedef USHORT SECURITY_DESCRIPTOR_CONTROL;
  342. typedef USHORT *PSECURITY_DESCRIPTOR_CONTROL;
  343. typedef PVOID PSID;
  344. typedef struct _ACL
  345.     {
  346.     UCHAR AclRevision;
  347.     UCHAR Sbz1;
  348.     USHORT AclSize;
  349.     USHORT AceCount;
  350.     USHORT Sbz2;
  351.     }  ACL;
  352. typedef ACL *PACL;
  353. typedef struct _SECURITY_DESCRIPTOR
  354.     {
  355.     UCHAR Revision;
  356.     UCHAR Sbz1;
  357.     SECURITY_DESCRIPTOR_CONTROL Control;
  358.     PSID Owner;
  359.     PSID Group;
  360.     PACL Sacl;
  361.     PACL Dacl;
  362.     }  SECURITY_DESCRIPTOR;
  363. typedef struct _SECURITY_DESCRIPTOR *PISECURITY_DESCRIPTOR;
  364. #endif // !SECURITY_DESCRIPTOR_REVISION
  365. #endif //_WINBASE_
  366. typedef struct _COAUTHIDENTITY
  367.     {
  368.     /* [size_is] */ USHORT *User;
  369.     ULONG UserLength;
  370.     /* [size_is] */ USHORT *Domain;
  371.     ULONG DomainLength;
  372.     /* [size_is] */ USHORT *Password;
  373.     ULONG PasswordLength;
  374.     ULONG Flags;
  375.     }  COAUTHIDENTITY;
  376. typedef struct _COAUTHINFO
  377.     {
  378.     DWORD dwAuthnSvc;
  379.     DWORD dwAuthzSvc;
  380.     LPWSTR pwszServerPrincName;
  381.     DWORD dwAuthnLevel;
  382.     DWORD dwImpersonationLevel;
  383.     COAUTHIDENTITY *pAuthIdentityData;
  384.     DWORD dwCapabilities;
  385.     }  COAUTHINFO;
  386. typedef LONG SCODE;
  387. #ifndef _HRESULT_DEFINED
  388. #define _HRESULT_DEFINED
  389. typedef LONG HRESULT;
  390. #endif // !_HRESULT_DEFINED
  391. typedef SCODE *PSCODE;
  392. #ifndef __OBJECTID_DEFINED
  393. #define __OBJECTID_DEFINED
  394. #define _OBJECTID_DEFINED
  395. typedef struct _OBJECTID
  396.     {
  397.     GUID Lineage;
  398.     unsigned long Uniquifier;
  399.     }  OBJECTID;
  400. #endif // !_OBJECTID_DEFINED
  401. #if 0
  402. typedef GUID *REFGUID;
  403. typedef IID *REFIID;
  404. typedef CLSID *REFCLSID;
  405. typedef FMTID *REFFMTID;
  406. #endif // 0
  407. typedef 
  408. enum tagMEMCTX
  409.     { MEMCTX_TASK = 1,
  410. MEMCTX_SHARED = 2,
  411. MEMCTX_MACSYSTEM = 3,
  412. MEMCTX_UNKNOWN = -1,
  413. MEMCTX_SAME = -2
  414.     }  MEMCTX;
  415. #ifndef _ROTFLAGS_DEFINED
  416. #define _ROTFLAGS_DEFINED
  417. #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
  418. #define ROTFLAGS_ALLOWANYCLIENT 0x2
  419. #endif // !_ROTFLAGS_DEFINED
  420. #ifndef _ROT_COMPARE_MAX_DEFINED
  421. #define _ROT_COMPARE_MAX_DEFINED
  422. #define ROT_COMPARE_MAX 2048
  423. #endif // !_ROT_COMPARE_MAX_DEFINED
  424. typedef 
  425. enum tagCLSCTX
  426.     { CLSCTX_INPROC_SERVER = 0x1,
  427. CLSCTX_INPROC_HANDLER = 0x2,
  428. CLSCTX_LOCAL_SERVER = 0x4,
  429. CLSCTX_INPROC_SERVER16 = 0x8,
  430. CLSCTX_REMOTE_SERVER = 0x10,
  431. CLSCTX_INPROC_HANDLER16 = 0x20,
  432. CLSCTX_INPROC_SERVERX86 = 0x40,
  433. CLSCTX_INPROC_HANDLERX86 = 0x80,
  434. CLSCTX_ESERVER_HANDLER = 0x100,
  435. CLSCTX_RESERVED = 0x200,
  436. CLSCTX_NO_CODE_DOWNLOAD = 0x400,
  437. CLSCTX_NO_WX86_TRANSLATION = 0x800,
  438. CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
  439. CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
  440. CLSCTX_NO_FAILURE_LOG = 0x4000,
  441. CLSCTX_DISABLE_AAA = 0x8000,
  442. CLSCTX_ENABLE_AAA = 0x10000,
  443. CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
  444.     }  CLSCTX;
  445. typedef 
  446. enum tagMSHLFLAGS
  447.     { MSHLFLAGS_NORMAL = 0,
  448. MSHLFLAGS_TABLESTRONG = 1,
  449. MSHLFLAGS_TABLEWEAK = 2,
  450. MSHLFLAGS_NOPING = 4,
  451. MSHLFLAGS_RESERVED1 = 8,
  452. MSHLFLAGS_RESERVED2 = 16,
  453. MSHLFLAGS_RESERVED3 = 32,
  454. MSHLFLAGS_RESERVED4 = 64
  455.     }  MSHLFLAGS;
  456. typedef 
  457. enum tagMSHCTX
  458.     { MSHCTX_LOCAL = 0,
  459. MSHCTX_NOSHAREDMEM = 1,
  460. MSHCTX_DIFFERENTMACHINE = 2,
  461. MSHCTX_INPROC = 3,
  462. MSHCTX_CROSSCTX = 4
  463.     }  MSHCTX;
  464. typedef 
  465. enum tagDVASPECT
  466.     { DVASPECT_CONTENT = 1,
  467. DVASPECT_THUMBNAIL = 2,
  468. DVASPECT_ICON = 4,
  469. DVASPECT_DOCPRINT = 8
  470.     }  DVASPECT;
  471. typedef 
  472. enum tagSTGC
  473.     { STGC_DEFAULT = 0,
  474. STGC_OVERWRITE = 1,
  475. STGC_ONLYIFCURRENT = 2,
  476. STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
  477. STGC_CONSOLIDATE = 8
  478.     }  STGC;
  479. typedef 
  480. enum tagSTGMOVE
  481.     { STGMOVE_MOVE = 0,
  482. STGMOVE_COPY = 1,
  483. STGMOVE_SHALLOWCOPY = 2
  484.     }  STGMOVE;
  485. typedef 
  486. enum tagSTATFLAG
  487.     { STATFLAG_DEFAULT = 0,
  488. STATFLAG_NONAME = 1,
  489. STATFLAG_NOOPEN = 2
  490.     }  STATFLAG;
  491. typedef /* [context_handle] */ void *HCONTEXT;
  492. #ifndef _LCID_DEFINED
  493. #define _LCID_DEFINED
  494. typedef DWORD LCID;
  495. #endif // !_LCID_DEFINED
  496. #ifndef _LANGID_DEFINED
  497. #define _LANGID_DEFINED
  498. typedef USHORT LANGID;
  499. #endif // !_LANGID_DEFINED
  500. typedef struct _BYTE_BLOB
  501.     {
  502.     unsigned long clSize;
  503.     /* [size_is] */ byte abData[ 1 ];
  504.     }  BYTE_BLOB;
  505. typedef /* [unique] */ BYTE_BLOB *UP_BYTE_BLOB;
  506. typedef struct _WORD_BLOB
  507.     {
  508.     unsigned long clSize;
  509.     /* [size_is] */ unsigned short asData[ 1 ];
  510.     }  WORD_BLOB;
  511. typedef /* [unique] */ WORD_BLOB *UP_WORD_BLOB;
  512. typedef struct _DWORD_BLOB
  513.     {
  514.     unsigned long clSize;
  515.     /* [size_is] */ unsigned long alData[ 1 ];
  516.     }  DWORD_BLOB;
  517. typedef /* [unique] */ DWORD_BLOB *UP_DWORD_BLOB;
  518. typedef struct _FLAGGED_BYTE_BLOB
  519.     {
  520.     unsigned long fFlags;
  521.     unsigned long clSize;
  522.     /* [size_is] */ byte abData[ 1 ];
  523.     }  FLAGGED_BYTE_BLOB;
  524. typedef /* [unique] */ FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB;
  525. typedef struct _FLAGGED_WORD_BLOB
  526.     {
  527.     unsigned long fFlags;
  528.     unsigned long clSize;
  529.     /* [size_is] */ unsigned short asData[ 1 ];
  530.     }  FLAGGED_WORD_BLOB;
  531. typedef /* [unique] */ FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB;
  532. typedef struct _BYTE_SIZEDARR
  533.     {
  534.     unsigned long clSize;
  535.     /* [size_is] */ byte *pData;
  536.     }  BYTE_SIZEDARR;
  537. typedef struct _SHORT_SIZEDARR
  538.     {
  539.     unsigned long clSize;
  540.     /* [size_is] */ unsigned short *pData;
  541.     }  WORD_SIZEDARR;
  542. typedef struct _LONG_SIZEDARR
  543.     {
  544.     unsigned long clSize;
  545.     /* [size_is] */ unsigned long *pData;
  546.     }  DWORD_SIZEDARR;
  547. typedef struct _HYPER_SIZEDARR
  548.     {
  549.     unsigned long clSize;
  550.     /* [size_is] */ hyper *pData;
  551.     }  HYPER_SIZEDARR;
  552. #define WDT_INPROC_CALL ( 0x48746457 )
  553. #define WDT_REMOTE_CALL ( 0x52746457 )
  554. #define WDT_INPROC64_CALL ( 0x50746457 )
  555. typedef struct _userCLIPFORMAT
  556.     {
  557.     long fContext;
  558.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0001
  559.         {
  560.         /* [case()] */ DWORD dwValue;
  561.         /* [case()][string] */ wchar_t *pwszName;
  562.         }  u;
  563.     }  userCLIPFORMAT;
  564. typedef /* [unique] */ userCLIPFORMAT *wireCLIPFORMAT;
  565. typedef /* [wire_marshal] */ WORD CLIPFORMAT;
  566. typedef struct _GDI_NONREMOTE
  567.     {
  568.     long fContext;
  569.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0002
  570.         {
  571.         /* [case()] */ long hInproc;
  572.         /* [case()] */ DWORD_BLOB *hRemote;
  573.         }  u;
  574.     }  GDI_NONREMOTE;
  575. typedef struct _userHGLOBAL
  576.     {
  577.     long fContext;
  578.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0003
  579.         {
  580.         /* [case()] */ long hInproc;
  581.         /* [case()] */ FLAGGED_BYTE_BLOB *hRemote;
  582.         /* [case()] */ __int64 hInproc64;
  583.         }  u;
  584.     }  userHGLOBAL;
  585. typedef /* [unique] */ userHGLOBAL *wireHGLOBAL;
  586. typedef struct _userHMETAFILE
  587.     {
  588.     long fContext;
  589.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0004
  590.         {
  591.         /* [case()] */ long hInproc;
  592.         /* [case()] */ BYTE_BLOB *hRemote;
  593.         /* [case()] */ __int64 hInproc64;
  594.         }  u;
  595.     }  userHMETAFILE;
  596. typedef struct _remoteMETAFILEPICT
  597.     {
  598.     long mm;
  599.     long xExt;
  600.     long yExt;
  601.     userHMETAFILE *hMF;
  602.     }  remoteMETAFILEPICT;
  603. typedef struct _userHMETAFILEPICT
  604.     {
  605.     long fContext;
  606.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0005
  607.         {
  608.         /* [case()] */ long hInproc;
  609.         /* [case()] */ remoteMETAFILEPICT *hRemote;
  610.         /* [case()] */ __int64 hInproc64;
  611.         }  u;
  612.     }  userHMETAFILEPICT;
  613. typedef struct _userHENHMETAFILE
  614.     {
  615.     long fContext;
  616.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0006
  617.         {
  618.         /* [case()] */ long hInproc;
  619.         /* [case()] */ BYTE_BLOB *hRemote;
  620.         /* [case()] */ __int64 hInproc64;
  621.         }  u;
  622.     }  userHENHMETAFILE;
  623. typedef struct _userBITMAP
  624.     {
  625.     LONG bmType;
  626.     LONG bmWidth;
  627.     LONG bmHeight;
  628.     LONG bmWidthBytes;
  629.     WORD bmPlanes;
  630.     WORD bmBitsPixel;
  631.     ULONG cbSize;
  632.     /* [size_is] */ byte pBuffer[ 1 ];
  633.     }  userBITMAP;
  634. typedef struct _userHBITMAP
  635.     {
  636.     long fContext;
  637.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0007
  638.         {
  639.         /* [case()] */ long hInproc;
  640.         /* [case()] */ userBITMAP *hRemote;
  641.         /* [case()] */ __int64 hInproc64;
  642.         }  u;
  643.     }  userHBITMAP;
  644. typedef struct _userHPALETTE
  645.     {
  646.     long fContext;
  647.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0008
  648.         {
  649.         /* [case()] */ long hInproc;
  650.         /* [case()] */ LOGPALETTE *hRemote;
  651.         /* [case()] */ __int64 hInproc64;
  652.         }  u;
  653.     }  userHPALETTE;
  654. typedef struct _RemotableHandle
  655.     {
  656.     long fContext;
  657.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0009
  658.         {
  659.         /* [case()] */ long hInproc;
  660.         /* [case()] */ long hRemote;
  661.         }  u;
  662.     }  RemotableHandle;
  663. typedef /* [unique] */ RemotableHandle *wireHWND;
  664. typedef /* [unique] */ RemotableHandle *wireHMENU;
  665. typedef /* [unique] */ RemotableHandle *wireHACCEL;
  666. typedef /* [unique] */ RemotableHandle *wireHBRUSH;
  667. typedef /* [unique] */ RemotableHandle *wireHFONT;
  668. typedef /* [unique] */ RemotableHandle *wireHDC;
  669. typedef /* [unique] */ RemotableHandle *wireHICON;
  670. #if 0
  671. typedef /* [wire_marshal] */ void *HWND;
  672. typedef /* [wire_marshal] */ void *HMENU;
  673. typedef /* [wire_marshal] */ void *HACCEL;
  674. typedef /* [wire_marshal] */ void *HBRUSH;
  675. typedef /* [wire_marshal] */ void *HFONT;
  676. typedef /* [wire_marshal] */ void *HDC;
  677. typedef /* [wire_marshal] */ void *HICON;
  678. #ifndef _HCURSOR_DEFINED
  679. #define _HCURSOR_DEFINED
  680. typedef HICON HCURSOR;
  681. #endif // !_HCURSOR_DEFINED
  682. #endif //0
  683. #ifndef _TEXTMETRIC_DEFINED
  684. #define _TEXTMETRIC_DEFINED
  685. typedef struct tagTEXTMETRICW
  686.     {
  687.     LONG tmHeight;
  688.     LONG tmAscent;
  689.     LONG tmDescent;
  690.     LONG tmInternalLeading;
  691.     LONG tmExternalLeading;
  692.     LONG tmAveCharWidth;
  693.     LONG tmMaxCharWidth;
  694.     LONG tmWeight;
  695.     LONG tmOverhang;
  696.     LONG tmDigitizedAspectX;
  697.     LONG tmDigitizedAspectY;
  698.     WCHAR tmFirstChar;
  699.     WCHAR tmLastChar;
  700.     WCHAR tmDefaultChar;
  701.     WCHAR tmBreakChar;
  702.     BYTE tmItalic;
  703.     BYTE tmUnderlined;
  704.     BYTE tmStruckOut;
  705.     BYTE tmPitchAndFamily;
  706.     BYTE tmCharSet;
  707.     }  TEXTMETRICW;
  708. typedef struct tagTEXTMETRICW *PTEXTMETRICW;
  709. typedef struct tagTEXTMETRICW *LPTEXTMETRICW;
  710. #endif // !_TEXTMETRIC_DEFINED
  711. #ifndef _WIN32           // The following code is for Win16 only
  712. #ifndef WINAPI          // If not included with 3.1 headers...
  713. typedef struct tagMSG
  714.     {
  715.     HWND hwnd;
  716.     UINT message;
  717.     WPARAM wParam;
  718.     LPARAM lParam;
  719.     DWORD time;
  720.     POINT pt;
  721.     }  MSG;
  722. typedef struct tagMSG *PMSG;
  723. typedef struct tagMSG *NPMSG;
  724. typedef struct tagMSG *LPMSG;
  725. #endif // _WIN32
  726. #endif // WINAPI
  727. typedef /* [unique] */ userHBITMAP *wireHBITMAP;
  728. typedef /* [unique] */ userHPALETTE *wireHPALETTE;
  729. typedef /* [unique] */ userHENHMETAFILE *wireHENHMETAFILE;
  730. typedef /* [unique] */ userHMETAFILE *wireHMETAFILE;
  731. typedef /* [unique] */ userHMETAFILEPICT *wireHMETAFILEPICT;
  732. #if 0
  733. typedef /* [wire_marshal] */ void *HGLOBAL;
  734. typedef HGLOBAL HLOCAL;
  735. typedef /* [wire_marshal] */ void *HBITMAP;
  736. typedef /* [wire_marshal] */ void *HPALETTE;
  737. typedef /* [wire_marshal] */ void *HENHMETAFILE;
  738. typedef /* [wire_marshal] */ void *HMETAFILE;
  739. #endif //0
  740. typedef /* [wire_marshal] */ void *HMETAFILEPICT;
  741. extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
  742. extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
  743. #endif /* __IWinTypes_INTERFACE_DEFINED__ */
  744. /* interface __MIDL_itf_wtypes_0003 */
  745. /* [local] */ 
  746. #if ( _MSC_VER >= 800 )
  747. #if _MSC_VER >= 1200
  748. #pragma warning(push)
  749. #endif
  750. #pragma warning(disable:4201)
  751. #endif
  752. typedef double DATE;
  753. #ifndef _tagCY_DEFINED
  754. #define _tagCY_DEFINED
  755. #define _CY_DEFINED
  756. #if 0
  757. /* the following isn't the real definition of CY, but it is */
  758. /* what RPC knows how to remote */
  759. typedef struct tagCY
  760.     {
  761.     LONGLONG int64;
  762.     }  CY;
  763. #else /* 0 */
  764. /* real definition that makes the C++ compiler happy */
  765. typedef union tagCY {
  766.     struct {
  767. #ifdef _MAC
  768.         long      Hi;
  769.         long Lo;
  770. #else
  771.         unsigned long Lo;
  772.         long      Hi;
  773. #endif
  774.     };
  775.     LONGLONG int64;
  776. } CY;
  777. #endif /* 0 */
  778. #endif /* _tagCY_DEFINED */
  779. typedef CY *LPCY;
  780. #if 0 /* _tagDEC_DEFINED */
  781. /* The following isn't the real definition of Decimal type, */
  782. /* but it is what RPC knows how to remote */
  783. typedef struct tagDEC
  784.     {
  785.     USHORT wReserved;
  786.     BYTE scale;
  787.     BYTE sign;
  788.     ULONG Hi32;
  789.     ULONGLONG Lo64;
  790.     }  DECIMAL;
  791. #else /* _tagDEC_DEFINED */
  792. /* real definition that makes the C++ compiler happy */
  793. typedef struct tagDEC {
  794.     USHORT wReserved;
  795.     union {
  796.         struct {
  797.             BYTE scale;
  798.             BYTE sign;
  799.         };
  800.         USHORT signscale;
  801.     };
  802.     ULONG Hi32;
  803.     union {
  804.         struct {
  805. #ifdef _MAC
  806.             ULONG Mid32;
  807.             ULONG Lo32;
  808. #else
  809.             ULONG Lo32;
  810.             ULONG Mid32;
  811. #endif
  812.         };
  813.         ULONGLONG Lo64;
  814.     };
  815. } DECIMAL;
  816. #define DECIMAL_NEG ((BYTE)0x80)
  817. #define DECIMAL_SETZERO(dec) 
  818.         {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
  819. #endif /* _tagDEC_DEFINED */
  820. typedef DECIMAL *LPDECIMAL;
  821. #if ( _MSC_VER >= 800 )
  822. #if _MSC_VER >= 1200
  823. #pragma warning(pop)
  824. #else
  825. #pragma warning(default:4201)
  826. #endif
  827. #endif
  828. typedef /* [unique] */ FLAGGED_WORD_BLOB *wireBSTR;
  829. typedef /* [wire_marshal] */ OLECHAR *BSTR;
  830. typedef BSTR *LPBSTR;
  831. /* 0 == FALSE, -1 == TRUE */
  832. typedef short VARIANT_BOOL;
  833. #if !__STDC__ && (_MSC_VER <= 1000)
  834. /* For backward compatibility */
  835. typedef VARIANT_BOOL _VARIANT_BOOL;
  836. #else
  837. /* ANSI C/C++ reserve bool as keyword */
  838. #define _VARIANT_BOOL    /##/
  839. #endif
  840. typedef boolean BOOLEAN;
  841. /* The BSTRBLOB structure is used by some implementations */
  842. /* of the IPropertyStorage interface when marshaling BSTRs */
  843. /* on systems which don't support BSTR marshaling. */
  844. #ifndef _tagBSTRBLOB_DEFINED
  845. #define _tagBSTRBLOB_DEFINED
  846. typedef struct tagBSTRBLOB
  847.     {
  848.     ULONG cbSize;
  849.     /* [size_is] */ BYTE *pData;
  850.     }  BSTRBLOB;
  851. typedef struct tagBSTRBLOB *LPBSTRBLOB;
  852. #endif
  853. #define VARIANT_TRUE ((VARIANT_BOOL)-1)
  854. #define VARIANT_FALSE ((VARIANT_BOOL)0)
  855. #ifndef _tagBLOB_DEFINED
  856. #define _tagBLOB_DEFINED
  857. #define _BLOB_DEFINED
  858. #define _LPBLOB_DEFINED
  859. typedef struct tagBLOB
  860.     {
  861.     ULONG cbSize;
  862.     /* [size_is] */ BYTE *pBlobData;
  863.     }  BLOB;
  864. typedef struct tagBLOB *LPBLOB;
  865. #endif
  866. typedef struct tagCLIPDATA
  867.     {
  868.     ULONG cbSize;
  869.     long ulClipFmt;
  870.     /* [size_is] */ BYTE *pClipData;
  871.     }  CLIPDATA;
  872. // Macro to calculate the size of the above pClipData
  873. #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
  874. typedef unsigned short VARTYPE;
  875. /*
  876.  * VARENUM usage key,
  877.  *
  878.  * * [V] - may appear in a VARIANT
  879.  * * [T] - may appear in a TYPEDESC
  880.  * * [P] - may appear in an OLE property set
  881.  * * [S] - may appear in a Safe Array
  882.  *
  883.  *
  884.  *  VT_EMPTY            [V]   [P]     nothing
  885.  *  VT_NULL             [V]   [P]     SQL style Null
  886.  *  VT_I2               [V][T][P][S]  2 byte signed int
  887.  *  VT_I4               [V][T][P][S]  4 byte signed int
  888.  *  VT_R4               [V][T][P][S]  4 byte real
  889.  *  VT_R8               [V][T][P][S]  8 byte real
  890.  *  VT_CY               [V][T][P][S]  currency
  891.  *  VT_DATE             [V][T][P][S]  date
  892.  *  VT_BSTR             [V][T][P][S]  OLE Automation string
  893.  *  VT_DISPATCH         [V][T]   [S]  IDispatch *
  894.  *  VT_ERROR            [V][T][P][S]  SCODE
  895.  *  VT_BOOL             [V][T][P][S]  True=-1, False=0
  896.  *  VT_VARIANT          [V][T][P][S]  VARIANT *
  897.  *  VT_UNKNOWN          [V][T]   [S]  IUnknown *
  898.  *  VT_DECIMAL          [V][T]   [S]  16 byte fixed point
  899.  *  VT_RECORD           [V]   [P][S]  user defined type
  900.  *  VT_I1               [V][T][P][s]  signed char
  901.  *  VT_UI1              [V][T][P][S]  unsigned char
  902.  *  VT_UI2              [V][T][P][S]  unsigned short
  903.  *  VT_UI4              [V][T][P][S]  unsigned long
  904.  *  VT_I8                  [T][P]     signed 64-bit int
  905.  *  VT_UI8                 [T][P]     unsigned 64-bit int
  906.  *  VT_INT              [V][T][P][S]  signed machine int
  907.  *  VT_UINT             [V][T]   [S]  unsigned machine int
  908.  *  VT_INT_PTR             [T]        signed machine register size width
  909.  *  VT_UINT_PTR            [T]        unsigned machine register size width
  910.  *  VT_VOID                [T]        C style void
  911.  *  VT_HRESULT             [T]        Standard return type
  912.  *  VT_PTR                 [T]        pointer type
  913.  *  VT_SAFEARRAY           [T]        (use VT_ARRAY in VARIANT)
  914.  *  VT_CARRAY              [T]        C style array
  915.  *  VT_USERDEFINED         [T]        user defined type
  916.  *  VT_LPSTR               [T][P]     null terminated string
  917.  *  VT_LPWSTR              [T][P]     wide null terminated string
  918.  *  VT_FILETIME               [P]     FILETIME
  919.  *  VT_BLOB                   [P]     Length prefixed bytes
  920.  *  VT_STREAM                 [P]     Name of the stream follows
  921.  *  VT_STORAGE                [P]     Name of the storage follows
  922.  *  VT_STREAMED_OBJECT        [P]     Stream contains an object
  923.  *  VT_STORED_OBJECT          [P]     Storage contains an object
  924.  *  VT_VERSIONED_STREAM       [P]     Stream with a GUID version
  925.  *  VT_BLOB_OBJECT            [P]     Blob contains an object 
  926.  *  VT_CF                     [P]     Clipboard format
  927.  *  VT_CLSID                  [P]     A Class ID
  928.  *  VT_VECTOR                 [P]     simple counted array
  929.  *  VT_ARRAY            [V]           SAFEARRAY*
  930.  *  VT_BYREF            [V]           void* for local use
  931.  *  VT_BSTR_BLOB                      Reserved for system use
  932.  */
  933. enum VARENUM
  934.     { VT_EMPTY = 0,
  935. VT_NULL = 1,
  936. VT_I2 = 2,
  937. VT_I4 = 3,
  938. VT_R4 = 4,
  939. VT_R8 = 5,
  940. VT_CY = 6,
  941. VT_DATE = 7,
  942. VT_BSTR = 8,
  943. VT_DISPATCH = 9,
  944. VT_ERROR = 10,
  945. VT_BOOL = 11,
  946. VT_VARIANT = 12,
  947. VT_UNKNOWN = 13,
  948. VT_DECIMAL = 14,
  949. VT_I1 = 16,
  950. VT_UI1 = 17,
  951. VT_UI2 = 18,
  952. VT_UI4 = 19,
  953. VT_I8 = 20,
  954. VT_UI8 = 21,
  955. VT_INT = 22,
  956. VT_UINT = 23,
  957. VT_VOID = 24,
  958. VT_HRESULT = 25,
  959. VT_PTR = 26,
  960. VT_SAFEARRAY = 27,
  961. VT_CARRAY = 28,
  962. VT_USERDEFINED = 29,
  963. VT_LPSTR = 30,
  964. VT_LPWSTR = 31,
  965. VT_RECORD = 36,
  966. VT_INT_PTR = 37,
  967. VT_UINT_PTR = 38,
  968. VT_FILETIME = 64,
  969. VT_BLOB = 65,
  970. VT_STREAM = 66,
  971. VT_STORAGE = 67,
  972. VT_STREAMED_OBJECT = 68,
  973. VT_STORED_OBJECT = 69,
  974. VT_BLOB_OBJECT = 70,
  975. VT_CF = 71,
  976. VT_CLSID = 72,
  977. VT_VERSIONED_STREAM = 73,
  978. VT_BSTR_BLOB = 0xfff,
  979. VT_VECTOR = 0x1000,
  980. VT_ARRAY = 0x2000,
  981. VT_BYREF = 0x4000,
  982. VT_RESERVED = 0x8000,
  983. VT_ILLEGAL = 0xffff,
  984. VT_ILLEGALMASKED = 0xfff,
  985. VT_TYPEMASK = 0xfff
  986.     } ;
  987. typedef ULONG PROPID;
  988. #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED
  989. #define SID_IDENTIFIER_AUTHORITY_DEFINED
  990. typedef struct _SID_IDENTIFIER_AUTHORITY
  991.     {
  992.     UCHAR Value[ 6 ];
  993.     }  SID_IDENTIFIER_AUTHORITY;
  994. typedef struct _SID_IDENTIFIER_AUTHORITY *PSID_IDENTIFIER_AUTHORITY;
  995. #endif
  996. #ifndef SID_DEFINED
  997. #define SID_DEFINED
  998. typedef struct _SID
  999.     {
  1000.     BYTE Revision;
  1001.     BYTE SubAuthorityCount;
  1002.     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  1003.     /* [size_is] */ ULONG SubAuthority[ 1 ];
  1004.     }  SID;
  1005. typedef struct _SID *PISID;
  1006. typedef struct _SID_AND_ATTRIBUTES
  1007.     {
  1008.     SID *Sid;
  1009.     DWORD Attributes;
  1010.     }  SID_AND_ATTRIBUTES;
  1011. typedef struct _SID_AND_ATTRIBUTES *PSID_AND_ATTRIBUTES;
  1012. #endif
  1013. typedef struct tagCSPLATFORM
  1014.     {
  1015.     DWORD dwPlatformId;
  1016.     DWORD dwVersionHi;
  1017.     DWORD dwVersionLo;
  1018.     DWORD dwProcessorArch;
  1019.     }  CSPLATFORM;
  1020. typedef struct tagQUERYCONTEXT
  1021.     {
  1022.     DWORD dwContext;
  1023.     CSPLATFORM Platform;
  1024.     LCID Locale;
  1025.     DWORD dwVersionHi;
  1026.     DWORD dwVersionLo;
  1027.     }  QUERYCONTEXT;
  1028. typedef /* [v1_enum] */ 
  1029. enum tagTYSPEC
  1030.     { TYSPEC_CLSID = 0,
  1031. TYSPEC_FILEEXT = TYSPEC_CLSID + 1,
  1032. TYSPEC_MIMETYPE = TYSPEC_FILEEXT + 1,
  1033. TYSPEC_FILENAME = TYSPEC_MIMETYPE + 1,
  1034. TYSPEC_PROGID = TYSPEC_FILENAME + 1,
  1035. TYSPEC_PACKAGENAME = TYSPEC_PROGID + 1,
  1036. TYSPEC_OBJECTID = TYSPEC_PACKAGENAME + 1
  1037.     }  TYSPEC;
  1038. typedef /* [public] */ struct __MIDL___MIDL_itf_wtypes_0003_0001
  1039.     {
  1040.     DWORD tyspec;
  1041.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_wtypes_0003_0005
  1042.         {
  1043.         /* [case()] */ CLSID clsid;
  1044.         /* [case()] */ LPOLESTR pFileExt;
  1045.         /* [case()] */ LPOLESTR pMimeType;
  1046.         /* [case()] */ LPOLESTR pProgId;
  1047.         /* [case()] */ LPOLESTR pFileName;
  1048.         /* [case()] */ struct 
  1049.             {
  1050.             LPOLESTR pPackageName;
  1051.             GUID PolicyId;
  1052.             }  ByName;
  1053.         /* [case()] */ struct 
  1054.             {
  1055.             GUID ObjectId;
  1056.             GUID PolicyId;
  1057.             }  ByObjectId;
  1058.         }  tagged_union;
  1059.     }  uCLSSPEC;
  1060. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0003_v0_0_c_ifspec;
  1061. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0003_v0_0_s_ifspec;
  1062. /* Additional Prototypes for ALL interfaces */
  1063. /* end of Additional Prototypes */
  1064. #ifdef __cplusplus
  1065. }
  1066. #endif
  1067. #endif