gdiplus: Added GdipGetMetafileHeaderFromMetafile stub.
This commit is contained in:
parent
44412cf1e4
commit
e91d12454a
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "wingdi.h"
|
||||||
|
|
||||||
#include "gdiplus.h"
|
#include "gdiplus.h"
|
||||||
#include "gdiplus_private.h"
|
#include "gdiplus_private.h"
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
#include "wingdi.h"
|
||||||
|
|
||||||
#include "gdiplus.h"
|
#include "gdiplus.h"
|
||||||
#include "gdiplus_private.h"
|
#include "gdiplus_private.h"
|
||||||
|
|
||||||
|
|
|
@ -317,7 +317,7 @@
|
||||||
@ stub GdipGetMetafileDownLevelRasterizationLimit
|
@ stub GdipGetMetafileDownLevelRasterizationLimit
|
||||||
@ stub GdipGetMetafileHeaderFromEmf
|
@ stub GdipGetMetafileHeaderFromEmf
|
||||||
@ stub GdipGetMetafileHeaderFromFile
|
@ stub GdipGetMetafileHeaderFromFile
|
||||||
@ stub GdipGetMetafileHeaderFromMetafile
|
@ stdcall GdipGetMetafileHeaderFromMetafile(ptr ptr)
|
||||||
@ stub GdipGetMetafileHeaderFromStream
|
@ stub GdipGetMetafileHeaderFromStream
|
||||||
@ stub GdipGetMetafileHeaderFromWmf
|
@ stub GdipGetMetafileHeaderFromWmf
|
||||||
@ stub GdipGetNearestColor
|
@ stub GdipGetNearestColor
|
||||||
|
|
|
@ -134,6 +134,20 @@ GpStatus WINGDIPAPI GdipGetImageWidth(GpImage *image, UINT *width)
|
||||||
return NotImplemented;
|
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,
|
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage *image,
|
||||||
GDIPCONST GUID* dimensionID, UINT* count)
|
GDIPCONST GUID* dimensionID, UINT* count)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "wingdi.h"
|
||||||
|
|
||||||
#include "gdiplus.h"
|
#include "gdiplus.h"
|
||||||
#include "gdiplus_private.h"
|
#include "gdiplus_private.h"
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "wingdi.h"
|
||||||
|
|
||||||
#include "gdiplus.h"
|
#include "gdiplus.h"
|
||||||
#include "gdiplus_private.h"
|
#include "gdiplus_private.h"
|
||||||
|
|
|
@ -173,6 +173,16 @@ enum WrapMode
|
||||||
WrapModeClamp
|
WrapModeClamp
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum MetafileType
|
||||||
|
{
|
||||||
|
MetafileTypeInvalid,
|
||||||
|
MetafileTypeWmf,
|
||||||
|
MetafileTypeWmfPlaceable,
|
||||||
|
MetafileTypeEmf,
|
||||||
|
MetafileTypeEmfPlusOnly,
|
||||||
|
MetafileTypeEmfPlusDual
|
||||||
|
};
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
|
|
||||||
typedef enum Unit Unit;
|
typedef enum Unit Unit;
|
||||||
|
@ -191,6 +201,7 @@ typedef enum DashStyle DashStyle;
|
||||||
typedef enum MatrixOrder MatrixOrder;
|
typedef enum MatrixOrder MatrixOrder;
|
||||||
typedef enum ImageType ImageType;
|
typedef enum ImageType ImageType;
|
||||||
typedef enum WrapMode WrapMode;
|
typedef enum WrapMode WrapMode;
|
||||||
|
typedef enum MetafileType MetafileType;
|
||||||
|
|
||||||
#endif /* end of c typedefs */
|
#endif /* end of c typedefs */
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,7 @@ GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*);
|
||||||
GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
|
GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*);
|
||||||
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
|
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*);
|
||||||
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
|
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*);
|
||||||
|
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*);
|
||||||
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
|
GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*);
|
||||||
|
|
||||||
GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**);
|
GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**);
|
||||||
|
|
|
@ -19,6 +19,25 @@
|
||||||
#ifndef _GDIPLUSMETAHEADER_H
|
#ifndef _GDIPLUSMETAHEADER_H
|
||||||
#define _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>
|
#include <pshpack2.h>
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -41,4 +60,108 @@ typedef struct
|
||||||
|
|
||||||
#include <poppack.h>
|
#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 */
|
#endif /* _GDIPLUSMETAHEADER_H */
|
||||||
|
|
Loading…
Reference in New Issue