Visual C++ 2010 (Express) で COM コンポーネントを開発しようとしていますが、それを Visual C# 2010 (Express) プログラムから使用できるようにしたいと考えています。
私の COM DLL はまだ完成していませんが、DllRegisterServer関数とDllUnregisterServer関数を定義し、HKEY_CLASSES_ROOT とサブキーに多くのものを書き込みます。とりわけ、私は次の鍵を持っています:
HKEY_CLASSES_ROOT\My.Components.1\CLSID
Default Value: {DB05EA30-0320-4D40-A530-6DEAD03D3850}
HKEY_CLASSES_ROOT\CLSID\{DB05EA30-0320-4D40-A530-6DEAD03D3850}
Default Value: My Components
Sub Key: InprocServer32
Default Value: Absolute path of the .dll
Threading Mode: Apartment
Sub Key: ProgID
Default Value: My.Components.1
Sub Key: TypeLib
Default Value: {DB05EA31-0321-4D41-A531-6DEAD03D3851}
Sub Key: Version
Default Value: 1.0
HKEY_CLASSES_ROOT\TypeLib\{DB05EA31-0321-4D41-A531-6DEAD03D3851}
Sub Key: 1.0
Sub Key: 0
Sub Key: win32
Default Value: Absolute path of the .tlb
Microsoft JScript は COM オブジェクトのインスタンス化を試みることができますが、ファクトリが不完全なため、DllGetClassObjectのエラー コードを出力するだけです。
一方、Visual C# 2010 (または少なくとも [参照の追加...] ウィンドウ) は、リストに表示されない登録済みの COM オブジェクトの存在に気付いていないようです。これらのオブジェクトが、インストールされた COM オブジェクトのサブセットにすぎないことは明らかです。
どの時点で COM オブジェクトが表示されるのでしょうか? 私は何が欠けていますか?
編集
[参照] タブについては知っていますが、最初に登録された COM オブジェクトは明示的に検索しなくても表示されるはずだと思っていましたが、そうではない可能性があります。