2008-11-03 1 views
0

Образец Я работаю над вызовами CoCreateInstance для класса Microsoft_Office Excel Worksheet. Он не работает с HRESULT 0x80040514 («Класс не зарегистрирован»). Другие классы Excel (Excel.Application) зарегистрированы в системе, но не та, что для Worksheet ..... Возможно ли зарегистрировать этот класс?CoCreateInstance не работает для класса Microsoft_Office Excel Worksheet. 0x80040514 «Класс не зарегистрирован»

Обновление: Я использую образец образца DSOFramer от Microsoft. Сначала он пытается связать, используя класс IMoniker. Если это не удается, он вызывает CoCreateInstance для clsid. Это может работать и для других объектов MS Office, но когда это Excel, класс предназначен для рабочего листа. Я изменил образец на CoCreateInstance _Application, затем получил книги, а затем назвал Workbooks :: Open для целевого файла, который возвращает объект Worksheet. Затем я вернул этот указатель и объединился с исходным примером кода кода. Теперь все работает.

ответ

1

Я считаю, что у вас может быть неудачная установка. Я обнаружил, что когда мои progIds повреждены, как если бы я исправил установку, что он зарегистрирует этот класс.

Хотя мой вопрос к вам: почему вы пытаетесь создать объект листа? Похоже, вы можете получить один из объекта Workbook. На самом деле я чувствую, что это, вероятно, то, что вам нужно будет сделать в любом случае.

+0

Это на самом деле то, что я делал прошлой ночью. Образец проекта DSOFramer от Microsoft вызывает CoCreateInstance для clsid при сбое привязки IMoniker. Я изменил образец на CoCreateInstance _Application, затем переместил объекты, чтобы получить рабочий лист, а затем объединился с исходным кодом. Благодаря! – Steve 2008-11-04 17:12:03

Смежные вопросы