OLE32 header files from Jurgen Van Gael

svn path=/trunk/; revision=1684
This commit is contained in:
Jason Filby
2001-03-13 19:00:13 +00:00
parent 33702a0775
commit efbd594370
5 changed files with 337 additions and 12 deletions
+15 -11
View File
@@ -644,9 +644,23 @@ typedef struct _IFIMETRICS
PANOSE panose;
} IFIMETRICS, *PIFIMETRICS;
#define NB_RESERVED_COLORS 20 // number of fixed colors in system palette
typedef struct _XLATEOBJ
{
ULONG iUniq;
ULONG flXlate;
USHORT iSrcType;
USHORT iDstType;
ULONG cEntries;
ULONG *pulXlate;
} XLATEOBJ, *PXLATEOBJ;
typedef struct _PALOBJ
{
ULONG ulReserved;
PXLATEOBJ logicalToSystem;
int *mapping;
LOGPALETTE logpalette; // _MUST_ be the last field
} PALOBJ, *PPALOBJ;
typedef struct _PATHOBJ
@@ -686,16 +700,6 @@ typedef struct _XFORMOBJ
/* FIXME: what does this beast look like? */
} XFORMOBJ, *PXFORMOBJ;
typedef struct _XLATEOBJ
{
ULONG iUniq;
ULONG flXlate;
USHORT iSrcType;
USHORT iDstType;
ULONG cEntries;
ULONG *pulXlate;
} XLATEOBJ, *PXLATEOBJ;
/*
* Functions Prefixed with Drv are calls made from GDI to DDI, and
* everything else are calls made from DDI to GDI. DDI is
+132
View File
@@ -0,0 +1,132 @@
/*
basetyps.h
definitions for basic types used to develop COM
macro definitions for interface declaration
Copyright (C) 1996 Free Software Foundation, Inc.
Author: Jurgen Van Gael <[email protected]>
Date: january 2001
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <[email protected]> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _BASETYPS
#define _BASETYPS
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
#endif
#ifndef _ERROR_STATUS_T_DEFINED
typedef unsigned long error_status_t;
#define _ERROR_STATUS_T_DEFINED
#endif
#ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif
#define STDMETHODCALLTYPE __stdcall
#define STDMETHODVCALLTYPE __cdecl
#define STDAPICALLTYPE __stdcall
#define STDAPIVCALLTYPE __cdecl
#define STDAPI EXTERN_C HRESULT STDMETHODCALLTYPE
#define STDAPI_(type) EXTERN_C type STDAPICALLTYPE
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
#define STDMETHODIMP_(type) type STDMETHODCALLTYPE
// variable argument lists versions
#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE
#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE
/************************* interface declaration **********************************
*
* Here are some macros you can use to define interfaces. These macro's are
* usefull because they declare an interface for a c++ implementation or a
* a c implementation. The c interface will be made when the user compiles a
* .c file. The c++ interface will be declared when a .cpp file is compiled.
*
* use DECLARE_INTERFACE(iface) when the interface does not derive from another
* use DECLARE_INTERFACE_(iface, baseiface) when the interface derives from another
* interface
*/
#if defined(__cplusplus) && !defined(CINTERFACE)
// define the c++ macros
#define interface struct
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method
#define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method
#define STDMETHODV_(type,method) virtual type STDMETHODVCALLTYPE method
#define PURE = 0
#define THIS_
#define THIS void
#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface
#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface
#else
// define the c macros
#define interface struct
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE* method)
#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE* method)
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE* method)
#define STDMETHODV_(type,method)type (STDMETHODVCALLTYPE* method)
#define PURE
#define THIS_ INTERFACE FAR* This,
#define THIS INTERFACE FAR* This
#ifdef CONST_VTABLE
#define DECLARE_INTERFACE(iface) typedef interface iface { \
const struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef const struct iface##Vtbl iface##Vtbl; \
const struct iface##Vtbl
#else
#define DECLARE_INTERFACE(iface) typedef interface iface { \
struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef struct iface##Vtbl iface##Vtbl; \
struct iface##Vtbl
#endif
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
#endif
#endif
+184
View File
@@ -0,0 +1,184 @@
/*
guiddef.h
guid declaration
Copyright (C) 1996 Free Software Foundation, Inc.
Author: Jurgen Van Gael <[email protected]>
Date: january 2001
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <[email protected]> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GUIDDEF_H
#define _GUIDDEF_H
#include <string.h>
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
#endif
// guid definition
#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
} GUID;
typedef GUID* LPGUID;
typedef const GUID* LPCGUID;
#endif
// guid definition macro
#ifdef DEFINE_GUID
#undef DEFINE_GUID
#endif
#ifdef INITGUID
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name
#endif
#define DEFINE_OLEGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
// IID section
typedef GUID IID;
typedef IID* LPIID;
#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
// CLSID section
typedef GUID CLSID;
typedef CLSID* LPCLSID;
#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)
// FMTID
typedef GUID FMTID;
typedef FMTID* LPFMTID;
#define IsEqualFMTID(rfmtid1, rfmtid2) IsEqualGUID(rfmtid1, rfmtid2)
// REFGUID section
#ifndef _REFGUID_DEFINED
#define _REFGUID_DEFINED
#ifdef __cplusplus
#define REFGUID const GUID &
#else
#define REFGUID const GUID *
#endif
#endif
// REFIID section
#ifndef _REFIID_DEFINED
#define _REFIID_DEFINED
#ifdef __cplusplus
#define REFIID const IID &
#else
#define REFIID const IID *
#endif
#endif
// REFCLSID section
#ifndef _REFCLSID_DEFINED
#define _REFCLSID_DEFINED
#ifdef __cplusplus
#define REFCLSID const IID &
#else
#define REFCLSID const IID *
#endif
#endif
// REFFMTID section
#ifndef _REFFMTID_DEFINED
#define _REFFMTID_DEFINED
#ifdef __cplusplus
#define REFFMTID const IID &
#else
#define REFFMTID const IID *
#endif
#endif
// compare functions for GUID
#ifdef __cplusplus
// cpp versions
__inline int InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2)
{
return(((unsigned long *) &rguid1)[0] == ((unsigned long *) &rguid2)[0] &&
((unsigned long *) &rguid1)[1] == ((unsigned long *) &rguid2)[1] &&
((unsigned long *) &rguid1)[2] == ((unsigned long *) &rguid2)[2] &&
((unsigned long *) &rguid1)[3] == ((unsigned long *) &rguid2)[3]);
}
__inline int IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
{
return !memcmp(&rguid1, &rguid2, sizeof(GUID));
}
#else
// c versions
#define InlineIsEqualGUID(rguid1, rguid2) \
(((unsigned long *) rguid1)[0] == ((unsigned long *) rguid2)[0] && \
((unsigned long *) rguid1)[1] == ((unsigned long *) rguid2)[1] && \
((unsigned long *) rguid1)[2] == ((unsigned long *) rguid2)[2] && \
((unsigned long *) rguid1)[3] == ((unsigned long *) rguid2)[3])
#define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID)))
#endif
// use the inline version???
#ifdef __INLINE_ISEQUAL_GUID
#define IsEqualGUID(rguid1, rguid2) InlineIsEqualGUID(rguid1, rguid2)
#endif
// compare functions for IID CLSID
#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)
// c++ helper functions
#if !defined _SYS_GUID_OPERATOR_EQ_ && !defined _NO_SYS_GUID_OPERATOR_EQ_
#define _SYS_GUID_OPERATOR_EQ_
#ifdef __cplusplus
__inline int operator==(REFGUID guidOne, REFGUID guidTwo)
{
return IsEqualGUID(guidOne ,guidTwo);
}
__inline int operator!=(REFGUID guidOne, REFGUID guidTwo)
{
return !(guidOne == guidTwo);
}
#endif
#endif
#endif
+1 -1
View File
@@ -185,7 +185,7 @@ typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE;
} RGBTRIPLE, *PRGBTRIPLE;
typedef struct _BITMAPCOREINFO {
BITMAPCOREHEADER bmciHeader;
+5
View File
@@ -1,6 +1,11 @@
#ifndef __WIN32K_COLOR_H
#define __WIN32K_COLOR_H
#define CLR_INVALID 0xffffffff
#define PC_SYS_USED 0x80 // palentry is used (both system and logical)
#define PC_SYS_RESERVED 0x40 // system palentry is not to be mapped to
#define PC_SYS_MAPPED 0x10 // logical palentry is a direct alias for system palentry
BOOL
STDCALL
W32kAnimatePalette (