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 函数应返回其 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)

另请参阅

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

MSPLOT 绘图器驱动程序示例