2008-11-03 269 views
0

我正在處理的示例調用CoCreateInstance類Microsoft_Office Excel工作表。它以0x80040514(「未註冊的類」)的HRESULT失敗。其他Excel類(Excel.Application)在系統上註冊,但不是用於工作表.....可以註冊這個類嗎?CoCreateInstance類Microsoft_Office Excel工作表失敗。 0x80040514「類未註冊」

更新:我正在使用Microsoft的DSOFramer示例項目。它首先嚐試使用IMoniker類進行綁定。如果失敗,它將調用CoCreateInstance作爲clsid。這可能適用於其他MS Office對象,但是當它是Excel時,該類將用於Worksheet。我將示例修改爲CoCreateInstance _Application,然後獲取工作簿,然後爲目標文件調用Workbooks :: Open,該文件返回一個Worksheet對象。然後,我返回該指針並與原始示例代碼路徑合併。現在都在工作。

回答

1

我相信你可能會有一個拙劣的安裝。我發現,當我的progId像這樣被損壞時,如果我修復安裝,它將註冊該類。

雖然我回到你的問題是,你爲什麼要創建一個表單對象?似乎你可以從工作簿對象中獲得一個。事實上,我認爲這可能是你無論如何需要做的。

+0

這實際上是我昨晚做的。當IMoniker綁定失敗時,Microsoft的DSOFramer示例項目爲clsid調用CoCreateInstance。我將示例修改爲CoCreateInstance _Application,然後導航對象以獲取工作表,然後與原始代碼合併。謝謝! – Steve 2008-11-04 17:12:03