2008-11-03 4 views
0

샘플 작업 중입니다. Microsoft_Office Excel 워크 시트의 CoCreateInstance를 호출합니다. 0x80040514의 HRESULT ("클래스가 등록되지 않음")와 함께 실패합니다. 다른 Excel 클래스 (Excel.Application)는 시스템에 등록되어 있지만 워크 시트에는 등록되어 있지 않습니다.이 클래스를 등록 할 수 있습니까?클래스 Microsoft_Office Excel 워크 시트에 대해 CoCreateInstance가 실패합니다. 0x80040514 "클래스가 등록되지 않았습니다."

업데이트 : Microsoft의 DSOFramer 샘플 프로젝트를 사용하고 있습니다. 먼저 IMoniker 클래스를 사용하여 바인딩을 시도합니다. 실패했을 경우는, clsid의 CoCreateInstance를 호출합니다. 이 기능은 다른 MS Office 개체에서도 작동하지만 Excel 인 경우 클래스는 워크 시트 용입니다. 샘플을 CoCreateInstance _Application으로 수정 한 다음 통합 문서를 가져온 다음 Workbooks 개체를 반환하는 대상 파일에 대해 Workbooks :: Open이라고합니다. 그런 다음 해당 포인터를 반환하고 원래 샘플 코드 경로로 다시 병합했습니다. 모두 일하고있어.

답변

1

설치가 잘못되었다고 생각됩니다. 설치 프로그램을 수리하면 내 프로 그램이 손상되어 그 클래스를 등록한다는 것을 발견했습니다.

제 질문으로 돌아 가면 왜 시트 객체를 만들려고합니까? Workbook 객체에서 하나를 가져올 수있는 것처럼 보입니다. 사실 나는 이것이 어쨌든 당신이해야 할 일이라고 생각합니다.

+0

이것은 실제로 제가 지난 밤에 한 일입니다. Microsoft의 DSOFramer 샘플 프로젝트는 IMoniker 바인딩이 실패 할 때 clsid에 대해 CoCreateInstance를 호출합니다. 샘플을 CoCreateInstance _Application으로 수정 한 다음 오브젝트를 탐색하여 워크 시트를 가져온 다음 원래 코드와 병합했습니다. 감사! – Steve

관련 문제