次の方法で共有


通知クラスの定義

通知クラスは、INetCfgComponentControl インターフェイスから継承するように実装する必要があります。 ただし、通知オブジェクトが特定の操作を実行する場合は、次のインターフェイスから継承するように通知クラスも実装する必要があります。

  • 通知オブジェクトが、オブジェクトを所有するコンポーネントのインストール、アップグレード、および削除に関連する操作を実行する場合、関連付けられている通知クラスは INetCfgComponentSetup インターフェイスから継承する必要があります。

  • 通知オブジェクトがオブジェクトを所有するコンポーネントのカスタム プロパティ ページを表示する場合、関連付けられている通知クラスは INetCfgComponentPropertyUi インターフェイスから継承する必要があります。

  • 通知オブジェクトが、ネットワーク構成サブシステムがオブジェクトを所有するコンポーネントを他のネットワーク コンポーネントにバインドする方法の変更を評価する場合、関連付けられている通知クラスは、INetCfgComponentNotifyBinding インターフェイスから継承する必要があります。

  • 通知オブジェクトが、オブジェクトを所有するコンポーネントに影響する可能性があるネットワーク構成の変更を評価する場合、関連付けられている通知クラスは INetCfgComponentNotifyGlobal インターフェイスから継承する必要があります。

通知クラス内の特定のデータ メンバーは、すべての通知オブジェクトに共通するように定義する必要があります。 特定のデータ メンバーは、そのコンポーネントに固有として定義する必要があります。 すべての通知オブジェクトが定義する必要があるデータ メンバーには、次のものがあります。

  • INetCfgComponentインターフェイス型のオブジェクトを所有するネットワーク コンポーネントのインスタンスへのポインター。 通知オブジェクトのインスタンスは、このポインターを使用して、オブジェクトを所有するコンポーネントにアクセスし、制御します。

  • INetCfg インターフェイス型のネットワーク構成オブジェクトのインスタンスへのポインター。 通知オブジェクトのインスタンスは、このポインターを使用して、ネットワーク構成のすべての側面にアクセスします。

  • 通知オブジェクトを所有するコンポーネントのパラメーター情報を格納する変数

  • 通知オブジェクトが以前に実行したアクションを指定する変数。 通知オブジェクトが実行する可能性のあるさまざまなアクションを示す定数を定義します。 ネットワーク構成サブシステムが通知オブジェクトの INetCfgComponentControl::ApplyRegistryChanges メソッドを呼び出して構成の変更をレジストリに適用する場合、ApplyRegistryChanges はこの変数を使用してレジストリを変更する方法を決定します。 たとえば、通知オブジェクトが INetCfgComponentSetup::Install メソッドでオブジェクトを所有するコンポーネントのインストールに関連する操作を以前に実行した場合、Install はアクションを install として示すようにこの変数を設定する必要があります。

  • HKEYのレジストリ キー。 通知オブジェクトは、オブジェクトを 所有するコンポーネントの INetCfgComponent::OpenParamKey メソッドを呼び出して、コンポーネントのパラメーターを含むレジストリ キーを開いて取得します。 その後、通知オブジェクトは HKEY メンバーをそのキーに設定します。

通知クラスのコンストラクタとデストラクタを定義します。 また、通知クラスのみが使用できるプライベート メソッドを定義することも検討してください。

通知クラスには、 すべての IUnknown インターフェイス メソッドを実装する必要があります。 通知クラスが、上記の一覧に示した省略可能なインターフェイスのいずれかを継承する場合は、それらのインターフェイスのすべてのメソッドを実装する必要があります。 E_NOTIMPLは、通知オブジェクト・インタフェースのどのメソッドに対しても有効な戻り値の型ではないことに注意してください。 通知オブジェクトが特定のメソッドの実装を必要としない場合は、S_OKを返すメソッドを実装するだけです。