Share via


IPart::UnregisterControlChangeCallback メソッド (devicetopology.h)

UnregisterControlChangeCallback メソッドは、クライアントが IPart::RegisterControlChangeCallback メソッドの呼び出しによって以前に登録した IControlChangeNotify インターフェイスの登録を削除します。

構文

HRESULT UnregisterControlChangeCallback(
  [in] IControlChangeNotify *pNotify
);

パラメーター

[in] pNotify

登録を削除する IControlChangeNotify インターフェイスへのポインター。 クライアントは、 以前の IPart::RegisterControlChangeCallback メソッドの呼び出しで、この同じインターフェイス ポインターを part オブジェクトに渡しました。 UnregisterControlChangeCallback メソッドが成功すると、クライアントの IControlChangeNotify インターフェイスで Release メソッドが呼び出されます。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。

リターン コード 説明
E_INVALIDARG
ポインター pNotifyNULL です
E_NOTFOUND
インターフェイス インスタンス *pNotify は現在登録されていません。

注釈

クライアントが IControlChangeNotify インターフェイスへの最後の参照を解放する前に、 UnregisterControlChangeCallback を呼び出してインターフェイスの登録を解除する必要があります。 それ以外の場合、アプリケーションは IControlChangeNotify オブジェクトと IPart オブジェクトによって保持されているリソースをリークします。 IPart::RegisterControlChangeCallback メソッドはクライアントの IControlChangeNotify::AddRef メソッドを呼び出し、UnregisterControlChangeCallbackIControlChangeNotify::Release メソッドを呼び出します。 クライアントが UnregisterControlChangeCallback を呼び出す前に IControlChangeNotify インターフェイスへの参照を解放してエラーが出た場合、IPart オブジェクトは IControlChangeNotify インターフェイスへの参照を解放しません。 たとえば、適切に設計されていない IControlChangeNotify 実装では、IControlChangeNotify オブジェクトのデストラクターから UnregisterControlChangeCallback を呼び出す場合があります。 この場合、IPart オブジェクトが IControlChangeNotify インターフェイスへの参照を解放するまで、クライアントは UnregisterControlChangeCallback を呼び出しません。IPart オブジェクトは、クライアントが UnregisterControlChangeCallback を呼び出すまで IControlChangeNotify インターフェイスへの参照を解放しません。 AddRef メソッドと Release メソッドの詳細については、Windows SDK ドキュメントの IUnknown インターフェイスの説明を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー devicetopology.h

こちらもご覧ください

IControlChangeNotify インターフェイス

IPart インターフェイス

IPart::RegisterControlChangeCallback