Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenwtypes.idl
Go to the documentation of this file.
00001 /* 00002 * Basic types used by COM interfaces 00003 * 00004 * Copyright 2002 Ove Kaaven 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 */ 00020 00021 import "basetsd.h"; 00022 import "guiddef.h"; 00023 00024 cpp_quote("#ifndef __wtypes_h__") 00025 cpp_quote("#define __wtypes_h__") 00026 cpp_quote("#endif") 00027 00028 cpp_quote("#ifdef _MSC_VER") 00029 cpp_quote("#pragma warning(push)") 00030 cpp_quote("#pragma warning(disable:4201)") 00031 cpp_quote("#pragma warning(disable:4820)") 00032 cpp_quote("#endif") 00033 00034 [ 00035 uuid(D3980A60-910C-1068-9341-00DD010F2F1C), 00036 version(0.1), 00037 pointer_default(unique) 00038 ] 00039 00040 interface IWinTypes 00041 { 00042 00043 /******************** BASIC WIN32 TYPES ********************/ 00044 cpp_quote("#if 0 /* winnt.h */") /* don't redefine these */ 00045 00046 typedef unsigned char BYTE; 00047 typedef unsigned short WORD; 00048 typedef unsigned long DWORD; 00049 typedef long BOOL; 00050 typedef unsigned char UCHAR; 00051 typedef int INT; 00052 typedef unsigned int UINT; 00053 typedef short SHORT; 00054 typedef unsigned short USHORT; 00055 typedef long LONG; 00056 typedef unsigned long ULONG; 00057 typedef float FLOAT; 00058 00059 typedef void *PVOID, *LPVOID; 00060 00061 typedef DWORD *LPDWORD; 00062 00063 typedef char CHAR; 00064 typedef [string] CHAR *LPSTR; 00065 typedef [string] const CHAR *LPCSTR; 00066 00067 typedef wchar_t WCHAR; 00068 typedef [string] WCHAR *LPWSTR; 00069 typedef [string] const WCHAR *LPCWSTR; 00070 00071 typedef boolean BOOLEAN; 00072 00073 typedef DWORD COLORREF; 00074 00075 typedef void *HANDLE; 00076 #define DECLARE_HANDLE(name) typedef void *name 00077 #define DECLARE_WIREM_HANDLE(name) typedef [wire_marshal(wire##name)] void*name 00078 00079 DECLARE_HANDLE(HMODULE); 00080 DECLARE_HANDLE(HINSTANCE); 00081 DECLARE_HANDLE(HRGN); 00082 DECLARE_HANDLE(HTASK); 00083 DECLARE_HANDLE(HKEY); 00084 DECLARE_HANDLE(HDESK); 00085 DECLARE_HANDLE(HMF); 00086 DECLARE_HANDLE(HEMF); 00087 DECLARE_HANDLE(HPEN); 00088 DECLARE_HANDLE(HRSRC); 00089 DECLARE_HANDLE(HSTR); 00090 DECLARE_HANDLE(HWINSTA); 00091 DECLARE_HANDLE(HKL); 00092 DECLARE_HANDLE(HGDIOBJ); 00093 00094 typedef HANDLE HDWP; 00095 00096 typedef LONG_PTR LRESULT; 00097 00098 typedef LONG HRESULT; 00099 typedef DWORD LCID; 00100 typedef USHORT LANGID; 00101 00102 typedef unsigned __int64 DWORDLONG; 00103 typedef __int64 LONGLONG; 00104 typedef unsigned __int64 ULONGLONG; 00105 00106 typedef struct _LARGE_INTEGER { 00107 LONGLONG QuadPart; 00108 } LARGE_INTEGER; 00109 00110 typedef struct _ULARGE_INTEGER { 00111 ULONGLONG QuadPart; 00112 } ULARGE_INTEGER; 00113 00114 typedef struct _SID_IDENTIFIER_AUTHORITY { 00115 UCHAR Value[6]; 00116 } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; 00117 00118 typedef struct _SID { 00119 UCHAR Revision; 00120 UCHAR SubAuthorityCount; 00121 SID_IDENTIFIER_AUTHORITY IdentifierAuthority; 00122 [size_is(SubAuthorityCount)] ULONG SubAuthority[*]; 00123 } SID, *PSID; 00124 00125 typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; 00126 00127 typedef struct _ACL { 00128 UCHAR AclRevision; 00129 UCHAR Sbz1; 00130 USHORT AclSize; 00131 USHORT AceCount; 00132 USHORT Sbz2; 00133 } ACL; 00134 typedef ACL *PACL; 00135 00136 typedef struct _SECURITY_DESCRIPTOR { 00137 UCHAR Revision; 00138 UCHAR Sbz1; 00139 SECURITY_DESCRIPTOR_CONTROL Control; 00140 PSID Owner; 00141 PSID Group; 00142 PACL Sacl; 00143 PACL Dacl; 00144 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; 00145 00146 typedef struct _SECURITY_ATTRIBUTES 00147 { 00148 DWORD nLength; 00149 [size_is(nLength)] LPVOID lpSecurityDescriptor; 00150 BOOL bInheritHandle; 00151 } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; 00152 00153 typedef struct tagSIZE 00154 { 00155 LONG cx; 00156 LONG cy; 00157 } SIZE, *PSIZE, *LPSIZE; 00158 typedef SIZE SIZEL, *PSIZEL, *LPSIZEL; 00159 00160 typedef struct tagPOINT 00161 { 00162 LONG x; 00163 LONG y; 00164 } POINT, *PPOINT, *LPPOINT; 00165 00166 typedef struct _POINTL 00167 { 00168 LONG x; 00169 LONG y; 00170 } POINTL, *PPOINTL; 00171 00172 typedef struct tagRECT 00173 { 00174 LONG left; 00175 LONG top; 00176 LONG right; 00177 LONG bottom; 00178 } RECT, *PRECT, *LPRECT; 00179 typedef const RECT *LPCRECT; 00180 00181 typedef struct _RECTL 00182 { 00183 LONG left; 00184 LONG top; 00185 LONG right; 00186 LONG bottom; 00187 } RECTL, *PRECTL, *LPRECTL; 00188 typedef const RECTL *LPCRECTL; 00189 00190 typedef UINT_PTR WPARAM; 00191 typedef LONG_PTR LPARAM; 00192 00193 cpp_quote("#endif /* winnt.h */") 00194 00195 cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */ 00196 typedef double DOUBLE; 00197 cpp_quote("#else") 00198 cpp_quote("typedef double DECLSPEC_ALIGN(8) DOUBLE;") 00199 cpp_quote("#endif") 00200 00201 cpp_quote("#ifndef _PALETTEENTRY_DEFINED") 00202 cpp_quote("#define _PALETTEENTRY_DEFINED") 00203 typedef struct tagPALETTEENTRY { 00204 BYTE peRed; 00205 BYTE peGreen; 00206 BYTE peBlue; 00207 BYTE peFlags; 00208 } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY; 00209 cpp_quote("#endif") 00210 00211 cpp_quote("#ifndef _LOGPALETTE_DEFINED") 00212 cpp_quote("#define _LOGPALETTE_DEFINED") 00213 typedef struct tagLOGPALETTE 00214 { 00215 WORD palVersion; 00216 WORD palNumEntries; 00217 [size_is(palNumEntries)] PALETTEENTRY palPalEntry[*]; 00218 } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE; 00219 cpp_quote("#endif") 00220 00221 cpp_quote("#ifndef _SYSTEMTIME_") 00222 cpp_quote("#define _SYSTEMTIME_") 00223 typedef struct _SYSTEMTIME{ 00224 WORD wYear; 00225 WORD wMonth; 00226 WORD wDayOfWeek; 00227 WORD wDay; 00228 WORD wHour; 00229 WORD wMinute; 00230 WORD wSecond; 00231 WORD wMilliseconds; 00232 } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; 00233 cpp_quote("#endif") 00234 00235 cpp_quote("#ifndef _FILETIME_") 00236 cpp_quote("#define _FILETIME_") 00237 typedef struct _FILETIME { 00238 DWORD dwLowDateTime; 00239 DWORD dwHighDateTime; 00240 } FILETIME, *PFILETIME, *LPFILETIME; 00241 cpp_quote("#endif") 00242 00243 cpp_quote("#ifndef _TEXTMETRIC_DEFINED") 00244 cpp_quote("#define _TEXTMETRIC_DEFINED") 00245 typedef struct tagTEXTMETRICA 00246 { 00247 LONG tmHeight; 00248 LONG tmAscent; 00249 LONG tmDescent; 00250 LONG tmInternalLeading; 00251 LONG tmExternalLeading; 00252 LONG tmAveCharWidth; 00253 LONG tmMaxCharWidth; 00254 LONG tmWeight; 00255 LONG tmOverhang; 00256 LONG tmDigitizedAspectX; 00257 LONG tmDigitizedAspectY; 00258 BYTE tmFirstChar; 00259 BYTE tmLastChar; 00260 BYTE tmDefaultChar; 00261 BYTE tmBreakChar; 00262 BYTE tmItalic; 00263 BYTE tmUnderlined; 00264 BYTE tmStruckOut; 00265 BYTE tmPitchAndFamily; 00266 BYTE tmCharSet; 00267 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA; 00268 00269 typedef struct tagTEXTMETRICW 00270 { 00271 LONG tmHeight; 00272 LONG tmAscent; 00273 LONG tmDescent; 00274 LONG tmInternalLeading; 00275 LONG tmExternalLeading; 00276 LONG tmAveCharWidth; 00277 LONG tmMaxCharWidth; 00278 LONG tmWeight; 00279 LONG tmOverhang; 00280 LONG tmDigitizedAspectX; 00281 LONG tmDigitizedAspectY; 00282 WCHAR tmFirstChar; 00283 WCHAR tmLastChar; 00284 WCHAR tmDefaultChar; 00285 WCHAR tmBreakChar; 00286 BYTE tmItalic; 00287 BYTE tmUnderlined; 00288 BYTE tmStruckOut; 00289 BYTE tmPitchAndFamily; 00290 BYTE tmCharSet; 00291 } TEXTMETRICW, *LPTEXTMETRICW, *PTEXTMETRICW; 00292 cpp_quote("#endif") 00293 00294 /******************** BASIC COM/OLE TYPES ********************/ 00295 00296 typedef WCHAR OLECHAR; 00297 typedef [string] OLECHAR *LPOLESTR; 00298 typedef [string] const OLECHAR *LPCOLESTR; 00299 cpp_quote("#ifndef __WINESRC__") 00300 cpp_quote("#define OLESTR(str) L##str") 00301 cpp_quote("#endif") 00302 00303 typedef LONG SCODE; 00304 00305 typedef struct _COAUTHIDENTITY { 00306 [size_is(UserLength+1)] USHORT *User; 00307 ULONG UserLength; 00308 [size_is(DomainLength+1)] USHORT *Domain; 00309 ULONG DomainLength; 00310 [size_is(PasswordLength+1)] USHORT *Password; 00311 ULONG PasswordLength; 00312 ULONG Flags; 00313 } COAUTHIDENTITY; 00314 00315 typedef struct _COAUTHINFO { 00316 DWORD dwAuthnSvc; 00317 DWORD dwAuthzSvc; 00318 LPWSTR pwszServerPrincName; 00319 DWORD dwAuthnLevel; 00320 DWORD dwImpersonationLevel; 00321 COAUTHIDENTITY *pAuthIdentityData; 00322 DWORD dwCapabilities; 00323 } COAUTHINFO; 00324 00325 typedef enum tagMEMCTX { 00326 MEMCTX_TASK = 1, 00327 MEMCTX_SHARED = 2, 00328 MEMCTX_MACSYSTEM = 3, 00329 MEMCTX_UNKNOWN = -1, 00330 MEMCTX_SAME = -2 00331 } MEMCTX; 00332 00333 cpp_quote("#ifndef _ROT_COMPARE_MAX_DEFINED") 00334 cpp_quote("#define _ROT_COMPARE_MAX_DEFINED") 00335 cpp_quote("#define ROT_COMPARE_MAX 2048") 00336 cpp_quote("#endif") 00337 00338 cpp_quote("#ifndef _ROTFLAGS_DEFINED") 00339 cpp_quote("#define _ROTFLAGS_DEFINED") 00340 cpp_quote("#define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1") 00341 cpp_quote("#define ROTFLAGS_ALLOWANYCLIENT 0x2") 00342 cpp_quote("#endif") 00343 00344 typedef enum tagCLSCTX { 00345 CLSCTX_INPROC_SERVER = 0x1, 00346 CLSCTX_INPROC_HANDLER = 0x2, 00347 CLSCTX_LOCAL_SERVER = 0x4, 00348 CLSCTX_INPROC_SERVER16 = 0x8, 00349 CLSCTX_REMOTE_SERVER = 0x10, 00350 CLSCTX_INPROC_HANDLER16 = 0x20, 00351 CLSCTX_INPROC_SERVERX86 = 0x40, 00352 CLSCTX_INPROC_HANDLERX86 = 0x80, 00353 CLSCTX_ESERVER_HANDLER = 0x100, 00354 CLSCTX_NO_CODE_DOWNLOAD = 0x400, 00355 CLSCTX_NO_CUSTOM_MARSHAL = 0x1000, 00356 CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000, 00357 CLSCTX_NO_FAILURE_LOG = 0x4000, 00358 CLSCTX_DISABLE_AAA = 0x8000, 00359 CLSCTX_ENABLE_AAA = 0x10000, 00360 CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 00361 } CLSCTX; 00362 00363 cpp_quote("#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)") 00364 cpp_quote("#define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)") 00365 cpp_quote("#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)") 00366 00367 typedef enum tagMSHLFLAGS { 00368 MSHLFLAGS_NORMAL = 0, 00369 MSHLFLAGS_TABLESTRONG = 1, 00370 MSHLFLAGS_TABLEWEAK = 2, 00371 MSHLFLAGS_NOPING = 4 00372 } MSHLFLAGS; 00373 00374 typedef enum tagMSHCTX { 00375 MSHCTX_LOCAL = 0, 00376 MSHCTX_NOSHAREDMEM = 1, 00377 MSHCTX_DIFFERENTMACHINE = 2, 00378 MSHCTX_INPROC = 3, 00379 MSHCTX_CROSSCTX = 4 00380 } MSHCTX; 00381 00382 /******************** BLOB TYPES ********************/ 00383 00384 typedef struct _BYTE_BLOB { 00385 unsigned long clSize; 00386 [size_is(clSize)] byte abData[]; 00387 } BYTE_BLOB; 00388 typedef [unique] BYTE_BLOB *UP_BYTE_BLOB; 00389 00390 typedef struct _FLAGGED_BYTE_BLOB { 00391 unsigned long fFlags; 00392 unsigned long clSize; 00393 [size_is(clSize)] byte abData[]; 00394 } FLAGGED_BYTE_BLOB; 00395 typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB; 00396 00397 typedef struct _FLAGGED_WORD_BLOB { 00398 unsigned long fFlags; 00399 unsigned long clSize; 00400 [size_is(clSize)] unsigned short asData[]; 00401 } FLAGGED_WORD_BLOB; 00402 typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB; 00403 00404 typedef struct _BYTE_SIZEDARR { 00405 unsigned long clSize; 00406 [size_is(clSize)] byte *pData; 00407 } BYTE_SIZEDARR; 00408 00409 typedef struct _SHORT_SIZEDARR { 00410 unsigned long clSize; 00411 [size_is(clSize)] unsigned short *pData; 00412 } WORD_SIZEDARR; 00413 00414 typedef struct _LONG_SIZEDARR { 00415 unsigned long clSize; 00416 [size_is(clSize)] unsigned long *pData; 00417 } DWORD_SIZEDARR; 00418 00419 typedef struct _HYPER_SIZEDARR { 00420 unsigned long clSize; 00421 [size_is(clSize)] hyper *pData; 00422 } HYPER_SIZEDARR; 00423 00424 /******************** GDI TYPES ********************/ 00425 00426 const unsigned long WDT_INPROC_CALL = 0x48746457; 00427 const unsigned long WDT_REMOTE_CALL = 0x52746457; 00428 const unsigned long WDT_INPROC64_CALL = 0x50746457; 00429 00430 typedef union _userCLIPFORMAT switch(long fContext) u { 00431 case WDT_INPROC_CALL: DWORD dwValue; 00432 case WDT_REMOTE_CALL: LPWSTR pwszName; 00433 } userCLIPFORMAT; 00434 00435 typedef [unique] userCLIPFORMAT *wireCLIPFORMAT; 00436 typedef [wire_marshal(wireCLIPFORMAT)] WORD CLIPFORMAT; 00437 00438 typedef struct tagRemHGLOBAL { 00439 long fNullHGlobal; 00440 unsigned long cbData; 00441 [size_is(cbData)] byte data[]; 00442 } RemHGLOBAL; 00443 00444 typedef union _userHGLOBAL switch(long fContext) u { 00445 case WDT_INPROC_CALL: long hInproc; 00446 case WDT_REMOTE_CALL: FLAGGED_BYTE_BLOB *hRemote; 00447 case WDT_INPROC64_CALL: __int64 hInproc64; 00448 } userHGLOBAL; 00449 00450 typedef [unique] userHGLOBAL *wireHGLOBAL; 00451 00452 typedef struct tagRemHMETAFILEPICT { 00453 long mm; 00454 long xExt; 00455 long yExt; 00456 unsigned long cbData; 00457 [size_is(cbData)] byte data[]; 00458 } RemHMETAFILEPICT; 00459 00460 typedef union _userHMETAFILE switch(long fContext) u { 00461 case WDT_INPROC_CALL: long hInproc; 00462 case WDT_REMOTE_CALL: BYTE_BLOB *hRemote; 00463 case WDT_INPROC64_CALL: __int64 hInproc64; 00464 } userHMETAFILE; 00465 00466 typedef [unique] userHMETAFILE *wireHMETAFILE; 00467 00468 typedef struct _remoteMETAFILEPICT { 00469 long mm; 00470 long xExt; 00471 long yExt; 00472 userHMETAFILE *hMF; 00473 } remoteMETAFILEPICT; 00474 00475 typedef union _userHMETAFILEPICT switch(long fContext) u { 00476 case WDT_INPROC_CALL: long hInproc; 00477 case WDT_REMOTE_CALL: remoteMETAFILEPICT *hRemote; 00478 case WDT_INPROC64_CALL: __int64 hInproc64; 00479 } userHMETAFILEPICT; 00480 00481 typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT; 00482 00483 typedef struct tagRemHENHMETAFILE { 00484 unsigned long cbData; 00485 [size_is(cbData)] byte data[]; 00486 } RemHENHMETAFILE; 00487 00488 typedef union _userHENHMETAFILE switch(long fContext) u { 00489 case WDT_INPROC_CALL: long hInproc; 00490 case WDT_REMOTE_CALL: BYTE_BLOB *hRemote; 00491 case WDT_INPROC64_CALL: __int64 hInproc64; 00492 } userHENHMETAFILE; 00493 00494 typedef [unique] userHENHMETAFILE *wireHENHMETAFILE; 00495 00496 typedef struct tagRemHBITMAP 00497 { 00498 unsigned long cbData; 00499 [size_is(cbData)] byte data[]; 00500 } RemHBITMAP; 00501 00502 typedef struct _userBITMAP { 00503 LONG bmType; 00504 LONG bmWidth; 00505 LONG bmHeight; 00506 LONG bmWidthBytes; 00507 WORD bmPlanes; 00508 WORD bmBitsPixel; 00509 ULONG cbSize; 00510 [size_is(cbSize)] byte pBuffer[]; 00511 } userBITMAP; 00512 00513 typedef union _userHBITMAP switch(long fContext) u { 00514 case WDT_INPROC_CALL: long hInproc; 00515 case WDT_REMOTE_CALL: userBITMAP *hRemote; 00516 case WDT_INPROC64_CALL: __int64 hInproc64; 00517 } userHBITMAP; 00518 00519 typedef [unique] userHBITMAP *wireHBITMAP; 00520 00521 typedef struct tagRemHPALETTE { 00522 unsigned long cbData; 00523 [size_is(cbData)] byte data[]; 00524 } RemHPALETTE; 00525 00526 typedef struct tagrpcLOGPALETTE { 00527 WORD palVersion; 00528 WORD palNumEntries; 00529 [size_is(palNumEntries)] PALETTEENTRY palPalEntry[]; 00530 } rpcLOGPALETTE; 00531 00532 typedef union _userHPALETTE switch(long fContext) u { 00533 case WDT_INPROC_CALL: long hInproc; 00534 case WDT_REMOTE_CALL: rpcLOGPALETTE *hRemote; 00535 case WDT_INPROC64_CALL: __int64 hInproc64; 00536 } userHPALETTE; 00537 00538 typedef [unique] userHPALETTE *wireHPALETTE; 00539 00540 cpp_quote("#if 0") 00541 DECLARE_WIREM_HANDLE(HGLOBAL); 00542 typedef HGLOBAL HLOCAL; 00543 DECLARE_WIREM_HANDLE(HBITMAP); 00544 DECLARE_WIREM_HANDLE(HPALETTE); 00545 DECLARE_WIREM_HANDLE(HENHMETAFILE); 00546 DECLARE_WIREM_HANDLE(HMETAFILE); 00547 cpp_quote("#endif") 00548 DECLARE_WIREM_HANDLE(HMETAFILEPICT); 00549 00550 typedef union _RemotableHandle switch (long fContext) u 00551 { 00552 case WDT_INPROC_CALL: long hInproc; 00553 case WDT_REMOTE_CALL: long hRemote; 00554 } RemotableHandle; 00555 00556 typedef [unique] RemotableHandle *wireHACCEL; 00557 typedef [unique] RemotableHandle *wireHBRUSH; 00558 typedef [unique] RemotableHandle *wireHDC; 00559 typedef [unique] RemotableHandle *wireHFONT; 00560 typedef [unique] RemotableHandle *wireHICON; 00561 typedef [unique] RemotableHandle *wireHMENU; 00562 typedef [unique] RemotableHandle *wireHWND; 00563 00564 cpp_quote("#if 0") /* for IDL only (C/C++ defs are in windef.h) */ 00565 DECLARE_WIREM_HANDLE(HACCEL); 00566 DECLARE_WIREM_HANDLE(HBRUSH); 00567 DECLARE_WIREM_HANDLE(HDC); 00568 DECLARE_WIREM_HANDLE(HFONT); 00569 DECLARE_WIREM_HANDLE(HICON); 00570 DECLARE_WIREM_HANDLE(HMENU); 00571 DECLARE_WIREM_HANDLE(HWND); 00572 00573 typedef HICON HCURSOR; 00574 00575 typedef struct tagMSG 00576 { 00577 HWND hwnd; 00578 UINT message; 00579 WPARAM wParam; 00580 LPARAM lParam; 00581 DWORD time; 00582 POINT pt; 00583 } MSG, *PMSG, *NPMSG, *LPMSG; 00584 00585 cpp_quote("#endif") 00586 00587 /******************** GUID TYPES ********************/ 00588 00589 cpp_quote("#if 0") /* for IDL only (C/C++ defs are in guiddef.h) */ 00590 typedef GUID *REFGUID; 00591 typedef IID *REFIID; 00592 typedef CLSID *REFCLSID; 00593 typedef FMTID *REFFMTID; 00594 cpp_quote("#endif") 00595 00596 /******************** MISC TYPES ********************/ 00597 00598 typedef enum tagDVASPECT { 00599 DVASPECT_CONTENT = 1, 00600 DVASPECT_THUMBNAIL = 2, 00601 DVASPECT_ICON = 4, 00602 DVASPECT_DOCPRINT = 8 00603 } DVASPECT; 00604 00605 typedef enum tagSTGC { 00606 STGC_DEFAULT = 0, 00607 STGC_OVERWRITE = 1, 00608 STGC_ONLYIFCURRENT = 2, 00609 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4, 00610 STGC_CONSOLIDATE = 8 00611 } STGC; 00612 00613 typedef enum tagSTGMOVE { 00614 STGMOVE_MOVE = 0, 00615 STGMOVE_COPY = 1, 00616 STGMOVE_SHALLOWCOPY = 2 00617 } STGMOVE; 00618 00619 typedef enum tagSTATFLAG { 00620 STATFLAG_DEFAULT = 0, 00621 STATFLAG_NONAME = 1, 00622 STATFLAG_NOOPEN = 2 00623 } STATFLAG; 00624 00625 /******************** OLE Automation ********************/ 00626 00627 cpp_quote("#ifdef _MSC_VER") /* for IDL and MSVC only */ 00628 typedef double DATE; 00629 cpp_quote("#else") 00630 cpp_quote("typedef double DECLSPEC_ALIGN(8) DATE;") 00631 cpp_quote("#endif") 00632 00633 cpp_quote("#if 0") /* for IDL only */ 00634 typedef struct tagCY { 00635 LONGLONG int64; 00636 } CY; 00637 cpp_quote("#else") /* C/C++ defs */ 00638 cpp_quote("#ifndef _tagCY_DEFINED") 00639 cpp_quote("#define _tagCY_DEFINED") 00640 cpp_quote("typedef union tagCY {") 00641 cpp_quote(" struct {") 00642 cpp_quote("#ifdef WORDS_BIGENDIAN") 00643 cpp_quote(" LONG Hi;") 00644 cpp_quote(" ULONG Lo;") 00645 cpp_quote("#else") 00646 cpp_quote(" ULONG Lo;") 00647 cpp_quote(" LONG Hi;") 00648 cpp_quote("#endif") 00649 cpp_quote(" } DUMMYSTRUCTNAME;") 00650 cpp_quote(" LONGLONG int64;") 00651 cpp_quote("} CY;") 00652 cpp_quote("#endif") 00653 cpp_quote("#endif") 00654 00655 typedef CY *LPCY; 00656 00657 cpp_quote("#if 0") /* for IDL only */ 00658 typedef struct tagDEC { 00659 USHORT wReserved; 00660 BYTE scale; 00661 BYTE sign; 00662 ULONG Hi32; 00663 ULONGLONG Lo64; 00664 } DECIMAL; 00665 cpp_quote("#else") /* C/C++ defs */ 00666 cpp_quote("typedef struct tagDEC {") 00667 cpp_quote(" USHORT wReserved;") 00668 cpp_quote(" union {") 00669 cpp_quote(" struct {") 00670 cpp_quote(" BYTE scale;") 00671 cpp_quote(" BYTE sign;") 00672 cpp_quote(" } DUMMYSTRUCTNAME;") 00673 cpp_quote(" USHORT signscale;") 00674 cpp_quote(" } DUMMYUNIONNAME;") 00675 cpp_quote(" ULONG Hi32;") 00676 cpp_quote(" union {") 00677 cpp_quote(" struct {") 00678 cpp_quote("#ifdef WORDS_BIGENDIAN") 00679 cpp_quote(" ULONG Mid32;") 00680 cpp_quote(" ULONG Lo32;") 00681 cpp_quote("#else") 00682 cpp_quote(" ULONG Lo32;") 00683 cpp_quote(" ULONG Mid32;") 00684 cpp_quote("#endif") 00685 cpp_quote(" } DUMMYSTRUCTNAME1;") 00686 cpp_quote(" ULONGLONG Lo64;") 00687 cpp_quote(" } DUMMYUNIONNAME1;") 00688 cpp_quote("} DECIMAL;") 00689 cpp_quote("#endif") 00690 cpp_quote("#define DECIMAL_NEG ((BYTE)0x80)") 00691 cpp_quote("#define DECIMAL_SETZERO(d) do{ memset(((char*)&(d)) + sizeof(USHORT), 0, sizeof(ULONG) * 3u + sizeof(USHORT)); }while (0)") 00692 00693 typedef DECIMAL *LPDECIMAL; 00694 00695 typedef [unique] FLAGGED_WORD_BLOB *wireBSTR; 00696 typedef [wire_marshal(wireBSTR)] OLECHAR *BSTR; 00697 typedef BSTR *LPBSTR; 00698 00699 typedef short VARIANT_BOOL; 00700 typedef VARIANT_BOOL _VARIANT_BOOL; 00701 cpp_quote("#define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)") 00702 cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0x0000)") 00703 00704 typedef struct tagBSTRBLOB { 00705 ULONG cbSize; 00706 [size_is(cbSize)] BYTE *pData; 00707 } BSTRBLOB, *LPBSTRBLOB; 00708 00709 cpp_quote("#ifndef _tagBLOB_DEFINED") 00710 cpp_quote("#define _tagBLOB_DEFINED") 00711 cpp_quote("#define _BLOB_DEFINED") 00712 cpp_quote("#define _LPBLOB_DEFINED") 00713 typedef struct tagBLOB { 00714 ULONG cbSize; 00715 [size_is(cbSize)] BYTE *pBlobData; 00716 } BLOB, *LPBLOB; 00717 cpp_quote("#endif") 00718 00719 typedef struct tagCLIPDATA { 00720 ULONG cbSize; 00721 long ulClipFmt; 00722 [size_is(cbSize-sizeof(long))] BYTE *pClipData; 00723 } CLIPDATA; 00724 cpp_quote("#define CBPCLIPDATA(cb) ((cb).cbSize - sizeof((cb).ulClipFmt))") 00725 00726 typedef ULONG PROPID; 00727 00728 /******************** VARTYPE ********************/ 00729 00730 typedef unsigned short VARTYPE; 00731 enum VARENUM { 00732 VT_EMPTY = 0, 00733 VT_NULL = 1, 00734 VT_I2 = 2, 00735 VT_I4 = 3, 00736 VT_R4 = 4, 00737 VT_R8 = 5, 00738 VT_CY = 6, 00739 VT_DATE = 7, 00740 VT_BSTR = 8, 00741 VT_DISPATCH = 9, 00742 VT_ERROR = 10, 00743 VT_BOOL = 11, 00744 VT_VARIANT = 12, 00745 VT_UNKNOWN = 13, 00746 VT_DECIMAL = 14, 00747 VT_I1 = 16, 00748 VT_UI1 = 17, 00749 VT_UI2 = 18, 00750 VT_UI4 = 19, 00751 VT_I8 = 20, 00752 VT_UI8 = 21, 00753 VT_INT = 22, 00754 VT_UINT = 23, 00755 VT_VOID = 24, 00756 VT_HRESULT = 25, 00757 VT_PTR = 26, 00758 VT_SAFEARRAY = 27, 00759 VT_CARRAY = 28, 00760 VT_USERDEFINED = 29, 00761 VT_LPSTR = 30, 00762 VT_LPWSTR = 31, 00763 VT_RECORD = 36, 00764 VT_INT_PTR = 37, 00765 VT_UINT_PTR = 38, 00766 VT_FILETIME = 64, 00767 VT_BLOB = 65, 00768 VT_STREAM = 66, 00769 VT_STORAGE = 67, 00770 VT_STREAMED_OBJECT = 68, 00771 VT_STORED_OBJECT = 69, 00772 VT_BLOB_OBJECT = 70, 00773 VT_CF = 71, 00774 VT_CLSID = 72, 00775 VT_VERSIONED_STREAM= 73, 00776 VT_BSTR_BLOB = 0x0fff, 00777 VT_VECTOR = 0x1000, 00778 VT_ARRAY = 0x2000, 00779 VT_BYREF = 0x4000, 00780 VT_RESERVED = 0x8000, 00781 VT_ILLEGAL = 0xffff, 00782 VT_ILLEGALMASKED = 0x0fff, 00783 VT_TYPEMASK = 0x0fff 00784 }; 00785 00786 typedef struct tagCSPLATFORM 00787 { 00788 DWORD dwPlatformId; 00789 DWORD dwVersionHi; 00790 DWORD dwVersionLo; 00791 DWORD dwProcessorArch; 00792 } CSPLATFORM; 00793 00794 typedef struct tagQUERYCONTEXT 00795 { 00796 DWORD dwContext; 00797 CSPLATFORM Platform; 00798 LCID Locale; 00799 DWORD dwVersionHi; 00800 DWORD dwVersionLo; 00801 } QUERYCONTEXT; 00802 00803 typedef [v1_enum] enum tagTYSPEC 00804 { 00805 TYSPEC_CLSID, 00806 TYSPEC_FILEEXT, 00807 TYSPEC_MIMETYPE, 00808 TYSPEC_PROGID, 00809 TYSPEC_FILENAME, 00810 TYSPEC_PACKAGENAME, 00811 TYSPEC_OBJECTID 00812 } TYSPEC; 00813 00814 typedef union switch(DWORD tyspec) 00815 { 00816 case TYSPEC_CLSID: 00817 CLSID clsid; 00818 case TYSPEC_FILEEXT: 00819 LPOLESTR pFileExt; 00820 case TYSPEC_MIMETYPE: 00821 LPOLESTR pMimeType; 00822 case TYSPEC_PROGID: 00823 LPOLESTR pProgId; 00824 case TYSPEC_FILENAME: 00825 LPOLESTR pFileName; 00826 case TYSPEC_PACKAGENAME: 00827 struct 00828 { 00829 LPOLESTR pPackageName; 00830 GUID PolicyId; 00831 } ByName; 00832 case TYSPEC_OBJECTID: 00833 struct 00834 { 00835 GUID ObjectId; 00836 GUID PolicyId; 00837 } ByObjectId; 00838 } uCLSSPEC; 00839 00840 cpp_quote("#ifndef PROPERTYKEY_DEFINED") 00841 cpp_quote("#define PROPERTYKEY_DEFINED") 00842 typedef struct _tagpropertykey 00843 { 00844 GUID fmtid; 00845 DWORD pid; 00846 } PROPERTYKEY; 00847 cpp_quote("#endif /*PROPERTYKEY_DEFINED*/") 00848 00849 } /* interface IWinTypes */ 00850 00851 cpp_quote("#ifdef _MSC_VER") 00852 cpp_quote("#pragma warning(pop)") 00853 cpp_quote("#endif") Generated on Sat May 26 2012 04:31:51 for ReactOS by
1.7.6.1
|