HKEY_LOCAL_MACHINEとは対照的に、HKEY_CURRENT_USER\Software\Classesの下に登録されるように、カスタム登録手順を備えた.NET COM dllがあります。したがって、次のキーがあります (現在のユーザーは Windows 7 PC の管理者です)。
HKEY_CURRENT_USER\Software\Classes\My.ProgId\CLSID
HKEY_CURRENT_USER\Software\Classes\CLSID\{XYZZYZYZYZ-YZYZY-ZYZYZY} etc
単純な C++ クライアントを構築する場合:
hr = CLSIDFromProgID(OLESTR("My.ProgId"), &clsid);
UAC昇格なしで実行すると(Windows 7) 、コンポーネントが正常に作成されます。一方、標高をオンにして実行すると、 で失敗しInvalid class string
ます。
プロセス モニターで検査しました。動作すると、HKCU\Software\Classes\My.ProgIDキーが検索され、正常に開きます。失敗した場合 (昇格時)、HKCR\My.ProgIdとエラーを探しNAME NOT FOUND
ます。ただし、レジストリ キーを手動で開くことclasses_root
は成功します。
HKEY key;
RegOpenKey( HKEY_CLASSES_ROOT, _T( "My.ProgId"), &key);
助けてください!ありがとう