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 和 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 成員。

規格需求

需求
標頭 winddiui.h (包含Winddiui.h)

另請參閱

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

MSPLOT 繪圖器驅動程式範例