IUPnPService::AddCallback メソッド (upnp.h)
AddCallback メソッドは、アプリケーションのコールバックを UPnP フレームワークに登録します。
構文
HRESULT AddCallback(
[in] IUnknown *pUnkCallback
);
パラメーター
[in] pUnkCallback
登録するコールバックを含むインターフェイスへの参照を指定します。 pUnkCallback によって参照されるオブジェクトは、IUPnPServiceCallback インターフェイスまたは IDispatch インターフェイスをサポートする必要があります。
戻り値
メソッドが成功した場合、戻り値はS_OK。 それ以外の場合、メソッドは WinError.h で定義されている COM エラー コードのいずれかを返します。
注釈
コールバック内からこのメソッドを呼び出さないでください。メモリの破損が発生します。
複数のコールバックが登録されている場合、UPnP フレームワークはコールバックを順番に呼び出します。
pUnkCallback によって参照されるオブジェクトは、IUPnPServiceCallback インターフェイスまたは IDispatch インターフェイスをサポートする必要があります。 AddCallback メソッドは、最初に pUnkCallback に対して IUPnPServiceCallback インターフェイスを照会します。 このインターフェイスがサポートされていない場合、 AddCallback メソッドは pUnkCallback に 対して IDispatch インターフェイスを照会します。 IDispatch インターフェイスがサポートされていない場合は、両方のチェックが失敗し、AddCallback メソッドはE_FAILを返します。
IDispatch のみがサポートされている場合、サービス オブジェクトは、既定のメソッドを示す 0 として指定されたディスパッチ ID で IDispatch::Invoke を呼び出すことによってコールバックを呼び出します。 この既定の IDispatch メソッドには IUPnPServiceCallback メソッドと同じパラメーターが渡されますが、渡される最初のパラメーターはコールバックが呼び出される理由を示す文字列です。 有効な値はVARIABLE_UPDATEされ、SERVICE_INSTANCE_DIEDされます。
このメソッドには、次の引数があります。
- コールバックが呼び出される理由。 これは、状態変数が変更された (VARIABLE_UPDATE) か、サービス インスタンスが使用できなくなった (SERVICE_INSTANCE_DIED) ために呼び出されます。
- コールバックが呼び出されるサービス オブジェクト。
状態変数の変更に対してコールバックが呼び出された場合、メソッドには 2 つの追加引数が渡されます。
- 変更された変数の名前。
- 新しい値。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | upnp.h |
[DLL] | Upnp.dll |