Metafile::EmfToWmfBits-Methode (gdiplusheaders.h)
Konvertiert eine Metadatei im erweiterten Format in eine WMF-Metadatei (Windows Metafile Format) und speichert die konvertierten Datensätze in einem angegebenen Puffer.
Syntax
UINT EmfToWmfBits(
[in] HENHMETAFILE hemf,
[in] UINT cbData16,
[out] LPBYTE pData16,
[in, optional] INT iMapMode,
[in, optional] INT eFlags
);
Parameter
[in] hemf
Typ: HENHMETAFILE
Handle mit der Metadatei im erweiterten Format, die konvertiert werden soll.
[in] cbData16
Typ: UINT
Ganze Zahl ohne Vorzeichen, die die Anzahl der Bytes im Puffer angibt, auf die der pData16-Parameter verweist.
[out] pData16
Typ: LPBYTE
Zeiger auf einen Puffer, der die konvertierten Datensätze empfängt. Wenn pData16NULL ist, gibt Metafile::EmfToWmfBits die Anzahl der Bytes zurück, die zum Speichern der konvertierten Metadateidatensätze erforderlich sind.
[in, optional] iMapMode
Typ: INT
Optional. Gibt den Zuordnungsmodus an, der in der konvertierten Metadatei verwendet werden soll. Eine Liste der möglichen Zuordnungsmodi finden Sie unter SetMapMode. Der Standardwert ist MM_ANISOTROPIC.
[in, optional] eFlags
Typ: EmfToWmfBitsFlags
Optional. Element der EmfToWmfBitsFlags-Enumeration , das Optionen für die Konvertierung angibt. Der Standardwert ist EmfToWmfBitsFlagsDefault.
Rückgabewert
Typ: UINT
Wenn die Methode erfolgreich ist und der Pufferzeiger NULL ist, ist der Rückgabewert die Anzahl der Bytes, die zum Speichern der konvertierten Datensätze erforderlich sind. Wenn die Methode erfolgreich ist und der Pufferzeiger ein gültiger Zeiger ist, entspricht der Rückgabewert der Größe der Metadatendaten in Bytes. Wenn die Methode fehlschlägt, ist der Rückgabewert null.
Hinweise
Wenn Sie Metafile::EmfToWmfBits aufrufen, um die Größe des erforderlichen Puffers zu bestimmen, müssen Sie denselben Wert für eFlags übergeben, den Sie später übergeben, wenn Sie Metafile::EmfToWmfBits aufrufen, um die Konvertierung durchzuführen. Andernfalls ist die Größe, die vom ersten Aufruf von Metafile::EmfToWmfBits zurückgegeben wird, falsch.
Diese Methode kann keine Metadateien vom Typ EmfTypeEmfPlusOnly konvertieren. Wenn Sie diese Methode verwenden, um eine Metadatei vom Typ EmfTypeEmfPlusDual zu konvertieren, werden die EMF-Einträge (Enhanced Metafile) in dieser Metadatei konvertiert, aber die EMF+-Datensätze werden nicht konvertiert.
Diese Methode konvertiert eine erweiterte Metadatei in eine WMF-Metadatei, damit ihr Bild in einer Anwendung angezeigt werden kann, die das ältere Format erkennt.
Die Metafile::EmfToWmfBits-Methode ungültig das erweiterte Metadateihandle nicht. Rufen Sie die DeleteEnhMetaFile-Funktion auf, um das Handle freizugeben, wenn es nicht mehr benötigt wird.
Geben Sie zum Erstellen einer skalierbaren WMF-Metadatei MM_ANISOTROPIC als iMapMode-Parameter an.
Beispiele
Im folgenden Beispiel wird eine Metadatei im erweiterten Format in eine WMF-Metadatei konvertiert. Der letzte an Metafile::EmfToWmfBits übergebene Parameter gibt an, dass die Metadatei im erweiterten Format als Kommentar in die konvertierte Metadatei eingebettet ist.
// Construct a Metafile object from an existing EMF disk file.
Metafile myMetafile(L"SourceMetafile.emf");
// Get a handle to the EMF metafile.
HENHMETAFILE hEmf = myMetafile.GetHENHMETAFILE();
// Determine the size of the buffer that will receive the converted records.
UINT size = Metafile::EmfToWmfBits(
hEmf,
0,
NULL,
MM_ANISOTROPIC,
EmfToWmfBitsFlagsEmbedEmf);
// Allocate a buffer to receive the converted records.
BYTE* buffer = new BYTE[size];
// Convert the EMF records to WMF records.
INT convertedSize = Metafile::EmfToWmfBits(
hEmf,
size,
buffer,
MM_ANISOTROPIC,
EmfToWmfBitsFlagsEmbedEmf);
// Get a handle to the converted metafile.
HMETAFILE hmf = SetMetaFileBitsEx(size, buffer);
// Write the WMF metafile to a disk file.
CopyMetaFile(hmf, TEXT("ConvertedMetafile.wmf"));
DeleteMetaFile(hmf);
DeleteEnhMetaFile(hEmf);
delete[] buffer;
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdiplusheaders.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |