Vytvoření rozšířeného metasouboru
Rozšířený metasoubor vytvoříte pomocí funkce CreateEnhMetaFile a zadáte příslušné argumenty. Systém používá tyto argumenty k udržování rozměrů obrázku, určení, zda má být metasoubor uložen na disku nebo v paměti atd.
Pokud chcete zachovat rozměry obrázků na výstupních zařízeních, CreateEnhMetaFile vyžaduje rozlišení referenčního zařízení. Toto referenční zařízení je zařízení, na kterém se obrázek poprvé objevil, a referenční řadiče domény je kontext zařízení přidružený k referenčnímu zařízení. Při volání funkce CreateEnhMetaFile je nutné zadat popisovač, který identifikuje tento řadič domény. Tento popisovač můžete získat voláním funkce GetDC nebo CreateDC. Můžete také zadat NULL jako popisovač, který použije aktuální zobrazovací zařízení pro referenční zařízení.
Většina aplikací ukládá obrázky trvale a proto vytvoří vylepšený metasoubor uložený na disku; Existují však některé instance, pokud to není nutné. Například aplikace pro zpracování textu, která poskytuje možnosti kreslení grafů, může uložit uživatelem definovaný graf do paměti jako rozšířený metasoubor a pak zkopírovat vylepšené bity metasouborů z paměti do souboru dokumentu uživatele. Aplikace, která vyžaduje metasoubor, který je trvale uložen na disku, musí zadat název souboru při volání CreateEnhMetaFile. Pokud nezadáte název souboru, systém automaticky zachází s metasouborem jako s dočasným souborem a uloží ho do paměti.
Do metasouboru obsahujícího informace o obrázku a autorovi můžete přidat volitelný textový popis. Aplikace může tyto řetězce zobrazit v dialogovém okně Otevřít soubor a poskytnout uživateli informace o obsahu metasouboru, který vám pomůže vybrat příslušný soubor. Pokud aplikace obsahuje textový popis, musí zadat ukazatel na řetězec při volání CreateEnhMetaFile.
Když CreateEnhMetaFile úspěšně, vrátí popisovač, který identifikuje zvláštní kontext zařízení metasouboru. Kontext zařízení metasouboru je jedinečný v tom, že je přidružený k souboru, nikoli k výstupnímu zařízení. Když systém zpracuje funkci GDI, která přijala popisovač do kontextu zařízení metasouboru, převede funkci GDI na záznam rozšířeného metasouboru a připojí záznam na konec rozšířeného metasouboru.
Po dokončení obrázku a připojení posledního záznamu k rozšířenému metasouboru může aplikace zavřít soubor zavoláním funkce CloseEnhMetaFile. Tato funkce zavře a odstraní speciální kontext zařízení metasouboru a vrátí popisovač identifikující vylepšený metasoubor.
Chcete-li odstranit metasoubor rozšířeného formátu nebo úchyt metasouboru rozšířeného formátu, zavolejte funkci DeleteEnhMetaFile.