2013-07-24 9 views
5

を使用してパワーポイント文書を開いているときに、COMコンポーネントの呼び出しからHRESULT E_FAILが返されました。パワーポイントファイルを開こうとしている間、HRESULT E_FAILエラーが発生しました。コードにはさらに多くの部分がありますが、エラーを受け取る非常に基本的な操作は、下のコードブロックに示されています。使用されている参照DLLは、Office 14.0.0およびMicrosoft.Office.Interop.Powerpoint 14.0.0です。エラーC#

これは非常に基本的な操作ですが、なぜCOM例外について不平を言っているのかわかりません。 Microsoft Office 2010 32ビット版Service Pack 1がマシンにインストールされています。

+0

"powerpoint 0x80004005"についてGoogleにお試しくださいましたか?最も一般的な間違いは、誰かがASP.NETからOffice interopを使用しようとしていることです(これは既に大きな間違いです)、ASP.NETプロセス/ユーザーはファイルへのアクセス権を失います。 – cremor

+0

'ネットワークDTCアクセス'から 'No Authentication Required'を選択しようとしましたか? –

+0

これに根本的な答えが見つかりましたか?私は2つの呼び出しの間にすべてのVSTO/COMオブジェクト(refcount = 0)が解放されていても、このエラーが.Openへの2回目の呼び出しで発生するテストケースを持っています。 –

答えて

1

プレゼンテーションを開く前にPowerpointを表示する必要があります。右この新しいApplicationオブジェクトの呼び出しを作成した後:これはまだ例外が解決しない場合は

application.Visible = MsoTriState.msoTrue; 

あなたは、例外の詳細を投稿する必要があります。プロパティの中のどこか(または内部の例外)、それは正確に何が失敗したかを示すはずです。

+0

それはそれのポイントです。明確な例外はありません。私は、メタデータ情報を削除するか、別の形式で保存するなど、プレゼンテーションで複雑な作業を行うために、少なくともこの基本コードを使用してきました。スニペットは、アプリケーションを表示するかどうかにかかわらず、プレゼンテーションを開くための非常に基本的なものです。このエラーには説明はなく、内部例外はnullです。最近追加したマシンまたはサービスパックにインストールされているOfficeアプリケーションに問題があるかどうかは不明です。 – phoenix

+0

正確なエラー:System.Runtime.InteropServices.COMException(0x80004005):エラーHRESULT E_FAIL h がCOMコンポーネントの呼び出しから返されました。 Microsoft.Office.Interop.PowerPoint.Presentations.Openで (文字列ファイル名、女史 oTriState読み取り専用、MsoTriState無題、MsoTriState WithWindow) – phoenix

+1

FWIW、PowerPointは限り、あなたが開くと、プレゼンテーションを開くために見えるようにする必要はありません。ウィンドウなしのプレゼンテーション問題はすべてのファイルで発生するのでしょうか? PPTで同じファイルを手動で開こうとするとどうなりますか? –

0

私はまったく同じ問題を抱えていました。私は数日間ソリューションを探しました。 最後に私はそれを見つけました。

MS Office 2010をインストールするときは、Office CDに「Office共有機能」とPowerpointを一緒にインストールする必要があります。 「Office共有機能」をインストールした後、すべて正常です。