次の方法で共有


TreatAs

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

レジストリ エントリ

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

解説

これは、 REG_SZ 値です。

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

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

AutoTreatAs

CoGetTreatAsClass

CoTreatAsClass