Menambahkan formulir ke database formulir
Penting
Platform cetak modern adalah sarana komunikasi pilihan Windows dengan printer. Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.
Untuk informasi selengkapnya, lihat Platform cetak modern dan panduan desain aplikasi dukungan Cetak.
Jika printer Anda mendukung formulir tambahan, Anda dapat menambahkannya ke pengandar pencetak Unidrv dengan menjelaskannya dalam file GPD untuk pengandar pencetak. Jika Anda menggunakan ID sumber daya dengan bidang *rcNameId dan DLL sumber daya untuk string nama tampilan formulir, driver Anda akan secara otomatis menggunakan fitur peningkatan pelokalan baru yang disediakan driver printer Windows Vista Unidrv. Plug-in driver printer Unidrv juga mendapat manfaat dari perubahan ini pada penampung secara otomatis dan tidak memerlukan modifikasi tambahan. Untuk informasi selengkapnya tentang penyempurnaan ini, lihat Perubahan pada Formulir Printer di Windows Vista.
Jika Anda tidak menggunakan DLL sumber daya untuk string yang dapat dilokalkan dalam file GPD, Anda harus menghapus string yang dapat dilokalkan, menyimpannya di DLL sumber daya, dan mengganti string dengan ID sumber daya yang sesuai dalam file GPD.
Contoh kode berikut adalah kutipan dari file GPD yang menggunakan ID sumber daya untuk nama tampilan.
*Feature: PaperSize
{
*Option: Option2
{
*rcNameID: 259
(form definition)
}
(other form definitions).
}
Di dalam driver printer Unidrv yang disediakan dengan Windows Vista, struktur FORM_INFO_2 diisi oleh data yang dibaca dari file GPD, seperti yang ditunjukkan tabel berikut. Jika file GPD untuk pencetak Anda sudah berisi informasi yang diperlukan untuk mengisi struktur ini, Anda tidak perlu mengubah apa pun untuk menggunakan fitur baru yang disediakan driver printer Windows Vista Unidrv.
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;
bidang FORM_INFO_2 | Nilai GPD yang digunakan | Deskripsi bidang |
---|---|---|
Bendera | FORM_PRINTER Nilai ini ditetapkan oleh pengandar printer Unidrv karena sedang menambahkan formulir. Nilai dari file GPD tidak digunakan untuk bidang ini. |
Properti struktur. |
pName | Nama formulir yang dilokalkan seperti yang diperoleh dari DLL sumber daya atau dari bidang *rcName dalam file GPD. | Penunjuk ke string yang dihentikan null yang menentukan nama formulir. String ini digunakan untuk mengidentifikasi formulir dalam database formulir dan harus unik. |
Ukuran | Informasi ukuran yang dibaca dari opsi *PageDimensions dalam file GPD. | Lebar dan tinggi, dalam seribu milimeter, dari bentuk. |
ImageableArea | Informasi ukuran yang dibaca dari opsi *PrintableArea dalam file GPD. | Lebar dan tinggi, dalam seribu milimeter, dari area halaman tempat printer dapat mencetak. |
pKeyword | Nilai entri *Opsi dalam file GPD. | Penunjuk ke pengidentifikasi string formulir yang tidak dapat dilokalkan. Ketika diteruskan ke AddForm atau SetForm, penunjuk ini memberi pemanggil cara untuk mengidentifikasi formulir di semua lokal. |
StringType | STRING_MUIDLL Jika GPD menggunakan opsi *rcNameId dan nama formulir tersedia dari DLL sumber daya, nilai STRING_MUIDLL ditetapkan. Jika opsi *rcName digunakan dalam file GPD, nilai untuk bidang ini STRING_NONE. Nilai dari file GPD tidak digunakan untuk bidang ini. |
Menentukan bagaimana nama tampilan yang dilokalkan untuk formulir diperoleh saat runtime. |
pMuiDll | Nilai entri *ResourceDLL dalam file GPD jika opsi *rcNameId digunakan. Jika opsi *rcName digunakan dalam file GPD sebagai gantinya, nilai untuk bidang ini adalah NULL. | DLL sumber daya yang dilokalkan MUI yang berisi nama tampilan yang dilokalkan saat StringType berisi STRING_MUIDLL. |
dwResourceId | Nilai entri *rcNameID dalam file GPD. Jika opsi *rcName digunakan dalam file GPD sebagai gantinya, nilai untuk bidang ini adalah 0. | ID sumber daya, di pMuiDll, dari nama tampilan formulir saat StringType berisi STRING_MUIDLL. |
pDisplayName | NULL Bidang ini tidak digunakan. |
Nama tampilan formulir dalam bahasa yang ditentukan wLangId saat StringType berisi STRING_LANGPAIR. |
wLangId | 0 Bidang ini tidak digunakan. |
Bahasa pDisplayName saat StringType berisi STRING_LANGPAIR. |