6 * This file is part of the w32api package.
8 * THIS SOFTWARE IS NOT COPYRIGHTED
10 * This source code is offered for use in the public domain. You may
11 * use, modify or distribute it freely.
13 * This code is distributed in the hope that it will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includes but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 #ifndef _GDIPLUSHEADERS_H
20 #define _GDIPLUSHEADERS_H
22 class Image
: public GdiplusBase
25 friend class Graphics
;
27 Image(IStream
*stream
, BOOL useEmbeddedColorManagement
= FALSE
)
29 if (useEmbeddedColorManagement
)
30 status
= DllExports::GdipLoadImageFromStreamICM(stream
, &image
);
32 status
= DllExports::GdipLoadImageFromStream(stream
, &image
);
35 Image(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
= FALSE
)
37 if (useEmbeddedColorManagement
)
38 status
= DllExports::GdipLoadImageFromFileICM(filename
, &image
);
40 status
= DllExports::GdipLoadImageFromFile(filename
, &image
);
45 Image
*newImage
= new Image();
46 SetStatus(DllExports::GdipCloneImage(image
, &(newImage
->image
)));
50 static Image
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
= FALSE
)
52 return new Image(filename
, useEmbeddedColorManagement
);
55 static Image
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
= FALSE
)
57 return new Image(stream
, useEmbeddedColorManagement
);
60 Status
GetAllPropertyItems(UINT totalBufferSize
, UINT numProperties
, PropertyItem
*allItems
)
62 return SetStatus(DllExports::GdipGetAllPropertyItems(image
, totalBufferSize
, numProperties
, allItems
));
65 Status
GetBounds(RectF
*srcRect
, Unit
*srcUnit
)
67 return SetStatus(DllExports::GdipGetImageBounds(image
, srcRect
, srcUnit
));
70 Status
GetEncoderParameterList(const CLSID
*clsidEncoder
, UINT size
, EncoderParameters
*buffer
)
72 return SetStatus(DllExports::GdipGetEncoderParameterList(image
, clsidEncoder
, size
, buffer
));
75 UINT
GetEncoderParameterListSize(const CLSID
*clsidEncoder
)
78 SetStatus(DllExports::GdipGetEncoderParameterListSize(image
, clsidEncoder
, &size
));
85 SetStatus(DllExports::GdipGetImageFlags(image
, &flags
));
89 UINT
GetFrameCount(const GUID
*dimensionID
)
92 SetStatus(DllExports::GdipImageGetFrameCount(image
, dimensionID
, &count
));
96 UINT
GetFrameDimensionsCount(VOID
)
99 SetStatus(DllExports::GdipImageGetFrameDimensionsCount(image
, &count
));
103 Status
GetFrameDimensionsList(GUID
*dimensionIDs
, UINT count
)
105 return SetStatus(DllExports::GdipImageGetFrameDimensionsList(image
, dimensionIDs
, count
));
111 SetStatus(DllExports::GdipGetImageHeight(image
, &height
));
115 REAL
GetHorizontalResolution(VOID
)
118 SetStatus(DllExports::GdipGetImageHorizontalResolution(image
, &resolution
));
122 Status
GetLastStatus(VOID
)
127 Status
GetPalette(ColorPalette
*palette
, INT size
)
129 return SetStatus(DllExports::GdipGetImagePalette(image
, palette
, size
));
132 INT
GetPaletteSize(VOID
)
135 SetStatus(DllExports::GdipGetImagePaletteSize(image
, &size
));
139 Status
GetPhysicalDimension(SizeF
*size
)
141 return SetStatus(DllExports::GdipGetImagePhysicalDimension(image
, &(size
->Width
), &(size
->Height
)));
144 PixelFormat
GetPixelFormat(VOID
)
147 SetStatus(DllExports::GdipGetImagePixelFormat(image
, &format
));
151 UINT
GetPropertyCount(VOID
)
154 SetStatus(DllExports::GdipGetPropertyCount(image
, &numOfProperty
));
155 return numOfProperty
;
158 Status
GetPropertyIdList(UINT numOfProperty
, PROPID
*list
)
160 return SetStatus(DllExports::GdipGetPropertyIdList(image
, numOfProperty
, list
));
163 Status
GetPropertyItem(PROPID propId
, UINT propSize
, PropertyItem
*buffer
)
165 return SetStatus(DllExports::GdipGetPropertyItem(image
, propId
, propSize
, buffer
));
168 UINT
GetPropertyItemSize(PROPID propId
)
171 SetStatus(DllExports::GdipGetPropertyItemSize(image
, propId
, &size
));
175 Status
GetPropertySize(UINT
*totalBufferSize
, UINT
*numProperties
)
177 return SetStatus(DllExports::GdipGetPropertySize(image
, totalBufferSize
, numProperties
));
180 Status
GetRawFormat(GUID
*format
)
182 return SetStatus(DllExports::GdipGetRawFormat(image
, format
));
185 Image
*GetThumbnailImage(UINT thumbWidth
, UINT thumbHeight
, GetThumbnailImageAbort callback
, VOID
*callbackData
)
187 Image
*thumbImage
= new Image();
188 SetStatus(DllExports::GdipGetImageThumbnail(image
, thumbWidth
, thumbHeight
, &(thumbImage
->image
), callback
, callbackData
));
192 ImageType
GetType(VOID
)
195 SetStatus(DllExports::GdipGetImageType(image
, &type
));
199 REAL
GetVerticalResolution(VOID
)
202 SetStatus(DllExports::GdipGetImageVerticalResolution(image
, &resolution
));
209 SetStatus(DllExports::GdipGetImageWidth(image
, &width
));
213 Status
RemovePropertyItem(PROPID propId
)
215 return SetStatus(DllExports::GdipRemovePropertyItem(image
, propId
));
218 Status
RotateFlip(RotateFlipType rotateFlipType
)
220 return SetStatus(DllExports::GdipImageRotateFlip(image
, rotateFlipType
));
223 Status
Save(IStream
*stream
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
225 return SetStatus(DllExports::GdipSaveImageToStream(image
, stream
, clsidEncoder
, encoderParams
));
228 Status
Save(const WCHAR
*filename
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
230 return SetStatus(DllExports::GdipSaveImageToFile(image
, filename
, clsidEncoder
, encoderParams
));
233 Status
SaveAdd(const EncoderParameters
* encoderParams
)
235 return SetStatus(DllExports::GdipSaveAdd(image
, encoderParams
));
238 Status
SaveAdd(Image
*newImage
, const EncoderParameters
*encoderParams
)
240 return SetStatus(DllExports::GdipSaveAddImage(image
, newImage
->image
, encoderParams
));
243 Status
SelectActiveFrame(const GUID
*dimensionID
, UINT frameIndex
)
245 return SetStatus(DllExports::GdipImageSelectActiveFrame(image
, dimensionID
, frameIndex
));
248 Status
SetPalette(const ColorPalette
* palette
)
250 return SetStatus(DllExports::GdipSetImagePalette(image
, palette
));
253 Status
SetPropertyItem(const PropertyItem
* item
)
255 return SetStatus(DllExports::GdipSetPropertyItem(image
, item
));
264 mutable Status status
;
267 Status
SetStatus(Status status
) const
271 this->status
= status
;
277 class Bitmap
: public Image
280 Bitmap(IDirectDrawSurface7
*surface
)
282 status
= DllExports::GdipCreateBitmapFromDirectDrawSurface(surface
, &bitmap
);
285 Bitmap(INT width
, INT height
, Graphics
*target
)
287 status
= DllExports::GdipCreateBitmapFromGraphics(width
, height
, target
->graphics
, &bitmap
);
290 Bitmap(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
292 status
= DllExports::GdipCreateBitmapFromGdiDib(gdiBitmapInfo
, gdiBitmapData
, &bitmap
);
295 Bitmap(INT width
, INT height
, PixelFormat format
)
299 Bitmap(HBITMAP hbm
, HPALETTE hpal
)
301 status
= DllExports::GdipCreateBitmapFromHBITMAP(hbm
, hpal
, &bitmap
);
304 Bitmap(INT width
, INT height
, INT stride
, PixelFormat format
, BYTE
*scan0
)
306 status
= DllExports::GdipCreateBitmapFromScan0(width
, height
, stride
, format
, scan0
, &bitmap
);
309 Bitmap(const WCHAR
*filename
, BOOL useIcm
)
312 status
= DllExports::GdipCreateBitmapFromFileICM(filename
, &bitmap
);
314 status
= DllExports::GdipCreateBitmapFromFile(filename
, &bitmap
);
317 Bitmap(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
319 status
= DllExports::GdipCreateBitmapFromResource(hInstance
, bitmapName
, &bitmap
);
324 status
= DllExports::GdipCreateBitmapFromHICON(hicon
, &bitmap
);
327 Bitmap(IStream
*stream
, BOOL useIcm
)
330 status
= DllExports::GdipCreateBitmapFromStreamICM(stream
, &bitmap
);
332 status
= DllExports::GdipCreateBitmapFromStream(stream
, &bitmap
);
335 Bitmap
*Clone(const Rect
&rect
, PixelFormat format
)
337 Bitmap
*dstBitmap
= new Bitmap();
338 SetStatus(DllExports::GdipCloneBitmapAreaI(rect
.X
, rect
.Y
, rect
.Width
, rect
.Height
, format
, bitmap
, &(dstBitmap
->bitmap
)));
342 Bitmap
*Clone(const RectF
&rect
, PixelFormat format
)
344 Bitmap
*dstBitmap
= new Bitmap();
345 SetStatus(DllExports::GdipCloneBitmapArea(rect
.X
, rect
.Y
, rect
.Width
, rect
.Height
, format
, bitmap
, &(dstBitmap
->bitmap
)));
349 Bitmap
*Clone(REAL x
, REAL y
, REAL width
, REAL height
, PixelFormat format
)
351 Bitmap
*dstBitmap
= new Bitmap();
352 SetStatus(DllExports::GdipCloneBitmapArea(x
, y
, width
, height
, format
, bitmap
, &(dstBitmap
->bitmap
)));
356 Bitmap
*Clone(INT x
, INT y
, INT width
, INT height
, PixelFormat format
)
358 Bitmap
*dstBitmap
= new Bitmap();
359 SetStatus(DllExports::GdipCloneBitmapAreaI(x
, y
, width
, height
, format
, bitmap
, &(dstBitmap
->bitmap
)));
363 static Bitmap
*FromBITMAPINFO(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
365 return new Bitmap(gdiBitmapInfo
, gdiBitmapData
);
368 static Bitmap
*FromDirectDrawSurface7(IDirectDrawSurface7
*surface
)
370 return new Bitmap(surface
);
373 static Bitmap
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
375 return new Bitmap(filename
, useEmbeddedColorManagement
);
378 static Bitmap
*FromHBITMAP(HBITMAP hbm
, HPALETTE hpal
)
380 return new Bitmap(hbm
, hpal
);
383 static Bitmap
*FromHICON(HICON hicon
)
385 return new Bitmap(hicon
);
388 static Bitmap
*FromResource(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
390 return new Bitmap(hInstance
, bitmapName
);
393 static Bitmap
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
)
395 return new Bitmap(stream
, useEmbeddedColorManagement
);
398 Status
GetHBITMAP(const Color
&colorBackground
, HBITMAP
*hbmReturn
)
400 return SetStatus(DllExports::GdipCreateHBITMAPFromBitmap(bitmap
, hbmReturn
, colorBackground
.GetValue()));
403 Status
GetHICON(HICON
*hicon
)
405 return SetStatus(DllExports::GdipCreateHICONFromBitmap(bitmap
, hbmReturn
));
408 Status
GetPixel(INT x
, INT y
, Color
*color
)
411 Status s
= SetStatus(DllExports::GdipBitmapGetPixel(bitmap
, x
, y
, &argb
));
413 color
->SetValue(argb
);
417 Status
LockBits(const Rect
*rect
, UINT flags
, PixelFormat format
, BitmapData
*lockedBitmapData
)
419 return SetStatus(DllExports::GdipBitmapLockBits(bitmap
, rect
, flags
, format
, lockedBitmapData
));
422 Status
SetPixel(INT x
, INT y
, const Color
&color
)
424 return SetStatus(DllExports::GdipBitmapSetPixel(bitmap
, x
, y
, color
.GetValue()));
427 Status
SetResolution(REAL xdpi
, REAL ydpi
)
429 return SetStatus(DllExports::GdipBitmapSetResolution(bitmap
, xdpi
, ydpi
));
432 Status
UnlockBits(BitmapData
*lockedBitmapData
)
434 return SetStatus(DllExports::GdipBitmapUnlockBits(bitmap
, lockedBitmapData
));
443 mutable Status status
;
446 Status
SetStatus(Status status
) const
450 this->status
= status
;
456 class CachedBitmap
: public GdiplusBase
459 CachedBitmap(Bitmap
*bitmap
, Graphics
*graphics
)
461 status
= DllExports::GdipCreateCachedBitmap(bitmap
, graphics
, &cachedBitmap
);
464 Status
GetLastStatus(VOID
)
470 mutable Status status
;
471 GpCachedBitmap
*cachedBitmap
;
475 class Font
: public GdiplusBase
478 friend class FontFamily
;
479 friend class FontCollection
;
480 friend class Graphics
;
482 Font(const FontFamily
*family
, REAL emSize
, INT style
, Unit unit
)
484 status
= DllExports::GdipCreateFont(family
->fontFamily
, emSize
, style
. unit
, &font
);
487 Font(HDC hdc
, const HFONT hfont
)
491 Font(HDC hdc
, const LOGFONTA
*logfont
)
493 status
= DllExports::GdipCreateFontFromLogfontA(hdc
, logfont
, &font
);
496 Font(HDC hdc
, const LOGFONTW
*logfont
)
498 status
= DllExports::GdipCreateFontFromLogfontW(hdc
, logfont
, &font
);
501 Font(const WCHAR
*familyName
, REAL emSize
, INT style
, Unit unit
, const FontCollection
*fontCollection
)
507 status
= DllExports::GdipCreateFontFromDC(hdc
, &font
);
510 Font
*Clone(VOID
) const
512 Font
*cloneFont
= new Font();
513 cloneFont
->status
= DllExports::GdipCloneFont(font
, &(cloneFont
->font
));
517 Status
GetFamily(FontFamily
* family
) const
519 return SetStatus(DllExports::GdipGetFamily(font
, &(family
->fontFamily
)));
522 REAL
GetHeight(const Graphics
* graphics
) const
525 SetStatus(DllExports::GdipGetFontHeight(font
, graphics
->graphics
, &height
));
529 REAL
GetHeight(REAL dpi
) const
532 SetStatus(DllExports::GdipGetFontHeightGivenDPI(font
, dpi
, &height
));
536 Status
GetLastStatus(VOID
) const
541 Status
GetLogFontA(const Graphics
*g
, LOGFONTA
*logfontA
) const
543 return SetStatus(DllExports::GdipGetLogFontA(font
, g
->graphics
, logfontA
));
546 Status
GetLogFontW(const Graphics
*g
, LOGFONTW
*logfontW
) const
548 return SetStatus(DllExports::GdipGetLogFontW(font
, g
->graphics
, logfontW
));
551 REAL
GetSize(VOID
) const
554 SetStatus(DllExports::GdipGetFontSize(font
, &size
));
558 INT
GetStyle(VOID
) const
561 SetStatus(DllExports::GdipGetFontStyle(font
, &style
));
565 Unit
GetUnit(VOID
) const
568 SetStatus(DllExports::GdipGetFontUnit(font
, &unit
);
572 BOOL
IsAvailable(VOID
) const
578 mutable Status status
;
581 Status
SetStatus(Status status
) const
585 this->status
= status
;
591 class FontCollection
: public GdiplusBase
598 Status
GetFamilies(INT numSought
, FontFamily
*gpfamilies
, INT
*numFound
) const
600 return NotImplemented
;
603 INT
GetFamilyCount(VOID
) const
608 Status
GetLastStatus(VOID
)
610 return NotImplemented
;
615 class FontFamily
: public GdiplusBase
622 FontFamily(const WCHAR
*name
, const FontCollection
*fontCollection
)
624 status
= DllExports::GdipCreateFontFamilyFromName(name
, fontCollection
, &fontFamily
);
627 FontFamily
*Clone(VOID
)
632 static const FontFamily
*GenericMonospace(VOID
)
634 FontFamily
*genericMonospace
= new FontFamily();
635 genericMonospace
->status
= DllExports::GdipGetGenericFontFamilyMonospace(&(genericMonospace
->fontFamily
));
636 return genericMonospace
;
639 static const FontFamily
*GenericSansSerif(VOID
)
641 FontFamily
*genericSansSerif
= new FontFamily();
642 genericSansSerif
->status
= DllExports::GdipGetGenericFontFamilySansSerif(&(genericSansSerif
->fontFamily
));
643 return genericSansSerif
;
646 static const FontFamily
*GenericSerif(VOID
)
648 FontFamily
*genericSerif
= new FontFamily();
649 genericSerif
->status
= DllExports::GdipGetGenericFontFamilyMonospace(&(genericSerif
->fontFamily
));
653 UINT16
GetCellAscent(INT style
) const
656 SetStatus(DllExports::GdipGetCellAscent(fontFamily
, style
, &CellAscent
));
660 UINT16
GetCellDescent(INT style
) const
663 SetStatus(DllExports::GdipGetCellDescent(fontFamily
, style
, &CellDescent
));
667 UINT16
GetEmHeight(INT style
)
670 SetStatus(DllExports::GdipGetEmHeight(fontFamily
, style
, &EmHeight
));
674 Status
GetFamilyName(WCHAR name
[LF_FACESIZE
], WCHAR language
) const
676 return SetStatus(DllExports::GdipGetFamilyName(fontFamily
, name
, language
));
679 Status
GetLastStatus(VOID
) const
684 UINT16
GetLineSpacing(INT style
) const
687 SetStatus(DllExports::GdipGetLineSpacing(fontFamily
, style
, &LineSpacing
));
691 BOOL
IsAvailable(VOID
) const
696 BOOL
IsStyleAvailable(INT style
) const
699 SetStatus(DllExports::GdipIsStyleAvailable(fontFamily
, style
, &StyleAvailable
));
700 return StyleAvailable
;
704 mutable Status status
;
705 GpFontFamily
*fontFamily
;
707 Status
SetStatus(Status status
) const
711 this->status
= status
;
717 class InstalledFontFamily
: public FontFamily
720 InstalledFontFamily(VOID
)
726 class PrivateFontCollection
: public FontCollection
729 PrivateFontCollection(VOID
)
733 Status
AddFontFile(const WCHAR
* filename
)
735 return NotImplemented
;
738 Status
AddMemoryFont(const VOID
*memory
, INT length
)
740 return NotImplemented
;
745 class Region
: public GdiplusBase
748 friend class Graphics
;
749 friend class GraphicsPath
;
752 Region(const Rect
&rect
)
754 status
= DllExports::GdipCreateRegionRectI(&rect
, ®ion
);
759 status
= DllExports::GdipCreateRegion(®ion
);
762 Region(const BYTE
*regionData
, INT size
)
764 status
= DllExports::GdipCreateRegionRgnData(regionData
, size
, ®ion
);
767 Region(const GraphicsPath
*path
)
769 status
= DllExports::GdipCreateRegionPath(path
->path
, ®ion
);
774 status
= DllExports::GdipCreateRegionHrgn(hRgn
, ®ion
);
777 Region(const RectF
&rect
)
779 status
= DllExports::GdipCreateRegionRectF(&rect
, ®ion
);
784 region
*cloneRegion
= new Region();
785 cloneRegion
->status
= DllExports::GdipCloneRegion(region
, &cloneRegion
);
789 Status
Complement(const GraphicsPath
*path
)
791 return SetStatus(DllExports::GdipCombineRegionPath(region
, path
->path
, CombineModeComplement
));
794 Status
Complement(const Region
*region
)
796 return SetStatus(DllExports::GdipCombineRegionRegion(this->region
, region
->region
, CombineModeComplement
));
799 Status
Complement(const Rect
&rect
)
801 return SetStatus(DllExports::GdipCombineRegionRectI(region
, &rect
, CombineModeComplement
));
804 Status
Complement(const RectF
&rect
)
806 return SetStatus(DllExports::GdipCombineRegionRect(region
, &rect
, CombineModeComplement
));
809 BOOL
Equals(const Region
*region
, const Graphics
*g
) const
812 SetStatus(DllExports::GdipIsEqualRegion(this->region
, region
->region
, g
->graphics
, &result
));
816 Status
Exclude(const GraphicsPath
*path
)
818 return SetStatus(DllExports::GdipCombineRegionPath(region
, path
->path
, CombineModeExclude
));
821 Status
Exclude(const RectF
&rect
)
823 return SetStatus(DllExports::GdipCombineRegionRect(region
, &rect
, CombineModeExclude
));
826 Status
Exclude(const Rect
&rect
)
828 return SetStatus(DllExports::GdipCombineRegionRectI(region
, &rect
, CombineModeExclude
));
831 Status
Exclude(const Region
*region
)
833 return SetStatus(DllExports::GdipCombineRegionRegion(this->region
, region
->region
, CombineModeExclude
));
836 static Region
*FromHRGN(HRGN hRgn
)
838 return new Region(hRgn
);
841 Status
GetBounds(Rect
*rect
, const Graphics
*g
) const
843 return SetStatus(DllExports::GdipGetRegionBoundsI(region
, g
->graphics
, rect
));
846 Status
GetBounds(RectF
*rect
, const Graphics
*g
) const
848 return SetStatus(DllExports::GdipGetRegionBounds(region
, g
->graphics
, rect
));
851 Status
GetData(BYTE
*buffer
, UINT bufferSize
, UINT
*sizeFilled
) const
853 return SetStatus(DllExports::GdipGetRegionData(region
, budder
, bufferSize
, sizeFilled
));
856 UINT
GetDataSize(VOID
) const
859 SetStatus(DllExports::GdipGetRegionDataSize(region
, &bufferSize
));
863 HRGN
GetHRGN(const Graphics
*g
) const
866 SetStatus(DllExports::GdipGetRegionHRgn(region
, g
->graphics
, &hRgn
));
870 Status
GetLastStatus(VOID
)
875 Status
GetRegionScans(const Matrix
*matrix
, Rect
*rects
, INT
*count
) const
877 return SetStatus(DllExports::GdipGetRegionScansI(region
, rects
, count
, matrix
->matrix
));
880 Status
GetRegionScans(const Matrix
*matrix
, RectF
*rects
, INT
*count
) const
882 return SetStatus(DllExports::GdipGetRegionScans(region
, rects
, count
, matrix
->matrix
));
885 UINT
GetRegionScansCount(const Matrix
*matrix
) const
888 SetStatus(DllExports::GdipGetRegionScansCount(region
, &count
, matrix
->matrix
));
892 Status
Intersect(const Rect
&rect
)
894 return SetStatus(DllExports::GdipCombineRegionRectI(region
, &rect
, CombineModeIntersect
));
897 Status
Intersect(const GraphicsPath
*path
)
899 return SetStatus(DllExports::GdipCombineRegionPath(region
, path
->path
, CombineModeIntersect
));
902 Status
Intersect(const RectF
&rect
)
904 return SetStatus(DllExports::GdipCombineRegionRect(region
, &rect
, CombineModeIntersect
));
907 Status
Intersect(const Region
*region
)
909 return SetStatus(DllExports::GdipCombineRegionRegion(this->region
, region
->region
, CombineModeIntersect
));
912 BOOL
IsEmpty(const Graphics
*g
) const
915 SetStatus(DllExports::GdipIsEmptyRegion(region
, g
->graphics
, &result
));
919 BOOL
IsInfinite(const Graphics
*g
) const
922 SetStatus(DllExports::GdipIsInfiniteRegion(region
, g
->graphics
, &result
));
926 BOOL
IsVisible(const PointF
&point
, const Graphics
*g
) const
929 SetStatus(DllExports::GdipIsVisibleRegionPoint(region
, point
.x
, point
.y
, g
->graphics
, &result
));
933 BOOL
IsVisible(const RectF
&rect
, const Graphics
*g
) const
936 SetStatus(DllExports::GdipIsVisibleRegionRect(region
, rect
.left
, rect
.top
, rect
.right
- rect
.left
, rect
.bottom
- rect
.top
, g
->graphics
, &result
));
940 BOOL
IsVisible(const Rect
&rect
, const Graphics
*g
) const
943 SetStatus(DllExports::GdipIsVisibleRegionRectI(region
, rect
.left
, rect
.top
, rect
.right
- rect
.left
, rect
.bottom
- rect
.top
, g
->graphics
, &result
));
947 BOOL
IsVisible(INT x
, INT y
, const Graphics
*g
) const
950 SetStatus(DllExports::GdipIsVisibleRegionPointI(region
, x
, y
, g
->graphics
, &result
));
954 BOOL
IsVisible(REAL x
, REAL y
, const Graphics
*g
) const
957 SetStatus(DllExports::GdipIsVisibleRegionPoint(region
, x
, y
, g
->graphics
, &result
));
961 BOOL
IsVisible(INT x
, INT y
, INT width
, INT height
, const Graphics
*g
) const
964 SetStatus(DllExports::GdipIsVisibleRegionRectI(region
, x
, y
, width
, height
, g
->graphics
, &result
));
968 BOOL
IsVisible(const Point
&point
, const Graphics
*g
) const
971 SetStatus(DllExports::GdipIsVisibleRegionPointI(region
, point
.x
, point
.y
, g
->graphics
, &result
));
975 BOOL
IsVisible(REAL x
, REAL y
, REAL width
, REAL height
, const Graphics
*g
) const
978 SetStatus(DllExports::GdipIsVisibleRegionRect(region
, x
, y
, width
, height
, g
->graphics
, &result
));
982 Status
MakeEmpty(VOID
)
984 return SetStatus(DllExports::GdipSetEmpty(region
));
987 Status
MakeInfinite(VOID
)
989 return SetStatus(DllExports::GdipSetInfinite(region
));
992 Status
Transform(const Matrix
*matrix
)
994 return SetStatus(DllExports::GdipTransformRegion(region
, matrix
->matrix
));
997 Status
Translate(REAL dx
, REAL dy
)
999 return SetStatus(DllExports::GdipTranslateRegion(region
, dx
, dy
));
1002 Status
Translate(INT dx
, INT dy
)
1004 return SetStatus(DllExports::GdipTranslateRegionI(region
, dx
, dy
));
1007 Status
Union(const Rect
&rect
)
1009 return SetStatus(DllExports::GdipCombineRegionRectI(region
, &rect
, CombineModeUnion
));
1012 Status
Union(const Region
*region
)
1014 return SetStatus(DllExports::GdipCombineRegionRegion(this->region
, region
->region
, CombineModeUnion
));
1017 Status
Union(const RectF
&rect
)
1019 return SetStatus(DllExports::GdipCombineRegionRect(region
, &rect
, CombineModeUnion
));
1022 Status
Union(const GraphicsPath
*path
)
1024 return SetStatus(DllExports::GdipCombineRegionPath(region
, path
->path
, CombineModeUnion
));
1027 Status
Xor(const GraphicsPath
*path
)
1029 return SetStatus(DllExports::GdipCombineRegionPath(region
, path
->path
, CombineModeXor
));
1032 Status
Xor(const RectF
&rect
)
1034 return SetStatus(DllExports::GdipCombineRegionRect(region
, &rect
, CombineModeXor
));
1037 Status
Xor(const Rect
&rect
)
1039 return SetStatus(DllExports::GdipCombineRegionRectI(region
, &rect
, CombineModeXor
));
1042 Status
Xor(const Region
*region
)
1044 return SetStatus(DllExports::GdipCombineRegionRegion(this->region
, region
->region
, CombineModeXor
));
1048 mutable Status status
;
1051 Status
SetStatus(Status status
) const
1055 this->status
= status
;
1061 class CustomLineCap
: public GdiplusBase
1064 CustomLineCap(const GraphicsPath
*fillPath
, const GraphicsPath
*strokePath
, LineCap baseCap
, REAL baseInset
);
1065 CustomLineCap
*Clone(VOID
);
1066 LineCap
GetBaseCap(VOID
);
1067 REAL
GetBaseInset(VOID
);
1068 Status
GetLastStatus(VOID
);
1069 Status
GetStrokeCaps(LineCap
*startCap
, LineCap
*endCap
);
1070 LineJoin
GetStrokeJoin(VOID
);
1071 REAL
GetWidthScale(VOID
);
1072 Status
SetBaseCap(LineCap baseCap
);
1073 Status
SetBaseInset(REAL inset
);
1074 Status
SetStrokeCap(LineCap strokeCap
);
1075 Status
SetStrokeCaps(LineCap startCap
, LineCap endCap
);
1076 Status
SetStrokeJoin(LineJoin lineJoin
);
1077 Status
SetWidthScale(IN REAL widthScale
);
1082 #endif /* _GDIPLUSHEADERS_H */