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
23 #pragma GCC system_header
26 class Image
: public GdiplusBase
29 friend class Graphics
;
31 Image(IStream
*stream
, BOOL useEmbeddedColorManagement
)
35 Image(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
44 static Image
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
49 static Image
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
)
54 Status
GetAllPropertyItems(UINT totalBufferSize
, UINT numProperties
, PropertyItem
*allItems
)
56 return NotImplemented
;
59 Status
GetBounds(RectF
*srcRect
, Unit
*srcUnit
)
61 return NotImplemented
;
64 Status
GetEncoderParameterList(const CLSID
*clsidEncoder
, UINT size
, EncoderParameters
*buffer
)
66 return NotImplemented
;
69 UINT
GetEncoderParameterListSize(const CLSID
*clsidEncoder
)
79 UINT
GetFrameCount(const GUID
*dimensionID
)
84 UINT
GetFrameDimensionsCount(VOID
)
89 Status
GetFrameDimensionsList(GUID
*dimensionIDs
, UINT count
)
91 return NotImplemented
;
99 REAL
GetHorizontalResolution(VOID
)
104 Status
GetLastStatus(VOID
)
106 return NotImplemented
;
109 Status
GetPalette(ColorPalette
*palette
, INT size
)
111 return NotImplemented
;
114 INT
GetPaletteSize(VOID
)
119 Status
GetPhysicalDimension(SizeF
*size
)
121 return NotImplemented
;
124 PixelFormat
GetPixelFormat(VOID
)
126 return PixelFormatUndefined
;
129 UINT
GetPropertyCount(VOID
)
134 Status
GetPropertyIdList(UINT numOfProperty
, PROPID
*list
)
136 return NotImplemented
;
139 Status
GetPropertyItem(PROPID propId
, UINT propSize
, PropertyItem
*buffer
)
141 return NotImplemented
;
144 UINT
GetPropertyItemSize(PROPID propId
)
149 Status
GetPropertySize(UINT
*totalBufferSize
, UINT
*numProperties
)
151 return NotImplemented
;
154 Status
GetRawFormat(GUID
*format
)
156 return NotImplemented
;
159 Image
*GetThumbnailImage(UINT thumbWidth
, UINT thumbHeight
, GetThumbnailImageAbort callback
, VOID
*callbackData
)
164 ImageType
GetType(VOID
)
166 return ImageTypeUnknown
;
169 REAL
GetVerticalResolution(VOID
)
179 Status
RemovePropertyItem(PROPID propId
)
181 return NotImplemented
;
184 Status
RotateFlip(RotateFlipType rotateFlipType
)
186 return NotImplemented
;
189 Status
Save(IStream
*stream
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
191 return NotImplemented
;
194 Status
Save(const WCHAR
*filename
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
196 return NotImplemented
;
199 Status
SaveAdd(const EncoderParameters
* encoderParams
)
201 return NotImplemented
;
204 Status
SaveAdd(Image
*newImage
, const EncoderParameters
*encoderParams
)
206 return NotImplemented
;
209 Status
SelectActiveFrame(const GUID
*dimensionID
, UINT frameIndex
)
211 return NotImplemented
;
214 Status
SetPalette(const ColorPalette
* palette
)
216 return NotImplemented
;
219 Status
SetPropertyItem(const PropertyItem
* item
)
221 return NotImplemented
;
231 class Bitmap
: public Image
234 Bitmap(IDirectDrawSurface7
*surface
)
238 Bitmap(INT width
, INT height
, Graphics
*target
)
242 Bitmap(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
246 Bitmap(INT width
, INT height
, PixelFormat format
)
250 Bitmap(HBITMAP hbm
, HPALETTE hpal
)
254 Bitmap(INT width
, INT height
, INT stride
, PixelFormat format
, BYTE
*scan0
)
258 Bitmap(const WCHAR
*filename
, BOOL useIcm
)
262 Bitmap(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
270 Bitmap(IStream
*stream
, BOOL useIcm
)
274 Bitmap
*Clone(const Rect
&rect
, PixelFormat format
)
279 Bitmap
*Clone(const RectF
&rect
, PixelFormat format
)
284 Bitmap
*Clone(REAL x
, REAL y
, REAL width
, REAL height
, PixelFormat format
)
289 Bitmap
*Clone(INT x
, INT y
, INT width
, INT height
, PixelFormat format
)
294 static Bitmap
*FromBITMAPINFO(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
299 static Bitmap
*FromDirectDrawSurface7(IDirectDrawSurface7
*surface
)
304 static Bitmap
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
309 static Bitmap
*FromHBITMAP(HBITMAP hbm
, HPALETTE hpal
)
314 static Bitmap
*FromHICON(HICON hicon
)
319 static Bitmap
*FromResource(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
324 static Bitmap
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
)
329 Status
GetHBITMAP(const Color
&colorBackground
, HBITMAP
*hbmReturn
)
331 return NotImplemented
;
334 Status
GetHICON(HICON
*hicon
)
336 return NotImplemented
;
339 Status
GetPixel(INT x
, INT y
, Color
*color
)
341 return NotImplemented
;
344 Status
LockBits(const Rect
*rect
, UINT flags
, PixelFormat format
, BitmapData
*lockedBitmapData
)
346 return NotImplemented
;
349 Status
SetPixel(INT x
, INT y
, const Color
&color
)
351 return NotImplemented
;
354 Status
SetResolution(REAL xdpi
, REAL ydpi
)
356 return NotImplemented
;
359 Status
UnlockBits(BitmapData
*lockedBitmapData
)
361 return NotImplemented
;
366 class CachedBitmap
: public GdiplusBase
369 CachedBitmap(Bitmap
*bitmap
, Graphics
*graphics
)
373 Status
GetLastStatus(VOID
)
375 return NotImplemented
;
380 class Font
: public GdiplusBase
383 friend class FontFamily
;
384 friend class FontCollection
;
386 Font(const FontFamily
*family
, REAL emSize
, INT style
, Unit unit
)
390 Font(HDC hdc
, const HFONT hfont
)
394 Font(HDC hdc
, const LOGFONTA
*logfont
)
398 Font(HDC hdc
, const LOGFONTW
*logfont
)
402 Font(const WCHAR
*familyName
, REAL emSize
, INT style
, Unit unit
, const FontCollection
*fontCollection
)
410 Font
*Clone(VOID
) const
415 Status
GetFamily(FontFamily
* family
) const
417 return NotImplemented
;
420 REAL
GetHeight(const Graphics
* graphics
) const
425 REAL
GetHeight(REAL dpi
) const
430 Status
GetLastStatus(VOID
) const
432 return NotImplemented
;
435 Status
GetLogFontA(const Graphics
*g
, LOGFONTA
*logfontA
) const
437 return NotImplemented
;
440 Status
GetLogFontW(const Graphics
*g
, LOGFONTW
*logfontW
) const
442 return NotImplemented
;
445 REAL
GetSize(VOID
) const
450 INT
GetStyle(VOID
) const
455 Unit
GetUnit(VOID
) const
460 BOOL
IsAvailable(VOID
) const
467 class FontCollection
: public GdiplusBase
474 Status
GetFamilies(INT numSought
, FontFamily
*gpfamilies
, INT
*numFound
) const
476 return NotImplemented
;
479 INT
GetFamilyCount(VOID
) const
484 Status
GetLastStatus(VOID
)
486 return NotImplemented
;
491 class FontFamily
: public GdiplusBase
498 FontFamily(const WCHAR
*name
, const FontCollection
*fontCollection
)
502 FontFamily
*Clone(VOID
)
507 static const FontFamily
*GenericMonospace(VOID
)
512 static const FontFamily
*GenericSansSerif(VOID
)
517 static const FontFamily
*GenericSerif(VOID
)
522 UINT16
GetCellAscent(INT style
) const
527 UINT16
GetCellDescent(INT style
) const
532 UINT16
GetEmHeight(INT style
)
537 Status
GetFamilyName(WCHAR name
[LF_FACESIZE
], WCHAR language
) const
539 return NotImplemented
;
542 Status
GetLastStatus(VOID
) const
544 return NotImplemented
;
547 UINT16
GetLineSpacing(INT style
) const
552 BOOL
IsAvailable(VOID
) const
557 BOOL
IsStyleAvailable(INT style
) const
564 class InstalledFontFamily
: public FontFamily
567 InstalledFontFamily(VOID
)
573 class PrivateFontCollection
: public FontCollection
576 PrivateFontCollection(VOID
)
580 Status
AddFontFile(const WCHAR
* filename
)
582 return NotImplemented
;
585 Status
AddMemoryFont(const VOID
*memory
, INT length
)
587 return NotImplemented
;
592 class Region
: public GdiplusBase
595 friend class GraphicsPath
;
598 Region(const Rect
&rect
)
606 Region(const BYTE
*regionData
, INT size
)
610 Region(const GraphicsPath
*path
)
618 Region(const RectF
&rect
)
627 Status
Complement(const GraphicsPath
*path
)
629 return NotImplemented
;
632 Status
Complement(const Region
*region
)
634 return NotImplemented
;
637 Status
Complement(const Rect
&rect
)
639 return NotImplemented
;
642 Status
Complement(const RectF
&rect
)
644 return NotImplemented
;
647 BOOL
Equals(const Region
*region
, const Graphics
*g
) const
652 Status
Exclude(const GraphicsPath
*path
)
654 return NotImplemented
;
657 Status
Exclude(const RectF
&rect
)
659 return NotImplemented
;
662 Status
Exclude(const Rect
&rect
)
664 return NotImplemented
;
667 Status
Exclude(const Region
*region
)
669 return NotImplemented
;
672 static Region
*FromHRGN(HRGN hRgn
)
677 Status
GetBounds(Rect
*rect
, const Graphics
*g
) const
679 return NotImplemented
;
682 Status
GetBounds(RectF
*rect
, const Graphics
*g
) const
684 return NotImplemented
;
687 Status
GetData(BYTE
*buffer
, UINT bufferSize
, UINT
*sizeFilled
) const
689 return NotImplemented
;
692 UINT
GetDataSize(VOID
) const
697 HRGN
GetHRGN(const Graphics
*g
) const
702 Status
GetLastStatus(VOID
)
704 return NotImplemented
;
707 Status
GetRegionScans(const Matrix
*matrix
, Rect
*rects
, INT
*count
) const
709 return NotImplemented
;
712 Status
GetRegionScans(const Matrix
*matrix
, RectF
*rects
, INT
*count
) const
714 return NotImplemented
;
717 UINT
GetRegionScansCount(const Matrix
*matrix
) const
722 Status
Intersect(const Rect
&rect
)
724 return NotImplemented
;
727 Status
Intersect(const GraphicsPath
*path
)
729 return NotImplemented
;
732 Status
Intersect(const RectF
&rect
)
734 return NotImplemented
;
737 Status
Intersect(const Region
*region
)
739 return NotImplemented
;
742 BOOL
IsEmpty(const Graphics
*g
) const
744 return NotImplemented
;
747 BOOL
IsInfinite(const Graphics
*g
) const
752 BOOL
IsVisible(const PointF
&point
, const Graphics
*g
) const
757 BOOL
IsVisible(const RectF
&rect
, const Graphics
*g
) const
762 BOOL
IsVisible(const Rect
&rect
, const Graphics
*g
) const
767 BOOL
IsVisible(INT x
, INT y
, const Graphics
*g
) const
772 BOOL
IsVisible(REAL x
, REAL y
, const Graphics
*g
) const
777 BOOL
IsVisible(INT x
, INT y
, INT width
, INT height
, const Graphics
*g
) const
782 BOOL
IsVisible(const Point
&point
, const Graphics
*g
) const
787 BOOL
IsVisible(REAL x
, REAL y
, REAL width
, REAL height
, const Graphics
*g
) const
792 Status
MakeEmpty(VOID
)
794 return NotImplemented
;
797 Status
MakeInfinite(VOID
)
799 return NotImplemented
;
802 Status
Transform(const Matrix
*matrix
)
804 return NotImplemented
;
807 Status
Translate(REAL dx
, REAL dy
)
809 return NotImplemented
;
812 Status
Translate(INT dx
, INT dy
)
814 return NotImplemented
;
817 Status
Union(const Rect
&rect
)
819 return NotImplemented
;
822 Status
Union(const Region
*region
)
824 return NotImplemented
;
827 Status
Union(const RectF
&rect
)
829 return NotImplemented
;
832 Status
Union(const GraphicsPath
*path
)
834 return NotImplemented
;
837 Status
Xor(const GraphicsPath
*path
)
839 return NotImplemented
;
842 Status
Xor(const RectF
&rect
)
844 return NotImplemented
;
847 Status
Xor(const Rect
&rect
)
849 return NotImplemented
;
852 Status
Xor(const Region
*region
)
854 return NotImplemented
;
859 class CustomLineCap
: public GdiplusBase
862 CustomLineCap(const GraphicsPath
*fillPath
, const GraphicsPath
*strokePath
, LineCap baseCap
, REAL baseInset
);
863 CustomLineCap
*Clone(VOID
);
864 LineCap
GetBaseCap(VOID
);
865 REAL
GetBaseInset(VOID
);
866 Status
GetLastStatus(VOID
);
867 Status
GetStrokeCaps(LineCap
*startCap
, LineCap
*endCap
);
868 LineJoin
GetStrokeJoin(VOID
);
869 REAL
GetWidthScale(VOID
);
870 Status
SetBaseCap(LineCap baseCap
);
871 Status
SetBaseInset(REAL inset
);
872 Status
SetStrokeCap(LineCap strokeCap
);
873 Status
SetStrokeCaps(LineCap startCap
, LineCap endCap
);
874 Status
SetStrokeJoin(LineJoin lineJoin
);
875 Status
SetWidthScale(IN REAL widthScale
);
880 #endif /* _GDIPLUSHEADERS_H */