次の方法で共有


AddPrintDeviceObject 関数 (winsplp.h)

警告

Windows 10 以降では、サード パーティの印刷プロバイダーをサポートする API は非推奨になりました。 Microsoft は、サード パーティの印刷プロバイダーへの投資を推奨していません。 さらに、v4 印刷ドライバー モデルを使用できる Windows 8 以降の製品では、サード パーティの印刷プロバイダーが v4 印刷ドライバーを使用するキューを作成または管理できない場合があります。

AddPrintDeviceObject 印刷プロバイダー関数は、印刷プロバイダー キューのデバイス オブジェクトを作成します。

構文

HRESULT AddPrintDeviceObject(
  [in]  HANDLE hPrinter,
  [out] HANDLE *phDeviceObject
);

パラメーター

[in] hPrinter

開いているプリンターのハンドル。 これは、AddPrinter または OpenPrinter スプーラー関数 によって返される HANDLE である必要があります。

[out] phDeviceObject

正常に作成された場合は、デバイス オブジェクトへの HANDLE。

戻り値

AddPrintDeviceObject 関数は、デバイス オブジェクトが正常に作成された場合、S_OKを返します。 それ以外の場合は、エラーが返されます。

備考

AddPrintDeviceObject 関数は、次の状況で呼び出す必要があります。

ユーザーがプリンターをインストールする

  • プリンターをインストールした後、印刷プロバイダーはこの関数を呼び出す必要があります。

  • この関数は、プリンターをインストールするユーザーを偽装して呼び出す必要があります。

印刷プロバイダーは、プロバイダーが所有する以前にインストールされたプリンターごとにこの関数を呼び出す必要があります。 この間、AddPrintDeviceObject 呼び出されたときにユーザー コンテキストを偽装する必要はありません。

AddPrintDeviceObject 使用して追加されたデバイス オブジェクトは、RemovePrintDeviceObjectを使用して削除するまで、またはスプーラー サービスが再起動するまで保持されます。 スプーラー サービスが停止すると、すべてのデバイス オブジェクトが自動的に削除されます。

必要条件

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

関連項目

RemovePrintDeviceObject