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

DrvDocumentPropertySheets 関数がプリンター インターフェイス DLL の内部 DEVMODEW 構造体にコピーする必要がある入力 DEVMODEW 構造体へのポインター (該当する場合は、プロパティ シートが表示される前)。 DM_IN_BUFFERまたはDM_MODIFYが fMode で設定されていない場合、このポインターは NULL です

pdmOut

DrvDocumentPropertySheets 関数がプリンター インターフェイス DLL の内部 DEVMODEW コンテンツをコピーする出力 DEVMODEW 構造体へのポインター (該当する場合は、プロパティ シートが表示された後)。 DM_OUT_BUFFERまたはDM_COPYが fMode で設定されていない場合、このポインターは NULL です

cbOut

pdmOut がポイントするバッファーのサイズをバイト単位で指定します。 詳細については、「解説」を参照してください。

fMode

次の表に示す 1 つ以上のビット フラグ。 (フラグは、ヘッダー ファイル 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 メンバーが 0 の場合、または同じ構造体の pdmOut メンバーが NULL の場合、ドライバーは、プリンターの DEVMODEW 構造体の合計サイズ (パブリック構造体メンバーとプライベート構造体メンバーを含む) を cbOut メンバーに書き込む必要があります。 このような場合、ドライバーは cbOut メンバーを "書き込み専用" メンバーとして扱う必要があります。 したがって、DrvDocumentPropertySheets 関数が呼び出された場合、ドライバーは pdmOut メンバーが指すバッファーのサイズとして cbOut メンバーを使用しないでください。 Windows Driver Kit (WDK) に付属する "プロッター" サンプルは、 cbOut メンバーを正しく使用する方法を示しています。

要件

要件
Header winddiui.h (Winddiui.h を含む)

こちらもご覧ください

COMPROPSHEETUI

DEVMODEW

DrvDocumentPropertySheets

MSPLOT プロッター ドライバーのサンプル