DVC プラグインの登録

動的仮想チャネル (DVC) プラグインは、次のいずれかの方法を使用して、リモート デスクトップ接続 (RDC) クライアントで使用するために登録されます。

  • リモート デスクトップ プロトコル (RDP) ActiveX コントロールの IMsTscAdvancedSettings::p ut_PluginDlls メソッドの呼び出し。 複数のエントリはコンマ区切りである必要があります。

  • リモート デスクトップ接続 (RDC) クライアント プロセスが開始されたコンピューター上のレジストリ内の次の場所にプラグイン エントリを書き込みます。

    Hkey_current_user\ソフトウェア\マイクロソフト\ターミナル サーバー クライアント\既定\アドイン\一意のプラグイン名

    注意

    一意のプラグイン名サブキーが存在しない場合は、作成する必要があります。 一意のプラグイン名サブキー名は、プラグインを識別できる任意の文字列です。 文字列には、任意の組み合わせの文字を指定できます。

     

    一意のプラグイン名の下に、プラグインを識別するエントリを追加する必要があります。

    エントリ名 = 名前

    データ型 = REG_SZ または REG_EXPAND_SZ

どちらの場合も、エントリ値は次のいずれかの形式に準拠している必要があります。

"Plug-inDLLName:{CLSID}"

プラグインは必ずしもコンポーネント オブジェクト モデル (COM) オブジェクトとして Windows レジストリに登録されるとは限りませんが、DLL はインプロセス COM オブジェクトとして実装されます。 RDC クライアントは、 Plug-inDLLName で指定された DLL を読み込み、 CLSID を使用して COM オブジェクトを直接取得します。

"Plug-inDLLName"

DLL は VirtualChannelGetInstance 関数を実装し、名前でエクスポートします。 RDC クライアントは VirtualChannelGetInstance 関数を使用して、DLL によって実装されるすべてのプラグインの IWTSPlugin インターフェイス ポインターを取得します。

"{CLSID}"

RDC クライアントは、CLSIDCoCreateInstance を使用して、プラグインを通常の COM オブジェクトとしてインスタンス化します。

注意

Plug-inDLLName は、.dll ファイルの完全なパスとファイル名を表します。 データ型が REG_EXPAND_SZの場合、パスには、実行時に展開される展開されていない環境変数を含めることができます。

 

リモート デスクトップ接続 (RDC) クライアントの初期化が完了すると、登録されているすべてのプラグインに対して次の処理が実行されます。

  1. 上記のいずれかの方法を使用して、各プラグインの IWTSPlugin インターフェイスのインスタンスを取得します。
  2. IWTSPlugin インターフェイスの Initialize メソッドを呼び出します。
  3. クライアントが同じサーバーまたは別のサーバーに複数回接続する場合は、 Connected メソッドと Disconnected メソッドの呼び出しが複数回発生する可能性があります。
  4. プラグインが最後に処理する必要がある呼び出しは 終了です。 これは、リモート デスクトップ接続 (RDC) クライアントがプラグインをアンロードしようとしていることを示す信号です。