私が取り組んでいるサンプルでは、クラス Microsoft_Office Excel ワークシートの CoCreateInstance を呼び出します。0x80040514 (「クラスが登録されていません」) の HRESULT で失敗します。他のエクセルのクラス(Excel.Application)はシステムに登録されているのですが、ワークシートのクラスは登録されていません……このクラスを登録することはできますか?
更新: Microsoft の DSOFramer サンプル プロジェクトを使用しています。最初に IMoniker クラスを使用してバインドを試みます。それが失敗した場合は、clsid の CoCreateInstance を呼び出します。これは他の MS Office オブジェクトでも機能する可能性がありますが、Excel の場合、クラスはワークシート用です。サンプルを CoCreateInstance _Application に変更し、ワークブックを取得して、ターゲット ファイルの Workbooks::Open を呼び出し、Worksheet オブジェクトを返します。次に、そのポインターを返し、元のサンプル コード パスにマージしました。すべてが機能しています。