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
)
31 Image(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
40 static Image
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
45 static Image
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
)
50 Status
GetAllPropertyItems(UINT totalBufferSize
, UINT numProperties
, PropertyItem
*allItems
)
52 return NotImplemented
;
55 Status
GetBounds(RectF
*srcRect
, Unit
*srcUnit
)
57 return NotImplemented
;
60 Status
GetEncoderParameterList(const CLSID
*clsidEncoder
, UINT size
, EncoderParameters
*buffer
)
62 return NotImplemented
;
65 UINT
GetEncoderParameterListSize(const CLSID
*clsidEncoder
)
75 UINT
GetFrameCount(const GUID
*dimensionID
)
80 UINT
GetFrameDimensionsCount(VOID
)
85 Status
GetFrameDimensionsList(GUID
*dimensionIDs
, UINT count
)
87 return NotImplemented
;
95 REAL
GetHorizontalResolution(VOID
)
100 Status
GetLastStatus(VOID
)
102 return NotImplemented
;
105 Status
GetPalette(ColorPalette
*palette
, INT size
)
107 return NotImplemented
;
110 INT
GetPaletteSize(VOID
)
115 Status
GetPhysicalDimension(SizeF
*size
)
117 return NotImplemented
;
120 PixelFormat
GetPixelFormat(VOID
)
122 return PixelFormatUndefined
;
125 UINT
GetPropertyCount(VOID
)
130 Status
GetPropertyIdList(UINT numOfProperty
, PROPID
*list
)
132 return NotImplemented
;
135 Status
GetPropertyItem(PROPID propId
, UINT propSize
, PropertyItem
*buffer
)
137 return NotImplemented
;
140 UINT
GetPropertyItemSize(PROPID propId
)
145 Status
GetPropertySize(UINT
*totalBufferSize
, UINT
*numProperties
)
147 return NotImplemented
;
150 Status
GetRawFormat(GUID
*format
)
152 return NotImplemented
;
155 Image
*GetThumbnailImage(UINT thumbWidth
, UINT thumbHeight
, GetThumbnailImageAbort callback
, VOID
*callbackData
)
160 ImageType
GetType(VOID
)
162 return ImageTypeUnknown
;
165 REAL
GetVerticalResolution(VOID
)
175 Status
RemovePropertyItem(PROPID propId
)
177 return NotImplemented
;
180 Status
RotateFlip(RotateFlipType rotateFlipType
)
182 return NotImplemented
;
185 Status
Save(IStream
*stream
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
187 return NotImplemented
;
190 Status
Save(const WCHAR
*filename
, const CLSID
*clsidEncoder
, const EncoderParameters
*encoderParams
)
192 return NotImplemented
;
195 Status
SaveAdd(const EncoderParameters
* encoderParams
)
197 return NotImplemented
;
200 Status
SaveAdd(Image
*newImage
, const EncoderParameters
*encoderParams
)
202 return NotImplemented
;
205 Status
SelectActiveFrame(const GUID
*dimensionID
, UINT frameIndex
)
207 return NotImplemented
;
210 Status
SetPalette(const ColorPalette
* palette
)
212 return NotImplemented
;
215 Status
SetPropertyItem(const PropertyItem
* item
)
217 return NotImplemented
;
227 class Bitmap
: public Image
230 Bitmap(IDirectDrawSurface7
*surface
)
234 Bitmap(INT width
, INT height
, Graphics
*target
)
238 Bitmap(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
242 Bitmap(INT width
, INT height
, PixelFormat format
)
246 Bitmap(HBITMAP hbm
, HPALETTE hpal
)
250 Bitmap(INT width
, INT height
, INT stride
, PixelFormat format
, BYTE
*scan0
)
254 Bitmap(const WCHAR
*filename
, BOOL useIcm
)
258 Bitmap(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
266 Bitmap(IStream
*stream
, BOOL useIcm
)
270 Bitmap
*Clone(const Rect
&rect
, PixelFormat format
)
275 Bitmap
*Clone(const RectF
&rect
, PixelFormat format
)
280 Bitmap
*Clone(REAL x
, REAL y
, REAL width
, REAL height
, PixelFormat format
)
285 Bitmap
*Clone(INT x
, INT y
, INT width
, INT height
, PixelFormat format
)
290 static Bitmap
*FromBITMAPINFO(const BITMAPINFO
*gdiBitmapInfo
, VOID
*gdiBitmapData
)
295 static Bitmap
*FromDirectDrawSurface7(IDirectDrawSurface7
*surface
)
300 static Bitmap
*FromFile(const WCHAR
*filename
, BOOL useEmbeddedColorManagement
)
305 static Bitmap
*FromHBITMAP(HBITMAP hbm
, HPALETTE hpal
)
310 static Bitmap
*FromHICON(HICON hicon
)
315 static Bitmap
*FromResource(HINSTANCE hInstance
, const WCHAR
*bitmapName
)
320 static Bitmap
*FromStream(IStream
*stream
, BOOL useEmbeddedColorManagement
)
325 Status
GetHBITMAP(const Color
&colorBackground
, HBITMAP
*hbmReturn
)
327 return NotImplemented
;
330 Status
GetHICON(HICON
*hicon
)
332 return NotImplemented
;
335 Status
GetPixel(INT x
, INT y
, Color
*color
)
337 return NotImplemented
;
340 Status
LockBits(const Rect
*rect
, UINT flags
, PixelFormat format
, BitmapData
*lockedBitmapData
)
342 return NotImplemented
;
345 Status
SetPixel(INT x
, INT y
, const Color
&color
)
347 return NotImplemented
;
350 Status
SetResolution(REAL xdpi
, REAL ydpi
)
352 return NotImplemented
;
355 Status
UnlockBits(BitmapData
*lockedBitmapData
)
357 return NotImplemented
;
362 class CachedBitmap
: public GdiplusBase
365 CachedBitmap(Bitmap
*bitmap
, Graphics
*graphics
)
369 Status
GetLastStatus(VOID
)
371 return NotImplemented
;
376 class Font
: public GdiplusBase
379 friend class FontFamily
;
380 friend class FontCollection
;
382 Font(const FontFamily
*family
, REAL emSize
, INT style
, Unit unit
)
386 Font(HDC hdc
, const HFONT hfont
)
390 Font(HDC hdc
, const LOGFONTA
*logfont
)
394 Font(HDC hdc
, const LOGFONTW
*logfont
)
398 Font(const WCHAR
*familyName
, REAL emSize
, INT style
, Unit unit
, const FontCollection
*fontCollection
)
406 Font
*Clone(VOID
) const
411 Status
GetFamily(FontFamily
* family
) const
413 return NotImplemented
;
416 REAL
GetHeight(const Graphics
* graphics
) const
421 REAL
GetHeight(REAL dpi
) const
426 Status
GetLastStatus(VOID
) const
428 return NotImplemented
;
431 Status
GetLogFontA(const Graphics
*g
, LOGFONTA
*logfontA
) const
433 return NotImplemented
;
436 Status
GetLogFontW(const Graphics
*g
, LOGFONTW
*logfontW
) const
438 return NotImplemented
;
441 REAL
GetSize(VOID
) const
446 INT
GetStyle(VOID
) const
451 Unit
GetUnit(VOID
) const
456 BOOL
IsAvailable(VOID
) const
463 class FontCollection
: public GdiplusBase
470 Status
GetFamilies(INT numSought
, FontFamily
*gpfamilies
, INT
*numFound
) const
472 return NotImplemented
;
475 INT
GetFamilyCount(VOID
) const
480 Status
GetLastStatus(VOID
)
482 return NotImplemented
;
487 class FontFamily
: public GdiplusBase
494 FontFamily(const WCHAR
*name
, const FontCollection
*fontCollection
)
498 FontFamily
*Clone(VOID
)
503 static const FontFamily
*GenericMonospace(VOID
)
508 static const FontFamily
*GenericSansSerif(VOID
)
513 static const FontFamily
*GenericSerif(VOID
)
518 UINT16
GetCellAscent(INT style
) const
523 UINT16
GetCellDescent(INT style
) const
528 UINT16
GetEmHeight(INT style
)
533 Status
GetFamilyName(WCHAR name
[LF_FACESIZE
], WCHAR language
) const
535 return NotImplemented
;
538 Status
GetLastStatus(VOID
) const
540 return NotImplemented
;
543 UINT16
GetLineSpacing(INT style
) const
548 BOOL
IsAvailable(VOID
) const
553 BOOL
IsStyleAvailable(INT style
) const
560 class InstalledFontFamily
: public FontFamily
563 InstalledFontFamily(VOID
)
569 class PrivateFontCollection
: public FontCollection
572 PrivateFontCollection(VOID
)
576 Status
AddFontFile(const WCHAR
* filename
)
578 return NotImplemented
;
581 Status
AddMemoryFont(const VOID
*memory
, INT length
)
583 return NotImplemented
;
588 class Region
: public GdiplusBase
591 friend class GraphicsPath
;
594 Region(const Rect
&rect
)
602 Region(const BYTE
*regionData
, INT size
)
606 Region(const GraphicsPath
*path
)
614 Region(const RectF
&rect
)
623 Status
Complement(const GraphicsPath
*path
)
625 return NotImplemented
;
628 Status
Complement(const Region
*region
)
630 return NotImplemented
;
633 Status
Complement(const Rect
&rect
)
635 return NotImplemented
;
638 Status
Complement(const RectF
&rect
)
640 return NotImplemented
;
643 BOOL
Equals(const Region
*region
, const Graphics
*g
) const
648 Status
Exclude(const GraphicsPath
*path
)
650 return NotImplemented
;
653 Status
Exclude(const RectF
&rect
)
655 return NotImplemented
;
658 Status
Exclude(const Rect
&rect
)
660 return NotImplemented
;
663 Status
Exclude(const Region
*region
)
665 return NotImplemented
;
668 static Region
*FromHRGN(HRGN hRgn
)
673 Status
GetBounds(Rect
*rect
, const Graphics
*g
) const
675 return NotImplemented
;
678 Status
GetBounds(RectF
*rect
, const Graphics
*g
) const
680 return NotImplemented
;
683 Status
GetData(BYTE
*buffer
, UINT bufferSize
, UINT
*sizeFilled
) const
685 return NotImplemented
;
688 UINT
GetDataSize(VOID
) const
693 HRGN
GetHRGN(const Graphics
*g
) const
698 Status
GetLastStatus(VOID
)
700 return NotImplemented
;
703 Status
GetRegionScans(const Matrix
*matrix
, Rect
*rects
, INT
*count
) const
705 return NotImplemented
;
708 Status
GetRegionScans(const Matrix
*matrix
, RectF
*rects
, INT
*count
) const
710 return NotImplemented
;
713 UINT
GetRegionScansCount(const Matrix
*matrix
) const
718 Status
Intersect(const Rect
&rect
)
720 return NotImplemented
;
723 Status
Intersect(const GraphicsPath
*path
)
725 return NotImplemented
;
728 Status
Intersect(const RectF
&rect
)
730 return NotImplemented
;
733 Status
Intersect(const Region
*region
)
735 return NotImplemented
;
738 BOOL
IsEmpty(const Graphics
*g
) const
740 return NotImplemented
;
743 BOOL
IsInfinite(const Graphics
*g
) const
748 BOOL
IsVisible(const PointF
&point
, const Graphics
*g
) const
753 BOOL
IsVisible(const RectF
&rect
, const Graphics
*g
) const
758 BOOL
IsVisible(const Rect
&rect
, const Graphics
*g
) const
763 BOOL
IsVisible(INT x
, INT y
, const Graphics
*g
) const
768 BOOL
IsVisible(REAL x
, REAL y
, const Graphics
*g
) const
773 BOOL
IsVisible(INT x
, INT y
, INT width
, INT height
, const Graphics
*g
) const
778 BOOL
IsVisible(const Point
&point
, const Graphics
*g
) const
783 BOOL
IsVisible(REAL x
, REAL y
, REAL width
, REAL height
, const Graphics
*g
) const
788 Status
MakeEmpty(VOID
)
790 return NotImplemented
;
793 Status
MakeInfinite(VOID
)
795 return NotImplemented
;
798 Status
Transform(const Matrix
*matrix
)
800 return NotImplemented
;
803 Status
Translate(REAL dx
, REAL dy
)
805 return NotImplemented
;
808 Status
Translate(INT dx
, INT dy
)
810 return NotImplemented
;
813 Status
Union(const Rect
&rect
)
815 return NotImplemented
;
818 Status
Union(const Region
*region
)
820 return NotImplemented
;
823 Status
Union(const RectF
&rect
)
825 return NotImplemented
;
828 Status
Union(const GraphicsPath
*path
)
830 return NotImplemented
;
833 Status
Xor(const GraphicsPath
*path
)
835 return NotImplemented
;
838 Status
Xor(const RectF
&rect
)
840 return NotImplemented
;
843 Status
Xor(const Rect
&rect
)
845 return NotImplemented
;
848 Status
Xor(const Region
*region
)
850 return NotImplemented
;
855 class CustomLineCap
: public GdiplusBase
858 CustomLineCap(const GraphicsPath
*fillPath
, const GraphicsPath
*strokePath
, LineCap baseCap
, REAL baseInset
);
859 CustomLineCap
*Clone(VOID
);
860 LineCap
GetBaseCap(VOID
);
861 REAL
GetBaseInset(VOID
);
862 Status
GetLastStatus(VOID
);
863 Status
GetStrokeCaps(LineCap
*startCap
, LineCap
*endCap
);
864 LineJoin
GetStrokeJoin(VOID
);
865 REAL
GetWidthScale(VOID
);
866 Status
SetBaseCap(LineCap baseCap
);
867 Status
SetBaseInset(REAL inset
);
868 Status
SetStrokeCap(LineCap strokeCap
);
869 Status
SetStrokeCaps(LineCap startCap
, LineCap endCap
);
870 Status
SetStrokeJoin(LineJoin lineJoin
);
871 Status
SetWidthScale(IN REAL widthScale
);
876 #endif /* _GDIPLUSHEADERS_H */