DOCUMENTPROPERTYHEADER 结构 (winddiui.h)
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 函数应在 cbOut 成员中返回其 DEVMODEW 结构(包括所有公共和私有成员)的大小(以字节为单位)。 |
DM_ADVANCED | 如果设置, DrvDocumentPropertySheets 函数应仅创建“高级文档”页。 如果未设置, DrvDocumentPropertySheets 函数应同时创建 PageSetup 和 Advanced 文档页。 (请参阅 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,则驱动程序应写入打印机 DEVMODEW 结构的总大小 (包括 cbOut 成员中的公共和私有结构成员) 。 在这种情况下,驱动程序应将 cbOut 成员视为“仅写”成员。 因此,如果已调用 DrvDocumentPropertySheets 函数,则驱动程序不应使用 cbOut 成员作为 pdmOut 成员指向的缓冲区的大小。 Windows 驱动程序工具包 (WDK) 附带的“绘图仪”示例演示了如何正确使用 cbOut 成员。
要求
要求 | 值 |
---|---|
Header | winddiui.h (包括 Winddiui.h) |