DOCUMENTPROPERTYHEADER 结构用作打印机接口 DLL DrvDocumentPropertySheets 函数的输入参数。
语法
typedef struct _DOCUMENTPROPERTYHEADER {
WORD cbSize;
WORD Reserved;
HANDLE hPrinter;
LPTSTR pszPrinterName;
PDEVMODE pdmIn;
PDEVMODE pdmOut;
DWORD cbOut;
DWORD fMode;
} DOCUMENTPROPERTYHEADER, *PDOCUMENTPROPERTYHEADER;
成员
cbSize
DOCUMENTPROPERTYHEADER 结构的大小(以字节为单位)。
Reserved
保留。 必须为零。
hPrinter
打印机句柄。
pszPrinterName
指向表示打印机名称的 NULL 终止字符串的指针。
pdmIn
指向输入 DEVMODEW 结构的指针,DrvDocumentPropertySheets 函数应复制到打印机接口 DLL 的内部 DEVMODEW 结构(如果适用)。 如果未 在 fMode中设置DM_IN_BUFFER或DM_MODIFY,则此指针 NULL。
pdmOut
指向 DEVMODEW 输出 结构的指针,DrvDocumentPropertySheets 函数应复制打印机接口 DLL 的内部 DEVMODEW 内容(如果适用)。 如果未在 fMode中设置DM_OUT_BUFFER或DM_COPY,则此指针 NULL。
cbOut
指定 pdmOut 点的缓冲区的大小(以字节为单位)。 有关详细信息,请参阅以下“备注”部分。
fMode
下表中列出的一个或多个位标志。 (标志在头文件 Wingdi.h 和 Winddiui.h 中定义)
| 旗 | 定义 |
|---|---|
| 未设置任何标志(即,fMode 为 0)。 | DrvDocumentPropertySheets 函数应返回其 DEVMODEW 结构的大小(以字节为单位)(包括所有公共成员和私有成员)cbOut 成员中。 |
| DM_ADVANCED | 如果设置,DrvDocumentPropertySheets 函数应仅创建高级文档页。 如果未设置,DrvDocumentPropertySheets 函数应同时创建 PageSetup 和高级文档页。 (请参阅 COMPROPSHEETUI 结构的 pDlgPage 成员的说明。 |
| DM_IN_BUFFER或DM_MODIFY | 调用方在 pdmIn中提供了 DEVMODEW 结构指针,DrvDocumentPropertySheets 函数应更新其内部 DEVMODEW 结构以反映提供的 DEVMODEW 的内容。 |
| DM_IN_PROMPT或DM_PROMPT | DrvDocumentPropertySheets 函数应创建其属性表页。 (如果 DrvDocumentPropertySheets 函数的 pPSUIInfo 参数 NULL,则永远不会设置此标志。 |
| DM_NOPERMISSION | 打印机接口 DLL 的 _CPSUICALLBACK类型回调不应允许用户修改显示的属性工作表页上的属性。 |
| DM_OUT_BUFFER或DM_COPY | 调用方在 pdmOut中提供了 DEVMODEW 结构指针,DrvDocumentPropertySheets 函数应将其内部 DEVMODEW 结构的内容复制到提供的 DEVMODEW 中。 |
| DM_PROMPT_NON_MODAL | DrvDocumentPropertySheets 函数应创建其属性表页,并启动非模式 UI。 (如果 DrvDocumentPropertySheets 函数的 pPSUIInfo 参数 NULL,则永远不会设置此标志。 |
| DM_USER_DEFAULT | 未使用。 |
| DM_OUT_DEFAULT或DM_UPDATE | 未使用。 |
言论
cbOut 成员中的输入值不一定等于 pdmOut 成员指向的缓冲区的大小。 例如,当 DrvDocumentPropertySheets 函数的 pPSUInfo 参数 NULL时,如果 DOCUMENTPROPERTYHEADER 结构的 fMode 成员为零, 或同一结构的 pdmOut 成员是 NULL,驱动程序应在 cbOut 成员中写入打印机 DEVMODEW 结构(包括公共和私有结构成员)的总大小。 在这种情况下,驱动程序应将 cbOut 成员视为“仅写”成员。 因此,如果调用 DrvDocumentPropertySheets 函数,驱动程序不应使用 cbOut 成员作为由 pdmOut 成员指向的缓冲区的大小。 Windows 驱动程序工具包(WDK)附带的“绘图器”示例演示如何正确使用 cbOut 成员。
要求
| 要求 | 价值 |
|---|---|
| 标头 | winddiui.h (包括 Winddiui.h) |