gdiplus: Added GdipGetMetafileHeaderFromMetafile stub.
This commit is contained in:
parent
44412cf1e4
commit
e91d12454a
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
|
||||
#include "gdiplus.h"
|
||||
#include "gdiplus_private.h"
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#include "winbase.h"
|
||||
#include "winerror.h"
|
||||
#include "wine/debug.h"
|
||||
#include "wingdi.h"
|
||||
|
||||
#include "gdiplus.h"
|
||||
#include "gdiplus_private.h"
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@
|
|||
@ stub GdipGetMetafileDownLevelRasterizationLimit
|
||||
@ stub GdipGetMetafileHeaderFromEmf
|
||||
@ stub GdipGetMetafileHeaderFromFile
|
||||
@ stub GdipGetMetafileHeaderFromMetafile
|
||||
@ stdcall GdipGetMetafileHeaderFromMetafile(ptr ptr)
|
||||
@ stub GdipGetMetafileHeaderFromStream
|
||||
@ stub GdipGetMetafileHeaderFromWmf
|
||||
@ stub GdipGetNearestColor
|
||||
|
|
|
@ -134,6 +134,20 @@ GpStatus WINGDIPAPI GdipGetImageWidth(GpImage *image, UINT *width)
|
|||
return NotImplemented;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
|
||||
MetafileHeader * header)
|
||||
{
|
||||
static int calls;
|
||||
|
||||
if(!metafile || !header)
|
||||
return InvalidParameter;
|
||||
|
||||
if(!(calls++))
|
||||
FIXME("not implemented\n");
|
||||
|
||||
return NotImplemented;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage *image,
|
||||
GDIPCONST GUID* dimensionID, UINT* count)
|
||||
{
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "wingdi.h"
|
||||
|
||||
#include "gdiplus.h"
|
||||
#include "gdiplus_private.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
|
||||
#include "gdiplus.h"
|
||||
#include "gdiplus_private.h"
|
||||
|
|
|
@ -173,6 +173,16 @@ enum WrapMode
|
|||
WrapModeClamp
|
||||
};
|
||||
|
||||
enum MetafileType
|
||||
{
|
||||
MetafileTypeInvalid,
|
||||
MetafileTypeWmf,
|
||||
MetafileTypeWmfPlaceable,
|
||||
MetafileTypeEmf,
|
||||
MetafileTypeEmfPlusOnly,
|
||||
MetafileTypeEmfPlusDual
|
||||
};
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
typedef enum Unit Unit;
|
||||
|
@ -191,6 +201,7 @@ typedef enum DashStyle DashStyle;
|
|||
typedef enum MatrixOrder MatrixOrder;
|
||||
typedef enum ImageType ImageType;
|
||||
typedef enum WrapMode WrapMode;
|
||||
typedef enum MetafileType MetafileType;
|
||||
|
||||
#endif /* end of c typedefs */
|
||||
|
||||
|
|
|
@ -142,6 +142,7 @@ GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*);
|
|||
GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
|
||||
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
|
||||
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
|
||||
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*);
|
||||
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
|
||||
|
||||
GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**);
|
||||
|
|
|
@ -19,6 +19,25 @@
|
|||
#ifndef _GDIPLUSMETAHEADER_H
|
||||
#define _GDIPLUSMETAHEADER_H
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD iType;
|
||||
DWORD nSize;
|
||||
RECTL rclBounds;
|
||||
RECTL rclFrame;
|
||||
DWORD dSignature;
|
||||
DWORD nVersion;
|
||||
DWORD nBytes;
|
||||
DWORD nRecords;
|
||||
WORD nHandles;
|
||||
WORD sReserved;
|
||||
DWORD nDescription;
|
||||
DWORD offDescription;
|
||||
DWORD nPalEntries;
|
||||
SIZEL szlDevice;
|
||||
SIZEL szlMillimeters;
|
||||
} ENHMETAHEADER3;
|
||||
|
||||
#include <pshpack2.h>
|
||||
|
||||
typedef struct
|
||||
|
@ -41,4 +60,108 @@ typedef struct
|
|||
|
||||
#include <poppack.h>
|
||||
|
||||
#define GDIP_EMFPLUSFLAGS_DISPLAY 0x00000001
|
||||
|
||||
#ifdef __cplusplus
|
||||
class MetafileHeader
|
||||
{
|
||||
public:
|
||||
MetafileType Type;
|
||||
UINT Size;
|
||||
UINT Version;
|
||||
UINT EmfPlusFlags;
|
||||
REAL DpiX;
|
||||
REAL DpiY;
|
||||
INT X;
|
||||
INT Y;
|
||||
INT Width;
|
||||
INT Height;
|
||||
union
|
||||
{
|
||||
METAHEADER WmfHeader;
|
||||
ENHMETAHEADER3 EmfHeader;
|
||||
};
|
||||
INT EmfPlusHeaderSize;
|
||||
INT LogicalDpiX;
|
||||
INT LogicalDpiY;
|
||||
|
||||
public:
|
||||
MetafileType GetType() const { return Type; }
|
||||
|
||||
UINT GetMetafileSize() const { return Size; }
|
||||
|
||||
UINT GetVersion() const { return Version; }
|
||||
|
||||
UINT GetEmfPlusFlags() const { return EmfPlusFlags; }
|
||||
|
||||
REAL GetDpiX() const { return DpiX; }
|
||||
|
||||
REAL GetDpiY() const { return DpiY; }
|
||||
|
||||
VOID GetBounds (OUT Rect *r) const
|
||||
{
|
||||
r->X = X;
|
||||
r->Y = Y;
|
||||
r->Width = Width;
|
||||
r->Height = Height;
|
||||
}
|
||||
|
||||
BOOL IsWmf() const
|
||||
{
|
||||
return ((Type == MetafileTypeWmf) || (Type == MetafileTypeWmfPlaceable));
|
||||
}
|
||||
|
||||
BOOL IsWmfPlaceable() const { return (Type == MetafileTypeWmfPlaceable); }
|
||||
|
||||
BOOL IsEmf() const { return (Type == MetafileTypeEmf); }
|
||||
|
||||
BOOL IsEmfOrEmfPlus() const { return (Type >= MetafileTypeEmf); }
|
||||
|
||||
BOOL IsEmfPlus() const { return (Type >= MetafileTypeEmfPlusOnly); }
|
||||
|
||||
BOOL IsEmfPlusDual() const { return (Type == MetafileTypeEmfPlusDual); }
|
||||
|
||||
BOOL IsEmfPlusOnly() const { return (Type == MetafileTypeEmfPlusOnly); }
|
||||
|
||||
BOOL IsDisplay() const
|
||||
{
|
||||
return IsEmfPlus() && ((EmfPlusFlags & GDIP_EMFPLUSFLAGS_DISPLAY) != 0);
|
||||
}
|
||||
|
||||
const METAHEADER * GetWmfHeader() const
|
||||
{
|
||||
return IsWmf() ? &WmfHeader : NULL;
|
||||
}
|
||||
|
||||
const ENHMETAHEADER3 * GetEmfHeader() const
|
||||
{
|
||||
return IsEmfOrEmfPlus() ? &EmfHeader : NULL;
|
||||
}
|
||||
};
|
||||
#else /* end of c++ typedefs */
|
||||
|
||||
typedef struct MetafileHeader
|
||||
{
|
||||
MetafileType Type;
|
||||
UINT Size;
|
||||
UINT Version;
|
||||
UINT EmfPlusFlags;
|
||||
REAL DpiX;
|
||||
REAL DpiY;
|
||||
INT X;
|
||||
INT Y;
|
||||
INT Width;
|
||||
INT Height;
|
||||
union
|
||||
{
|
||||
METAHEADER WmfHeader;
|
||||
ENHMETAHEADER3 EmfHeader;
|
||||
} DUMMYUNIONNAME;
|
||||
INT EmfPlusHeaderSize;
|
||||
INT LogicalDpiX;
|
||||
INT LogicalDpiY;
|
||||
} MetafileHeader;
|
||||
|
||||
#endif /* end of c typedefs */
|
||||
|
||||
#endif /* _GDIPLUSMETAHEADER_H */
|
||||
|
|
Loading…
Reference in New Issue