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 を含む) |