次の方法で共有


ExtDeviceMode 関数 (winspool.h)

ExtDeviceMode 関数は、16 ビット アプリケーションとの互換性のためにのみ提供されます。 この要件のないプリンター ドライバーでは、代わりに、Microsoft Windows SDK ドキュメントに記載されている DocumentProperties 関数を使用する必要があります。

ExtDeviceMode 関数は、特定のグラフィックス ドライバーのプリンター初期化情報を取得または変更するか、指定されたプリンターのドライバー指定のプリンター構成プロパティ シートを表示します。

構文

LONG ExtDeviceMode(
  [in, optional] HWND       hWnd,
  [in, optional] HANDLE     hInst,
  [in, out]      LPDEVMODEA pDevModeOutput,
  [in, optional] LPSTR      pDeviceName,
  [in, optional] LPSTR      pPort,
  [in, optional] LPDEVMODEA pDevModeInput,
  [in, optional] LPSTR      pProfile,
                 DWORD      fMode
);

パラメーター

[in, optional] hWnd

プリンター構成プロパティ シートの親ウィンドウへのハンドル。

[in, optional] hInst

使用されません。 デバイス ドライバーのモジュール インスタンスへのハンドル。

[in, out] pDevModeOutput

pDevModeInput パラメーターによって指されるバッファーで指定されたプリンター構成データを受け取る DEVMODE 構造体へのポインター。

[in, optional] pDeviceName

プリンター構成プロパティ シートが表示されるデバイスの名前を含む NULL で終わる文字列へのポインター。

[in, optional] pPort

LPT1 など、デバイスが接続されているポートの名前を含む NULL で終わる文字列へのポインター。

[in, optional] pDevModeInput

オペレーティング システムがプロパティ シートのフィールドを初期化するために使用する DEVMODE 構造体へのポインター。

このパラメーターは、fMode パラメーターにDM_IN_BUFFER フラグが設定されている場合にのみ使用されます。 DM_IN_BUFFERが設定されていない場合、オペレーティング システムはプリンターの既定の DEVMODE 構造体を使用します。

[in, optional] pProfile

使用されません。 初期化情報の記録と読み取り元となる初期化ファイルの名前を含む NULL で終わる文字列へのポインター。

fMode

関数が実行する操作を指定します。 このパラメーターが 0 の場合、ExtDeviceMode 関数は、プリンター ドライバーの DEVMODE 構造体に必要なバイト数を返します。 それ以外の場合、このパラメーターは、次のフラグ値の 1 つ以上に設定できます。

形容
DM_COPY ドライバーの現在の設定を、pDevModeOutput パラメーターが指す DEVMODE 構造体に書き込みます。 呼び出し元のアプリケーションは、情報を格納するのに十分な大きさのバッファーを割り当てる必要があります。 このフラグが設定されていない場合は、pDevModeOutput NULL できます。
DM_IN_BUFFER プリンター ドライバーの現在の印刷設定を、pDevModeInput パラメーターが指す DEVMODE 構造体の設定とマージします。 これは、プロンプト、コピー、または更新の前に発生します。 この関数は、DEVMODE 構造体の dmFields メンバーによって指定されたメンバーに対してのみ構造体を更新します。 マージ中に競合が発生した場合、pDevModeInput 指す DEVMODE 構造体の設定は、プリンター ドライバーの現在の印刷設定をオーバーライド
DM_UPDATE ユーザーがプリンターのプロパティを変更できるようにプロパティ シートを表示し、ドライバーの現在の "ユーザーごと" 設定をレジストリ内のユーザーのハイブに書き込みます。

戻り値

wMode パラメーターが 0 の場合、プリンター ドライバーの初期化データを格納するために必要な DEVMODE 構造体のサイズ (バイト単位) が返されます。 プリンター ドライバーが構造体にプライベート データを追加する場合、この値は DEVMODE 構造体のサイズよりも大きくなる可能性があることに注意してください。 関数が初期化ダイアログ ボックスを表示する場合、戻り値は、ユーザーが選択したボタンに応じて IDOK または IDCANCEL になります。 関数がダイアログ ボックスを表示せず、成功した場合、戻り値は IDOK です。 関数が失敗した場合、戻り値は 0 未満です。

備考

ExtDeviceMode 関数は、DocumentProperties 関数 (Windows SDK ドキュメントで説明) を呼び出して、ユーザーが用紙サイズ、用紙の向き、出力品質などのプリンター オプションを選択できるようにするプロパティ シートを表示します。 Windows 3.x および Windows 9x 用に記述されたプリンター ドライバーは、この関数を使用します。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー winspool.h (Winspool.h を含む)
ライブラリ Winspool.lib
DLL WinSpool.drv