次の方法で共有


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

こちらもご覧ください

IUPnPService

IUPnPServiceCallback