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 を使用して削除するか、スプーラー サービスが再起動するまで保持されます。 スプーラー サービスが停止すると、すべてのデバイス オブジェクトが自動的に削除されます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | winsplp.h (Winspool.h を含む) |
Library | WinSpool.lib |
[DLL] | WinSpool.drv |