Makale numarası: 66949 - Son Gözden Geçirme: 30 Ekim 2003 Perşembe - Gözden geçirme: 3.0

BILGI: Windows Meta dosyası işlevleri & Aldus Placeable meta dosyaları

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Birçok Windows tabanlı uygulamaları, almak veya Windows Meta dosyası biçimindeki Aldus Placeable meta dosyası (APM) biçimi olarak da bilinen verme. Bu biçimde, bu meta dosyaları GetMetaFile() CopyMetaFile(), PlayMetaFile() ve benzerleri gibi Windows Meta dosyası işlevleri kullanılamaz. Bu meta dosyaları'nı kullanmak için <a0></a0>, meta dosyası ' APM üstbilgi kaldırılmalı ve geri kalan meta dosyası bit, yeni oluşturulan bir meta dosyası için yazılmalıdır.

Daha fazla bilgi

APM üstbilgi 22 bayt uzunluğundadır ve aşağıdaki gibi tanımlanır:
   typedef struct
     {
     DWORD   key;
     HANDLE  hmf;
     RECT    bbox;
     WORD    inch;
     DWORD   reserved;
     WORD    checksum;
     } APMFILEHEADER;
				
aşağıdaki kod bölümü, bir Aldus Placeable, Windows tarafından sağlanan meta dosyası işlevlerle çalışacaktır Metafile bellek tabanlı Windows Meta dosyası oluşturmak gösterilmiştir.

Placeable Windows meta dosyaları da sayfalarında 26 27'de belgelenen "Programmer 's Reference'nın, Cilt 4: Kaynaklar" Windows 3.1 SDK belgeleri el ile.

Örnek kod

   BOOL RenderAPM (fh)
   int   fh; // a file handle to the APM metafile is passed in
   {
       HANDLE           hData;
       LPSTR            lpData;
       DWORD            OffsetToMeta;
       METAHEADER       mfHeader;
       APMFILEHEADER    APMHeader;

       OffsetToMeta = sizeof(APMHeader);

   // Seek to beginning of file and read APM header
       _llseek(fh, 0, 0);
       if (!_lread(fh, (LPSTR)&APMHeader, sizeof(APMFILEHEADER)))
           // Error in reading the file
           return(FALSE);

   // Return to read metafile header
       _llseek(fh, OffsetToMeta, 0);
       if (!_lread(fh, (LPSTR)&mfHeader, sizeof(METAHEADER)))
           // Error in reading
           return(FALSE);

   // Allocate memory for memory based metafile
       if (!(hData = GlobalAlloc(GHND, (mfHeader.mtSize * 2L))))
           return(FALSE);
   // Were we successful?
       if (!(lpData = GlobalLock(hData)))
       {
           // Error in allocation
           GlobalFree(hData);
           return(FALSE);
       }

   // Read metafile bits
       _llseek(fh, OffsetToMeta, 0);
       if (!_lread(fh, lpData, (mfHeader.mtSize * 2L)))
       {
           // Error in reading
           GlobalUnlock(hData);
           GlobalFree(hData);
           return(FALSE);
       }

   // Create the METAFILE with the bits we read in.
       if (!(hMF = SetMetaFileBits(hData)))
           return(FALSE);

       GlobalUnlock(hData);

   // Close the APM file
       _lclose(fh);

   // Return success
       return(TRUE);
   }
				

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Anahtar Kelimeler: 
kbmt kb16bitonly KB66949 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:66949  (http://support.microsoft.com/kb/66949/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.