home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / SDKRPC.PAK / WTYPES.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  29.1 KB  |  1,249 lines

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