AddPrinterConnection2 関数

現在のユーザーの指定したプリンターに接続を追加し、接続の詳細を指定します。

構文

BOOL AddPrinterConnection2(
  _In_ HWND    hWnd,
  _In_ LPCTSTR pszName,
       DWORD   dwLevel,
  _In_ PVOID   pConnectionInfo
);

パラメーター

hWnd [in]

印刷システムがこの接続のためにプリント サーバーからプリンター ドライバーをダウンロードする必要がある場合にダイアログ ボックスが表示される親ウィンドウへのハンドル。

pszName [in]

現在のユーザーが接続するプリンターの名前を指定する、null で終わる定数文字列へのポインター。

dwLevel

pConnectionInfo によって指される構造体のバージョン。 現在、レベル 1 のみが定義されているため、 dwLevel の値は 1 である必要があります。

pConnectionInfo [in]

PRINTER_CONNECTION_INFO_1構造体へのポインター。 このパラメーターの詳細については、「解説」セクションを参照してください。

戻り値

関数が成功した場合、戻り値は 0 以外の値になります。

関数が失敗した場合は、0 を返します。 拡張エラー情報については、 GetLastError を呼び出します。

注釈

注意

これはブロック関数または同期関数であり、すぐには返されない場合があります。 この関数が返す速度は、アプリケーションの作成時に予測が困難なネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因などの実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。

Windows Vista がプリンターに接続するときに、プリンターが接続されているサーバーからプリンター ドライバー ファイルをコピーすることが必要になる場合があります。 ユーザーに適切な場所にファイルをコピーする権限がない場合、 AddPrinterConnection2 関数は失敗し、 GetLastError は ERROR_ACCESS_DENIEDを返します。

プリンター ドライバー ファイルをプリント サーバーからコピーする必要があるが、有効なグループ ポリシーが原因でサイレント コピーできず、pConnectionInfo-dwFlags> でPRINTER_CONNECTION_NO_UIが設定されている場合、ダイアログ ボックスは表示されず、呼び出しは失敗します。

ローカル プリンター ドライバーを使用してこのプリンターの印刷ジョブをレンダリングでき、ローカル ドライバーのバージョンがサーバー上のプリンター ドライバーのバージョンと一致しない場合は、pConnectionInfo-dwFlags で PRINTER_CONNECTION_MISMATCHを設定し、pConnectionInfo-pszDriverName>>へのローカル プリンター ドライバーへのパスを含む文字列変数へのポインターを割り当てます。

AddPrinterConnection2 を呼び出して確立されたプリンター接続は、enumPrintersdwType を PRINTER_ENUM_CONNECTION に設定して呼び出されると列挙されます。

この関数の ANSI バージョン である AddPrinterConnection2A はサポートされておらず、 ERROR_NOT_SUPPORTEDを返します。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
Header
Winspool.h (Windows.h を含む)
ライブラリ
Winspool.lib
[DLL]
Winspool.drv
Unicode 名と ANSI 名
AddPrinterConnection2W (Unicode)

関連項目

印刷

印刷スプーラー API 関数

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection