Author: bfreisen Date: Thu Sep 29 11:15:10 2016 New Revision: 72852
URL: http://svn.reactos.org/svn/reactos?rev=72852&view=rev Log: [PSDK][GDIPLUS] Make previously untested GDI+ C++ wrappers compilable. This involves: - adding the respective headers to gdiplus.h in a sensible order - adding forward-declarations - adding friend-declarations, so that the wrapper functions in those classes can access the private GpXXX members - const-qualifying the getters in class Color - adding the EmfToWmfBitsFlags enum - commenting out bits that use unavailable flatapi functions - commenting out bits that for some reason the compiler does not like - the typical typo/data type fixes that untested code tends to need - moving the Font class within the same header to fulfill dependencies - adding private GpXXX members to otherwise unimplemented classes - adding a data-members-only implementation of SizeF
Modified: trunk/reactos/sdk/include/psdk/gdiplus.h trunk/reactos/sdk/include/psdk/gdiplusbrush.h trunk/reactos/sdk/include/psdk/gdipluscolor.h trunk/reactos/sdk/include/psdk/gdiplusenums.h trunk/reactos/sdk/include/psdk/gdiplusgraphics.h trunk/reactos/sdk/include/psdk/gdiplusheaders.h trunk/reactos/sdk/include/psdk/gdiplusmatrix.h trunk/reactos/sdk/include/psdk/gdipluspath.h trunk/reactos/sdk/include/psdk/gdipluspen.h trunk/reactos/sdk/include/psdk/gdiplustypes.h
Modified: trunk/reactos/sdk/include/psdk/gdiplus.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplus.h?... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplus.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplus.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -42,6 +42,18 @@ { #include "gdiplusflat.h" }; + +#include "gdiplusbase.h" +#include "gdiplusmatrix.h" +#include "gdiplusimageattributes.h" +#include "gdiplusbrush.h" +#include "gdipluspen.h" +#include "gdiplusstringformat.h" +#include "gdipluspath.h" +#include "gdiplusgraphics.h" +#include "gdiplusheaders.h" +#include "gdiplusmetafile.h" +#include "gdipluslinecaps.h" };
#else /* end c++ includes */
Modified: trunk/reactos/sdk/include/psdk/gdiplusbrush.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplusbru... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplusbrush.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplusbrush.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -19,6 +19,8 @@ #ifndef _GDIPLUSBRUSH_H #define _GDIPLUSBRUSH_H
+class Image; + class Brush : public GdiplusBase { public:
Modified: trunk/reactos/sdk/include/psdk/gdipluscolor.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdipluscol... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdipluscolor.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdipluscolor.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -54,47 +54,47 @@ Argb = a << 24 | r << 16 | g << 8 | b; }
- BYTE GetA(VOID) + BYTE GetA(VOID) const { return (Argb >> 24) & 0xff; }
- BYTE GetAlpha(VOID) + BYTE GetAlpha(VOID) const { return (Argb >> 24) & 0xff; }
- BYTE GetB(VOID) + BYTE GetB(VOID) const { return Argb & 0xff; }
- BYTE GetBlue(VOID) + BYTE GetBlue(VOID) const { return Argb & 0xff; }
- BYTE GetG(VOID) + BYTE GetG(VOID) const { return (Argb >> 8) & 0xff; }
- BYTE GetGreen(VOID) + BYTE GetGreen(VOID) const { return (Argb >> 8) & 0xff; }
- BYTE GetR(VOID) + BYTE GetR(VOID) const { return (Argb >> 16) & 0xff; }
- BYTE GetRed(VOID) + BYTE GetRed(VOID) const { return (Argb >> 16) & 0xff; }
- ARGB GetValue(VOID) + ARGB GetValue(VOID) const { return Argb; } @@ -114,7 +114,7 @@ Argb = argb; }
- COLORREF ToCOLORREF(VOID) + COLORREF ToCOLORREF(VOID) const { return (Argb & 0x000000ff) << 16 | (Argb & 0x0000ff00) | (Argb & 0x00ff0000) >> 16; }
Modified: trunk/reactos/sdk/include/psdk/gdiplusenums.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplusenu... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplusenums.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplusenums.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -226,6 +226,14 @@ EmfTypeEmfOnly = MetafileTypeEmf, EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly, EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual +}; + +enum EmfToWmfBitsFlags +{ + EmfToWmfBitsFlagsDefault = 0, + EmfToWmfBitsFlagsEmbedEmf = 1, + EmfToWmfBitsFlagsIncludePlaceable = 2, + EmfToWmfBitsFlagsNoXORClip = 4 };
enum CompositingMode
Modified: trunk/reactos/sdk/include/psdk/gdiplusgraphics.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplusgra... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplusgraphics.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplusgraphics.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -19,8 +19,21 @@ #ifndef _GDIPLUSGRAPHICS_H #define _GDIPLUSGRAPHICS_H
+class Image; +class ImageAttributes; +class CachedBitmap; +class Region; +class Font; +class GraphicsPath; +class Metafile; + class Graphics : public GdiplusBase { + friend class Region; + friend class Font; + friend class Bitmap; + friend class CachedBitmap; + public: Graphics(Image *image) {
Modified: trunk/reactos/sdk/include/psdk/gdiplusheaders.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplushea... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplusheaders.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplusheaders.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -69,14 +69,15 @@
Status GetEncoderParameterList(const CLSID *clsidEncoder, UINT size, EncoderParameters *buffer) { - return SetStatus(DllExports::GdipGetEncoderParameterList(image, clsidEncoder, size, buffer)); + return NotImplemented; // FIXME: not available: SetStatus(DllExports::GdipGetEncoderParameterList(image, clsidEncoder, size, buffer)); }
UINT GetEncoderParameterListSize(const CLSID *clsidEncoder) { - UINT size; - SetStatus(DllExports::GdipGetEncoderParameterListSize(image, clsidEncoder, &size)); - return size; + return 0; // FIXME: not available: +// UINT size; +// SetStatus(DllExports::GdipGetEncoderParameterListSize(image, clsidEncoder, &size)); +// return size; }
UINT GetFlags(VOID) @@ -138,7 +139,7 @@
Status GetPhysicalDimension(SizeF *size) { - return SetStatus(DllExports::GdipGetImagePhysicalDimension(image, &(size->Width), &(size->Height))); + return SetStatus(DllExports::GdipGetImageDimension(image, &size->Width, &size->Height)); }
PixelFormat GetPixelFormat(VOID) @@ -179,7 +180,7 @@
Status GetRawFormat(GUID *format) { - return SetStatus(DllExports::GdipGetRawFormat(image, format)); + return SetStatus(DllExports::GdipGetImageRawFormat(image, format)); }
Image *GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, GetThumbnailImageAbort callback, VOID *callbackData) @@ -232,12 +233,12 @@
Status SaveAdd(const EncoderParameters* encoderParams) { - return SetStatus(DllExports::GdipSaveAdd(image, encoderParams)); + return NotImplemented; // FIXME: not available: SetStatus(DllExports::GdipSaveAdd(image, encoderParams)); }
Status SaveAdd(Image *newImage, const EncoderParameters *encoderParams) { - return SetStatus(DllExports::GdipSaveAddImage(image, newImage->image, encoderParams)); + return NotImplemented; // FIXME: not available: SetStatus(DllExports::GdipSaveAddImage(image, newImage->image, encoderParams)); }
Status SelectActiveFrame(const GUID *dimensionID, UINT frameIndex) @@ -276,11 +277,13 @@
class Bitmap : public Image { + friend class CachedBitmap; + public: - Bitmap(IDirectDrawSurface7 *surface) - { - status = DllExports::GdipCreateBitmapFromDirectDrawSurface(surface, &bitmap); - } +// Bitmap(IDirectDrawSurface7 *surface) // <-- FIXME: compiler does not like this +// { +// status = DllExports::GdipCreateBitmapFromDirectDrawSurface(surface, &bitmap); +// }
Bitmap(INT width, INT height, Graphics *target) { @@ -365,10 +368,10 @@ return new Bitmap(gdiBitmapInfo, gdiBitmapData); }
- static Bitmap *FromDirectDrawSurface7(IDirectDrawSurface7 *surface) - { - return new Bitmap(surface); - } +// static Bitmap *FromDirectDrawSurface7(IDirectDrawSurface7 *surface) // <-- FIXME: compiler does not like this +// { +// return new Bitmap(surface); +// }
static Bitmap *FromFile(const WCHAR *filename, BOOL useEmbeddedColorManagement) { @@ -402,7 +405,7 @@
Status GetHICON(HICON *hicon) { - return SetStatus(DllExports::GdipCreateHICONFromBitmap(bitmap, hbmReturn)); + return SetStatus(DllExports::GdipCreateHICONFromBitmap(bitmap, hicon)); }
Status GetPixel(INT x, INT y, Color *color) @@ -458,7 +461,7 @@ public: CachedBitmap(Bitmap *bitmap, Graphics *graphics) { - status = DllExports::GdipCreateCachedBitmap(bitmap, graphics, &cachedBitmap); + status = DllExports::GdipCreateCachedBitmap(bitmap->bitmap, graphics->graphics, &cachedBitmap); }
Status GetLastStatus(VOID) @@ -469,6 +472,167 @@ private: mutable Status status; GpCachedBitmap *cachedBitmap; +}; + + +class FontCollection : public GdiplusBase +{ + friend class FontFamily; + +public: + FontCollection(VOID) + { + } + + Status GetFamilies(INT numSought, FontFamily *gpfamilies, INT *numFound) const + { + return NotImplemented; + } + + INT GetFamilyCount(VOID) const + { + return 0; + } + + Status GetLastStatus(VOID) + { + return NotImplemented; + } + +private: + GpFontCollection *fontCollection; +}; + + +class FontFamily : public GdiplusBase +{ + friend class Font; + +public: + FontFamily(VOID) + { + } + + FontFamily(const WCHAR *name, const FontCollection *fontCollection) + { + status = DllExports::GdipCreateFontFamilyFromName(name, fontCollection->fontCollection, &fontFamily); + } + + FontFamily *Clone(VOID) + { + return NULL; + } + + static const FontFamily *GenericMonospace(VOID) + { + FontFamily *genericMonospace = new FontFamily(); + genericMonospace->status = DllExports::GdipGetGenericFontFamilyMonospace(&(genericMonospace->fontFamily)); + return genericMonospace; + } + + static const FontFamily *GenericSansSerif(VOID) + { + FontFamily *genericSansSerif = new FontFamily(); + genericSansSerif->status = DllExports::GdipGetGenericFontFamilySansSerif(&(genericSansSerif->fontFamily)); + return genericSansSerif; + } + + static const FontFamily *GenericSerif(VOID) + { + FontFamily *genericSerif = new FontFamily(); + genericSerif->status = DllExports::GdipGetGenericFontFamilyMonospace(&(genericSerif->fontFamily)); + return genericSerif; + } + + UINT16 GetCellAscent(INT style) const + { + UINT16 CellAscent; + SetStatus(DllExports::GdipGetCellAscent(fontFamily, style, &CellAscent)); + return CellAscent; + } + + UINT16 GetCellDescent(INT style) const + { + UINT16 CellDescent; + SetStatus(DllExports::GdipGetCellDescent(fontFamily, style, &CellDescent)); + return CellDescent; + } + + UINT16 GetEmHeight(INT style) + { + UINT16 EmHeight; + SetStatus(DllExports::GdipGetEmHeight(fontFamily, style, &EmHeight)); + return EmHeight; + } + + Status GetFamilyName(WCHAR name[LF_FACESIZE], WCHAR language) const + { + return SetStatus(DllExports::GdipGetFamilyName(fontFamily, name, language)); + } + + Status GetLastStatus(VOID) const + { + return status; + } + + UINT16 GetLineSpacing(INT style) const + { + UINT16 LineSpacing; + SetStatus(DllExports::GdipGetLineSpacing(fontFamily, style, &LineSpacing)); + return LineSpacing; + } + + BOOL IsAvailable(VOID) const + { + return FALSE; + } + + BOOL IsStyleAvailable(INT style) const + { + BOOL StyleAvailable; + SetStatus(DllExports::GdipIsStyleAvailable(fontFamily, style, &StyleAvailable)); + return StyleAvailable; + } + +private: + mutable Status status; + GpFontFamily *fontFamily; + + Status SetStatus(Status status) const + { + if (status == Ok) + return status; + this->status = status; + return status; + } +}; + + +class InstalledFontFamily : public FontFamily +{ +public: + InstalledFontFamily(VOID) + { + } +}; + + +class PrivateFontCollection : public FontCollection +{ +public: + PrivateFontCollection(VOID) + { + } + + Status AddFontFile(const WCHAR* filename) + { + return NotImplemented; + } + + Status AddMemoryFont(const VOID *memory, INT length) + { + return NotImplemented; + } };
@@ -481,7 +645,7 @@
Font(const FontFamily *family, REAL emSize, INT style, Unit unit) { - status = DllExports::GdipCreateFont(family->fontFamily, emSize, style. unit, &font); + status = DllExports::GdipCreateFont(family->fontFamily, emSize, style, unit, &font); }
Font(HDC hdc, const HFONT hfont) @@ -565,13 +729,18 @@ Unit GetUnit(VOID) const { Unit unit; - SetStatus(DllExports::GdipGetFontUnit(font, &unit); + SetStatus(DllExports::GdipGetFontUnit(font, &unit)); return unit; }
BOOL IsAvailable(VOID) const { return FALSE; + } + +protected: + Font() + { }
private: @@ -584,160 +753,6 @@ return status; this->status = status; return status; - } -}; - - -class FontCollection : public GdiplusBase -{ -public: - FontCollection(VOID) - { - } - - Status GetFamilies(INT numSought, FontFamily *gpfamilies, INT *numFound) const - { - return NotImplemented; - } - - INT GetFamilyCount(VOID) const - { - return 0; - } - - Status GetLastStatus(VOID) - { - return NotImplemented; - } -}; - - -class FontFamily : public GdiplusBase -{ -public: - FontFamily(VOID) - { - } - - FontFamily(const WCHAR *name, const FontCollection *fontCollection) - { - status = DllExports::GdipCreateFontFamilyFromName(name, fontCollection, &fontFamily); - } - - FontFamily *Clone(VOID) - { - return NULL; - } - - static const FontFamily *GenericMonospace(VOID) - { - FontFamily *genericMonospace = new FontFamily(); - genericMonospace->status = DllExports::GdipGetGenericFontFamilyMonospace(&(genericMonospace->fontFamily)); - return genericMonospace; - } - - static const FontFamily *GenericSansSerif(VOID) - { - FontFamily *genericSansSerif = new FontFamily(); - genericSansSerif->status = DllExports::GdipGetGenericFontFamilySansSerif(&(genericSansSerif->fontFamily)); - return genericSansSerif; - } - - static const FontFamily *GenericSerif(VOID) - { - FontFamily *genericSerif = new FontFamily(); - genericSerif->status = DllExports::GdipGetGenericFontFamilyMonospace(&(genericSerif->fontFamily)); - return genericSerif; - } - - UINT16 GetCellAscent(INT style) const - { - UINT16 CellAscent; - SetStatus(DllExports::GdipGetCellAscent(fontFamily, style, &CellAscent)); - return CellAscent; - } - - UINT16 GetCellDescent(INT style) const - { - UINT16 CellDescent; - SetStatus(DllExports::GdipGetCellDescent(fontFamily, style, &CellDescent)); - return CellDescent; - } - - UINT16 GetEmHeight(INT style) - { - UINT16 EmHeight; - SetStatus(DllExports::GdipGetEmHeight(fontFamily, style, &EmHeight)); - return EmHeight; - } - - Status GetFamilyName(WCHAR name[LF_FACESIZE], WCHAR language) const - { - return SetStatus(DllExports::GdipGetFamilyName(fontFamily, name, language)); - } - - Status GetLastStatus(VOID) const - { - return status; - } - - UINT16 GetLineSpacing(INT style) const - { - UINT16 LineSpacing; - SetStatus(DllExports::GdipGetLineSpacing(fontFamily, style, &LineSpacing)); - return LineSpacing; - } - - BOOL IsAvailable(VOID) const - { - return FALSE; - } - - BOOL IsStyleAvailable(INT style) const - { - BOOL StyleAvailable; - SetStatus(DllExports::GdipIsStyleAvailable(fontFamily, style, &StyleAvailable)); - return StyleAvailable; - } - -private: - mutable Status status; - GpFontFamily *fontFamily; - - Status SetStatus(Status status) const - { - if (status == Ok) - return status; - this->status = status; - return status; - } -}; - - -class InstalledFontFamily : public FontFamily -{ -public: - InstalledFontFamily(VOID) - { - } -}; - - -class PrivateFontCollection : public FontCollection -{ -public: - PrivateFontCollection(VOID) - { - } - - Status AddFontFile(const WCHAR* filename) - { - return NotImplemented; - } - - Status AddMemoryFont(const VOID *memory, INT length) - { - return NotImplemented; } };
@@ -776,13 +791,13 @@
Region(const RectF &rect) { - status = DllExports::GdipCreateRegionRectF(&rect, ®ion); + status = DllExports::GdipCreateRegionRect(&rect, ®ion); }
Region *Clone(VOID) { - region *cloneRegion = new Region(); - cloneRegion->status = DllExports::GdipCloneRegion(region, &cloneRegion); + Region *cloneRegion = new Region(); + cloneRegion->status = DllExports::GdipCloneRegion(region, &cloneRegion->region); return cloneRegion; }
@@ -850,7 +865,7 @@
Status GetData(BYTE *buffer, UINT bufferSize, UINT *sizeFilled) const { - return SetStatus(DllExports::GdipGetRegionData(region, budder, bufferSize, sizeFilled)); + return SetStatus(DllExports::GdipGetRegionData(region, buffer, bufferSize, sizeFilled)); }
UINT GetDataSize(VOID) const @@ -926,21 +941,21 @@ BOOL IsVisible(const PointF &point, const Graphics *g) const { BOOL result; - SetStatus(DllExports::GdipIsVisibleRegionPoint(region, point.x, point.y, g->graphics, &result)); + SetStatus(DllExports::GdipIsVisibleRegionPoint(region, point.X, point.Y, g->graphics, &result)); return result; }
BOOL IsVisible(const RectF &rect, const Graphics *g) const { BOOL result; - SetStatus(DllExports::GdipIsVisibleRegionRect(region, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, g->graphics, &result)); + SetStatus(DllExports::GdipIsVisibleRegionRect(region, rect.X, rect.Y, rect.Width, rect.Height, g->graphics, &result)); return result; }
BOOL IsVisible(const Rect &rect, const Graphics *g) const { BOOL result; - SetStatus(DllExports::GdipIsVisibleRegionRectI(region, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, g->graphics, &result)); + SetStatus(DllExports::GdipIsVisibleRegionRectI(region, rect.X, rect.Y, rect.Width, rect.Height, g->graphics, &result)); return result; }
@@ -968,7 +983,7 @@ BOOL IsVisible(const Point &point, const Graphics *g) const { BOOL result; - SetStatus(DllExports::GdipIsVisibleRegionPointI(region, point.x, point.y, g->graphics, &result)); + SetStatus(DllExports::GdipIsVisibleRegionPointI(region, point.X, point.Y, g->graphics, &result)); return result; }
Modified: trunk/reactos/sdk/include/psdk/gdiplusmatrix.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplusmat... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplusmatrix.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplusmatrix.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -21,6 +21,8 @@
class Matrix : public GdiplusBase { + friend class Region; + public: Matrix(const RectF &rect, const PointF *dstplg) { @@ -45,7 +47,7 @@ Matrix *Clone(VOID) { Matrix *cloneMatrix = new Matrix(); // FIXME: Matrix::matrix already initialized --> potential memory leak - cloneMatrix->status = DllExports::GdipCloneMatrix(matrix, &cloneMatrix); + cloneMatrix->status = DllExports::GdipCloneMatrix(matrix, &cloneMatrix->matrix); return cloneMatrix; }
@@ -130,7 +132,7 @@ return SetStatus(DllExports::GdipSetMatrixElements(matrix, m11, m12, m21, m22, dx, dy)); }
- Status Shear(REAL shearX, REAL shearY, REAL order) + Status Shear(REAL shearX, REAL shearY, MatrixOrder order) { return SetStatus(DllExports::GdipShearMatrix(matrix, shearX, shearY, order)); } @@ -155,7 +157,7 @@ return SetStatus(DllExports::GdipVectorTransformMatrixPoints(matrix, pts, count)); }
- Status Translate(REAL offsetX, REAL offsetY, REAL order) + Status Translate(REAL offsetX, REAL offsetY, MatrixOrder order) { return SetStatus(DllExports::GdipTranslateMatrix(matrix, offsetX, offsetY, order)); }
Modified: trunk/reactos/sdk/include/psdk/gdipluspath.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdipluspat... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdipluspath.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdipluspath.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -19,8 +19,13 @@ #ifndef _GDIPLUSPATH_H #define _GDIPLUSPATH_H
+class FontFamily; +class Graphics; + class GraphicsPath : public GdiplusBase { + friend class Region; + public: GraphicsPath(const Point *points, const BYTE *types, INT count, FillMode fillMode) { @@ -418,6 +423,9 @@ { return NotImplemented; } + +private: + GpPath *path; };
Modified: trunk/reactos/sdk/include/psdk/gdipluspen.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdipluspen... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdipluspen.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdipluspen.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -18,6 +18,8 @@
#ifndef _GDIPLUSPEN_H #define _GDIPLUSPEN_H + +class CustomLineCap;
class Pen : public GdiplusBase {
Modified: trunk/reactos/sdk/include/psdk/gdiplustypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/gdiplustyp... ============================================================================== --- trunk/reactos/sdk/include/psdk/gdiplustypes.h [iso-8859-1] (original) +++ trunk/reactos/sdk/include/psdk/gdiplustypes.h [iso-8859-1] Thu Sep 29 11:15:10 2016 @@ -227,6 +227,14 @@ INT Length; };
+/* FIXME: missing the methods. */ +class SizeF +{ +public: + REAL Width; + REAL Height; +}; + #else /* end of c++ typedefs */
typedef struct Point