私は、最初のアウトプロセス 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 を両方に使用するにはどうすればよいでしょうか?