0

*.docx ファイル パスを指定してOleCreateFromFileを呼び出すと、0x80040154: クラスが登録されていません。これは、Office 2010 がインストールされ、Visual Studio 2008 がインストールされた Windows 7 システム上にありますが、この問題はさまざまなシステムや Office 2003 でも再現されています。

登録しようとしたクラスを特定するにはどうすればよいですか? 同じファイル パス引数を指定してGetClassFileを呼び出すと、Microsoft Word の有効な CLSID が生成されます。これは、実際にアプリケーション内からインスタンス化できます。OleCreateFromFile への呼び出しがまったく同じであるこのアプリケーションの古いバージョンでは、この問題は発生しません。

4

1 に答える 1

1

比較的簡単にできることは、Performance MonitorOleCreateFromFileを使用して、 APIの呼び出しとREGDB_E_CLASSNOTREG戻りの間のレジストリ アクティビティを追跡することです。照会されたレジストリ キーが表示されます。の下HKEY_CLASSES_ROOTで、API の試みに従ってオブジェクトをインスタンス化することができます。

于 2012-08-21T21:19:33.380 に答える