mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
parent
f48a01324c
commit
91f3c8f81a
1 changed files with 114 additions and 37 deletions
|
@ -22,148 +22,225 @@
|
|||
class Metafile : public Image
|
||||
{
|
||||
public:
|
||||
Metafile(HDC referenceHdc, EmfType type, const WCHAR *description)
|
||||
Metafile(HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual, const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus =
|
||||
DllExports::GdipRecordMetafile(referenceHdc, type, NULL, MetafileFrameUnitGdi, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(const WCHAR *filename)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipCreateMetafileFromFile(filename, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(
|
||||
HDC referenceHdc,
|
||||
const RectF &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafile(referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(HMETAFILE hWmf, const WmfPlaceableFileHeader *wmfPlaceableFileHeader, BOOL deleteWmf)
|
||||
Metafile(HMETAFILE hWmf, const WmfPlaceableFileHeader *wmfPlaceableFileHeader, BOOL deleteWmf = FALSE)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipCreateMetafileFromWmf(hWmf, deleteWmf, wmfPlaceableFileHeader, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(
|
||||
const WCHAR *fileName,
|
||||
HDC referenceHdc,
|
||||
const Rect &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileFileNameI(
|
||||
fileName, referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(
|
||||
IStream *stream,
|
||||
HDC referenceHdc,
|
||||
const RectF &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafile(referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(IStream *stream, HDC referenceHdc, EmfType type, const WCHAR *description)
|
||||
Metafile(IStream *stream, HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual, const WCHAR *description = NULL)
|
||||
{
|
||||
#if 1
|
||||
// FIXME
|
||||
SetNativeImage(NULL);
|
||||
#else
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileStream(
|
||||
stream, referenceHdc, type, NULL, MetafileFrameUnitGdi, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
#endif
|
||||
}
|
||||
|
||||
Metafile(
|
||||
IStream *stream,
|
||||
HDC referenceHdc,
|
||||
const Rect &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileI(referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(
|
||||
const WCHAR *fileName,
|
||||
HDC referenceHdc,
|
||||
const RectF &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileFileName(
|
||||
fileName, referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(const WCHAR *fileName, HDC referenceHdc, EmfType type, const WCHAR *description)
|
||||
Metafile(
|
||||
const WCHAR *fileName,
|
||||
HDC referenceHdc,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileFileName(
|
||||
fileName, referenceHdc, type, NULL, MetafileFrameUnitGdi, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(IStream *stream)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipCreateMetafileFromStream(stream, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(HENHMETAFILE hEmf, BOOL deleteEmf)
|
||||
Metafile(HENHMETAFILE hEmf, BOOL deleteEmf = FALSE)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipCreateMetafileFromEmf(hEmf, deleteEmf, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
Metafile(
|
||||
HDC referenceHdc,
|
||||
const Rect &frameRect,
|
||||
MetafileFrameUnit frameUnit,
|
||||
EmfType type,
|
||||
const WCHAR *description)
|
||||
MetafileFrameUnit frameUnit = MetafileFrameUnitGdi,
|
||||
EmfType type = EmfTypeEmfPlusDual,
|
||||
const WCHAR *description = NULL)
|
||||
{
|
||||
GpMetafile *metafile = NULL;
|
||||
lastStatus = DllExports::GdipRecordMetafileI(referenceHdc, type, &frameRect, frameUnit, description, &metafile);
|
||||
SetNativeImage(metafile);
|
||||
}
|
||||
|
||||
static UINT
|
||||
EmfToWmfBits(HENHMETAFILE hemf, UINT cbData16, LPBYTE pData16, INT iMapMode, EmfToWmfBitsFlags eFlags)
|
||||
EmfToWmfBits(
|
||||
HENHMETAFILE hemf,
|
||||
UINT cbData16,
|
||||
LPBYTE pData16,
|
||||
INT iMapMode = MM_ANISOTROPIC,
|
||||
EmfToWmfBitsFlags eFlags = EmfToWmfBitsFlagsDefault)
|
||||
{
|
||||
return 0;
|
||||
return DllExports::GdipEmfToWmfBits(hemf, cbData16, pData16, iMapMode, eFlags);
|
||||
}
|
||||
|
||||
UINT GetDownLevelRasterizationLimit(VOID)
|
||||
UINT
|
||||
GetDownLevelRasterizationLimit() const
|
||||
{
|
||||
return 0;
|
||||
#if 1
|
||||
return 0; // FIXME
|
||||
#else
|
||||
UINT metafileRasterizationLimitDpi = 0;
|
||||
SetStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit(
|
||||
GetNativeMetafile(), &metafileRasterizationLimitDpi));
|
||||
return metafileRasterizationLimitDpi;
|
||||
#endif
|
||||
}
|
||||
|
||||
HENHMETAFILE GetHENHMETAFILE(VOID)
|
||||
HENHMETAFILE
|
||||
GetHENHMETAFILE() const
|
||||
{
|
||||
return NULL;
|
||||
HENHMETAFILE hEmf;
|
||||
SetStatus(DllExports::GdipGetHemfFromMetafile(GetNativeMetafile(), &hEmf));
|
||||
return hEmf;
|
||||
}
|
||||
|
||||
static Status
|
||||
GetMetafileHeader(const WCHAR *filename, MetafileHeader *header)
|
||||
{
|
||||
return NotImplemented;
|
||||
return DllExports::GdipGetMetafileHeaderFromFile(filename, header);
|
||||
}
|
||||
|
||||
static Status
|
||||
GetMetafileHeader(HENHMETAFILE *hEmf, MetafileHeader *header)
|
||||
GetMetafileHeader(HENHMETAFILE hEmf, MetafileHeader *header)
|
||||
{
|
||||
return NotImplemented;
|
||||
return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header);
|
||||
}
|
||||
|
||||
static Status
|
||||
GetMetafileHeader(HMETAFILE hWmf, const WmfPlaceableFileHeader *wmfPlaceableFileHeader, MetafileHeader *header)
|
||||
{
|
||||
return NotImplemented;
|
||||
return DllExports::GdipGetMetafileHeaderFromWmf(hWmf, wmfPlaceableFileHeader, header);
|
||||
}
|
||||
|
||||
Status
|
||||
GetMetafileHeader(MetafileHeader *header) const
|
||||
{
|
||||
return NotImplemented;
|
||||
return SetStatus(DllExports::GdipGetMetafileHeaderFromMetafile(GetNativeMetafile(), header));
|
||||
}
|
||||
|
||||
static Status
|
||||
GetMetafileHeader(IStream *stream, MetafileHeader *header)
|
||||
{
|
||||
return NotImplemented;
|
||||
return DllExports::GdipGetMetafileHeaderFromStream(stream, header);
|
||||
}
|
||||
|
||||
Status
|
||||
PlayRecord(EmfPlusRecordType recordType, UINT flags, UINT dataSize, const BYTE *data)
|
||||
{
|
||||
return NotImplemented;
|
||||
return SetStatus(DllExports::GdipPlayMetafileRecord(GetNativeMetafile(), recordType, flags, dataSize, data));
|
||||
}
|
||||
|
||||
Status
|
||||
SetDownLevelRasterizationLimit(UINT metafileRasterizationLimitDpi)
|
||||
{
|
||||
return NotImplemented;
|
||||
return SetStatus(
|
||||
DllExports::GdipSetMetafileDownLevelRasterizationLimit(GetNativeMetafile(), metafileRasterizationLimitDpi));
|
||||
}
|
||||
|
||||
protected:
|
||||
GpMetafile *
|
||||
GetNativeMetafile() const
|
||||
{
|
||||
return static_cast<GpMetafile *>(nativeImage);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue