将表单添加到表单数据库
重要
建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) ,自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅 打印支持应用设计指南。
如果打印机支持其他表单,可以通过在打印机驱动程序的 GPD 文件中描述它们,将它们添加到 Unidrv 打印机驱动程序。 如果将资源 ID 与 *rcNameId 字段和资源 DLL 用于窗体显示名称字符串,则驱动程序将自动使用 Windows Vista Unidrv 打印机驱动程序提供的新本地化增强功能。 Unidrv 打印机驱动程序插件也受益于后台处理程序的这些自动更改,不需要任何其他修改。 有关这些增强功能的详细信息,请参阅 对 Windows Vista 中的打印机窗体的更改。
如果不对 GPD 文件中的可本地化字符串使用资源 DLL,则应删除可本地化字符串,将其存储在资源 DLL 中,并将字符串替换为 GPD 文件中的相应资源 ID。
下面的代码示例是 GPD 文件中的一个摘录,该文件使用资源 ID 作为显示名称。
*Feature: PaperSize
{
*Option: Option2
{
*rcNameID: 259
(form definition)
}
(other form definitions).
}
在 Windows Vista 提供的 Unidrv 打印机驱动程序中, FORM_INFO_2 结构由从 GPD 文件读取的数据填充,如下表所示。 如果打印机的 GPD 文件已包含填充此结构所需的信息,则无需更改任何内容即可使用 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;
FORM_INFO_2字段 | 使用的 GPD 值 | 字段说明 |
---|---|---|
Flags | FORM_PRINTER 此值由 Unidrv 打印机驱动程序分配,因为它正在添加窗体。 GPD 文件中的值不用于此字段。 |
结构的属性。 |
pName | 从资源 DLL 或 GPD 文件中的 *rcName 字段获取的窗体的本地化名称。 | 指向以 null 结尾的字符串的指针,该字符串指定窗体的名称。 此字符串用于标识表单数据库中的窗体,并且必须是唯一的。 |
大小 | 从 GPD 文件中的 “PageDimensions” 选项读取的信息的大小。 | 形状的宽度和高度(以千分之几毫米为单位)。 |
ImageableArea | 从 GPD 文件中的 *PrintableArea 选项读取的大小信息。 | 打印机可以打印的页面区域的宽度和高度(以千分之几毫米为单位)。 |
pKeyword | GPD 文件中 *Option 条目的值。 | 指向窗体中不可本地化的字符串标识符的指针。 传递到 AddForm 或 SetForm 时,此指针为调用方提供了一种在所有区域设置中标识表单的方法。 |
StringType | STRING_MUIDLL 如果 GPD 使用 *rcNameId 选项,并且表单名称可从资源 DLL 获取,则会分配STRING_MUIDLL值。 如果在 GPD 文件中改用 *rcName 选项,则此字段的值STRING_NONE。 GPD 文件中的值不用于此字段。 |
指定如何在运行时获取窗体的本地化显示名称。 |
pMuiDll | 如果使用 *rcNameId 选项,则为 GPD 文件中的 *ResourceDLL 条目的值。 如果 GPD 文件中改用 *rcName 选项,则此字段的值为 NULL。 | 当 StringType 包含STRING_MUIDLL时,包含本地化显示名称的 MUI 本地化资源 DLL。 |
dwResourceId | GPD 文件中 *rcNameID 条目的值。 如果在 GPD 文件中改用 *rcName 选项,则此字段的值为 0。 | StringType 包含STRING_MUIDLL时窗体显示名称的资源 ID(以 pMuiDll 为单位)。 |
pDisplayName | NULL 不使用此字段。 |
当 StringType 包含STRING_LANGPAIR时,表单的显示名称采用 wLangId 指定的语言。 |
wLangId | 0 不使用此字段。 |
StringType 包含STRING_LANGPAIR时 pDisplayName 的语言。 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈