gdiplus: C++ fixes for headers
Iain Arnell
iarnell at gmail.com
Tue Feb 1 01:49:46 CST 2011
To fix inclusion of gdiplus.h under C++, this patch:
* adds missing class declaration for GpPen
* adds missing class declaration for CharacterRange
* fixes PenAlignment/GpPenAlignment declaration
* avoids redeclaration of PixelFormat
Simple testcase:
cat >test.cpp <<EOF
#include <windows.h>
#include <gdiplus.h>
EOF
wineg++ -c test.cpp
---
include/gdiplusenums.h | 2 +-
include/gdiplusgpstubs.h | 2 ++
include/gdiplusimaging.h | 4 ++--
include/gdiplustypes.h | 25 +++++++++++++++++++++++++
4 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/include/gdiplusenums.h b/include/gdiplusenums.h
index 82f20eb..dc03b29 100644
--- a/include/gdiplusenums.h
+++ b/include/gdiplusenums.h
@@ -734,7 +734,7 @@ typedef enum StringTrimming StringTrimming;
typedef enum FontStyle FontStyle;
typedef enum StringFormatFlags StringFormatFlags;
typedef enum HotkeyPrefix HotkeyPrefix;
-typedef enum PenAlignment GpPenAlignment;
+typedef enum PenAlignment PenAlignment;
typedef enum PaletteFlags PaletteFlags;
typedef enum ImageCodecFlags ImageCodecFlags;
typedef enum CombineMode CombineMode;
diff --git a/include/gdiplusgpstubs.h b/include/gdiplusgpstubs.h
index 3edc1f4..5a65cd8 100644
--- a/include/gdiplusgpstubs.h
+++ b/include/gdiplusgpstubs.h
@@ -22,6 +22,7 @@
#ifdef __cplusplus
class GpGraphics {};
+class GpPen {};
class GpBrush {};
class GpHatch : public GpBrush {};
class GpSolidFill : public GpBrush {};
@@ -92,6 +93,7 @@ typedef WrapMode GpWrapMode;
typedef Color GpColor;
typedef FlushIntention GpFlushIntention;
typedef CoordinateSpace GpCoordinateSpace;
+typedef PenAlignment GpPenAlignment;
typedef PenType GpPenType;
#endif
diff --git a/include/gdiplusimaging.h b/include/gdiplusimaging.h
index 42a00cb..3e9f6ee 100644
--- a/include/gdiplusimaging.h
+++ b/include/gdiplusimaging.h
@@ -110,7 +110,7 @@ public:
UINT Width;
UINT Height;
INT Stride;
- PixelFormat PixelFormat;
+ INT PixelFormat; /* MSDN: "PixelFormat PixelFormat;" */
VOID* Scan0;
UINT_PTR Reserved;
};
@@ -177,7 +177,7 @@ typedef struct BitmapData
UINT Width;
UINT Height;
INT Stride;
- PixelFormat PixelFormat;
+ INT PixelFormat; /* MSDN: "PixelFormat PixelFormat;" */
VOID* Scan0;
UINT_PTR Reserved; /* undocumented: stores the lock mode */
} BitmapData;
diff --git a/include/gdiplustypes.h b/include/gdiplustypes.h
index 4f97432..b84c74e 100644
--- a/include/gdiplustypes.h
+++ b/include/gdiplustypes.h
@@ -199,6 +199,31 @@ public:
INT Height;
};
+class CharacterRange
+{
+public:
+ CharacterRange()
+ {
+ First = Length = 0;
+ }
+
+ CharacterRange(IN INT first, IN INT length)
+ {
+ First = first;
+ Length = length;
+ }
+
+ CharacterRange& operator=(IN const CharacterRange& rhs)
+ {
+ First = rhs.First;
+ Length = rhs.Length;
+ return *this;
+ }
+public:
+ INT First;
+ INT Length;
+};
+
#else /* end of c++ typedefs */
typedef struct Point
--
1.7.3.5
More information about the wine-patches
mailing list