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)

另请参阅

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

MSPLOT 绘图仪驱动程序示例