KS プロキシ プラグインの登録

インターフェイスとプロパティ ページの両方のプラグインは、KS プロキシ拡張機能のプロバイダーとして KS プロキシに登録する必要があります。

プラグインを登録するには、COM オブジェクトを実装する DLL に DllRegisterServerDllUnregisterServer という名前の関数をエクスポートします。 これらの関数は、Olectl.h で宣言されていますが、ユーザー定義です。

プロパティ セットの GUID をコンポーネントの CLSID として、およびコンポーネントがサポートするインターフェイスの IID として再利用できます。

DllRegisterServer の実装では、次の操作を行う必要があります。

  1. フィルターを登録するには、 TRUE の値を指定して AMovieDllRegisterServer2 を呼び出します。

  2. RegCreateKeyEx を呼び出して、HKLM\System\CurrentControlSet\Control\MediaInterfaces キーへのハンドルを作成して受け取ります。

  3. RegSetValueEx を使用して、プロパティ セットをインターフェイス ハンドラーにマップする HKLM\System\CurrentControlSet\Control\MediaInterfaces キーの値を設定します。 インターフェイス ハンドラーの詳細については、「インターフェイス ハンドラー プラグイン」を参照してください。

  4. キーは定義済みのレジストリ キーの 1 つではないため、RegCloseKey を呼び出してキーのハンドルを閉じます。

  5. RegCreateKeyEx を呼び出します。

  6. RegSetValueEx を使用して、プロパティ セットをプロパティ ページにマップする HKLM\System\CurrentControlSet\Control\MediaSets\ キーの値を設定します。 プロパティ ページ プラグインの詳細については、「プロパティ ページプラグイン」を参照してください。

  7. キーは定義済みのレジストリ キーの 1 つではないため、RegCloseKey を呼び出してキーのハンドルを閉じます。

DllUnregisterServer の実装では、次の操作を行う必要があります。

  1. AMovieDllRegisterServer2FALSE を指定してフィルタの登録を解除します。

  2. RegCreateKeyEx を呼び出して、既存のキーを開きます。

  3. RegDeleteKey を使用してサブキーを削除します。

  4. RegCloseKey を呼び出して、キーのハンドルを閉じます。