类Microsoft_Office Excel工作表的CoCreateInstance失败。0x80040514“;“未注册的类别”;

类Microsoft_Office Excel工作表的CoCreateInstance失败。0x80040514“;“未注册的类别”;,excel,com,ole,Excel,Com,Ole,我正在处理的一个示例调用了类Microsoft_Office Excel工作表的CoCreateInstance。它失败,HRESULT为0x80040514(“类未注册”)。其他Excel类(Excel.Application)已在系统上注册,但不是工作表类…是否可以注册此类 更新:我正在使用微软的DSOFramer示例项目。它首先尝试使用IMoniker类绑定。如果失败,它将调用clsid的CoCreateInstance。这可能适用于其他MS Office对象,但如果是Excel,则该类用

我正在处理的一个示例调用了类Microsoft_Office Excel工作表的CoCreateInstance。它失败,HRESULT为0x80040514(“类未注册”)。其他Excel类(Excel.Application)已在系统上注册,但不是工作表类…是否可以注册此类


更新:我正在使用微软的DSOFramer示例项目。它首先尝试使用IMoniker类绑定。如果失败,它将调用clsid的CoCreateInstance。这可能适用于其他MS Office对象,但如果是Excel,则该类用于工作表。我将示例修改为CoCreateInstance\u应用程序,然后获取工作簿,然后为目标文件调用工作簿::Open,该文件返回一个工作表对象。然后,我返回该指针并与原始示例代码路径合并。现在一切正常。

我相信您的安装可能有问题。我发现,当我的progid像这样损坏时,如果我修复安装,它将注册该类


虽然我的问题是,为什么要创建图纸对象?似乎可以从工作簿对象中获取一个。事实上,我觉得这可能是你无论如何都需要做的事情。

这实际上是我昨晚做的事情。当IMoniker绑定失败时,Microsoft的DSOFramer示例项目为clsid调用CoCreateInstance。我将示例修改为CoCreateInstance\u应用程序,然后导航对象以获取工作表,然后与原始代码合并。谢谢