;// return false;
if (dwIsAldus != ALDUSKEY) {
// A windows metafile, not a placeable wmf
seekpos = 0;
memset(&m_aldusMFHeader,0, sizeof(m_aldusMFHeader));
}
else {
// This is a placeable metafile
// Convert the placeable format into something that can
// be used with GDI metafile functions
file.seek(0);
if (file.read((char *)&m_aldusMFHeader, ALDUSMFHEADERSIZE) != ALDUSMFHEADERSIZE)
;// return false;
seekpos = ALDUSMFHEADERSIZE;
}
file.seek(seekpos);
if (file.read((char *)&mfHeader, sizeof(mfHeader)) != sizeof(mfHeader))
;// return false;
if ((mfHeader.mtType != 1) && (mfHeader.mtType != 2))
;// return false;
dwSize = mfHeader.mtSize * 2;
BYTE* lpMFBits = new BYTE [dwSize];
if (lpMFBits == NULL)
;// return false;
file.seek(seekpos);
if (file.read((char *)lpMFBits, dwSize) == dwSize)
{
struct WmfPlaceableFileHeader
{
UINT32 Key; // GDIP_WMF_PLACEABLEKEY
qint16 Hmf; // Metafile HANDLE number (always 0)
PWMFRect16 BoundingBox; // Coordinates in metafile units
qint16 Inch; // Number of metafile units per inch
UINT32 Reserved; // Reserved (always 0)
qint16 Checksum; // Checksum value for previous 10 WORDs
};