Aracılığıyla paylaş


Form veritabanına form ekleme

Önemli

Modern yazdırma platformu, Windows'un yazıcılarla iletişim kurmak için tercih ettiği araçlardır. Yazıcı cihazı geliştirme için Windows 10 ve 11'deki yazdırma deneyimini özelleştirmek için Yazdırma Desteği Uygulamaları (PSA) ile birlikte Microsoft'un IPP gelen kutusu sınıf sürücüsünü kullanmanızı öneririz.

Daha fazla bilgi için bkz. Yazdırma Desteği Uygulaması v1 ve v2 tasarım kılavuzu.

Yazıcınız ek formları destekliyorsa, bunları yazıcı sürücüsünün GPD dosyasında açıklayarak Unidrv yazıcı sürücünüze ekleyebilirsiniz. Form görünen adı dizesi için *rcNameId alanı ve kaynak DLL'si ile bir kaynak kimliği kullanırsanız, sürücünüz Windows Vista Unidrv yazıcı sürücüsünün sağladığı yeni yerelleştirme geliştirme özelliklerini otomatik olarak kullanır. Unidrv yazıcı sürücüsü eklentileri de biriktiricide yapılan bu değişikliklerden otomatik olarak yararlanir ve ek değişiklik gerektirmez. Bu geliştirmeler hakkında daha fazla bilgi için bkz. Windows Vista'da Yazıcı Formlarında Yapılan Değişiklikler.

GPD dosyasındaki yerelleştirilebilir dizeler için kaynak DLL kullanmıyorsanız, yerelleştirilebilir dizeleri kaldırmalı, bir kaynak DLL'sinde depolamalı ve dizeleri GPD dosyasında karşılık gelen kaynak kimliğiyle değiştirmelisiniz.

Aşağıdaki kod örneği, görünen ad için kaynak kimliği kullanan bir GPD dosyasından bir alıntıdır.

*Feature: PaperSize
{
    *Option: Option2
    {
 *rcNameID: 259
        (form definition)
    }
    (other form definitions).
}

Windows Vista ile sağlanan Unidrv yazıcı sürücüsünün içinde , FORM_INFO_2 yapısı aşağıdaki tabloda gösterildiği gibi GPD dosyasından okunan verilerle doldurulur. Yazıcınızın GPD dosyası bu yapıyı doldurmak için gereken bilgileri zaten içeriyorsa, Windows Vista Unidrv yazıcı sürücüsünün sağladığı yeni özellikleri kullanmak için hiçbir şeyi değiştirmeniz gerekmez.

typedef struct _FORM_INFO_2 { 
  DWORD    Flags; 
  LPTSTR   pName; 
  SIZEL    Size; 
  RECTL    ImageableArea;
  LPCSTR   pKeyword;
  DWORD    StringType;
  LPCTSTR  pMuiDll;
  DWORD    dwResourceId;
  LPCTSTR  pDisplayName;
  LANGID   wLangId; 
} FORM_INFO_2, *PFORM_INFO_2;
FORM_INFO_2 alanı Kullanılan GPD değeri Alan açıklaması
Flags FORM_PRINTER

Bu değer, formu eklediği için Unidrv yazıcı sürücüsü tarafından atanır. Bu alan için GPD dosyasından bir değer kullanılmaz.
Yapının özellikleri.
pName Kaynak DLL'sinden veya GPD dosyasındaki *rcName alanından elde edilen formun yerelleştirilmiş adı. Formun adını belirten null ile sonlandırılan bir dize işaretçisi. Bu dize, form veritabanındaki formu tanımlamak için kullanılır ve benzersiz olmalıdır.
Boyut GPD dosyasındaki *PageDimensions seçeneğinden okunan boyut bilgileri. Formun bin milimetre cinsinden genişliği ve yüksekliği.
Görüntülenebilir Alan GPD dosyasındaki *PrintableArea seçeneğinden okunan boyut bilgileri. Sayfanın yazıcının yazdırabileceği alanın binde bir milimetre cinsinden genişliği ve yüksekliği.
pKeyword GPD dosyasındaki *Option girişinin değeri. Formun yerelleştirilebilir olmayan dize tanımlayıcısına işaretçi. AddForm veya SetForm'a geçirildiğinde, bu işaretçi çağırana formu tüm yerel ayarlarda tanımlamak için bir yol sağlar.
DizeTürü STRING_MUIDLL

GPD *rcNameId seçeneğini kullanıyorsa ve form adı kaynak DLL'sinden kullanılabiliyorsa, STRING_MUIDLL değeri atanır. Bunun yerine GPD dosyasında *rcName seçeneği kullanılıyorsa, bu alanın değeri STRING_NONE. Bu alan için GPD dosyasından bir değer kullanılmaz.
Form için yerelleştirilmiş bir görünen adın çalışma zamanında nasıl alınacağı belirtir.
pMuiDll *rcNameId seçeneği kullanılıyorsa, GPD dosyasındaki *ResourceDLL girdisinin değeri. Bunun yerine GPD dosyasında *rcName seçeneği kullanılıyorsa, bu alanın değeri NULL olur. MUI yerelleştirilmiş kaynak DLL'si, StringType STRING_MUIDLL içerdiğinde yerelleştirilmiş görünen adı barındırır.
dwResourceId GPD dosyasındaki *rcNameID girişinin değeri. Bunun yerine GPD dosyasında *rcName seçeneği kullanılıyorsa, bu alanın değeri 0'dır. StringType STRING_MUIDLL içerdiğinde formun görünen adının pMuiDll içindeki kaynak kimliği.
pDisplayName NULL

Bu alan kullanılmaz.
Formun görünen adı, StringType STRING_LANGPAIR içerdiğinde wLangId'nin belirttiği dildedir.
wLangId 0

Bu alan kullanılmaz.
pDisplayName dili, StringType STRING_LANGPAIR içerdiğinde.