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

Weitere Informationen

Emftype

GetWinMetaFileBits

Metafile

Metadateien