私は、最初のアウトプロセス COM サーバーを実装している最中です (つまり、最初の COM サーバーです)。IDL ファイルを作成し、プロキシ/スタブ DLL のコードを生成し、DLL をコンパイルして登録する手順に従いました。
レジストリキーを確認すると、
- という名前のキーで
HKEY_CLASSES_ROOT/Interface/<GUID>
、その値は (たとえば)IMyApp
であり、 - という名前のキーで
HKEY_CLASSES_ROOT/Interface/<GUID>/ProxyStubClsid32
、その値は です<GUID>
。つまり、キー名と同じ値です。
2番目のキーの値がキー名と同じ値になる方法がわかりません<GUID>
。現在の理解では
- では
HKEY_CLASSES_ROOT/Interface/<GUID>
、GUID はインターフェイスIDです。 - の値は
ProxyStubClsid32
インターフェース ID ではなく、上記のインターフェースを実装するコンポーネントを参照するクラスID です HKEY_CLASSES_ROOT/CLSID/<GUID>/InprocServer32
(GUID は上記のクラスID)の値は、プロキシ DLL を指します。
HKEY_CLASSES_ROOT/Interface/<GUID>/ProxyStubClsid32
では、1 つがインターフェイス ID で、もう 1 つがクラス ID である場合、どのようにして の値が同じ値の GUID を保持できるでしょうか?
編集:私はまだこれに対する答えを望んでいます。簡単に言うと、コンポーネントとインターフェースは 2 つの異なるものなので、同じ ID を両方に使用するにはどうすればよいでしょうか?