次の方法で共有


TreatAs

現在のクラスをエミュレートできるクラスの CLSID を指定します。

レジストリ エントリ

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
   {CLSID}
      TreatAs = {CLSID_TreatAs}

備考

これは REG_SZ 値です。

エミュレーションは、オブジェクトの元の形式を保持しながら、別のクラスのオブジェクトを開いて編集する 1 つのアプリケーションの機能です。 解決はローカル コンピューターで行われるため、リモート ライセンス認証の場合は、TreatAsで指定された CLSID を使用してクライアント コンピューターで解決が行われます。

DCOM は、CoCreateInstance 関数を呼び出してリモート サーバーを指定した場合でも、TreatAsのローカル レジストリを確認します。 つまり、Class1 の TreatAs エントリをローカル コンピューターで Class2 として扱うが、Class1 のインスタンスを作成するために CoCreateInstance を呼び出し、リモート サーバーを指定した場合、DCOM は Class2 がリモート サーバーに登録されていない場合でも、Class2 のインスタンスをリモート サーバーに作成しようとします。 これにより、CoCreateInstance 呼び出しが失敗します。

AutoTreatAs

CoGetTreatAsClass

CoTreatAsClass