#import и MS Office XP
От: kirsav  
Дата: 28.10.02 18:07
Оценка:
Привет, All

Не работает код примера http://www.rsdn.ru/article/default.asp?vcpp/import.xml
Автор(ы): Игорь Ткачёв
Дата: 9.03.2001

В данной статье приводится объяснение работы директивы #import
компилятора Visual C++ и даны примеры её использования с
MS Word, MS Excel, ADO DB и ActiveX Control.
c MS Office XP Rus.
Делаю так:
// Office.h

// for MS Office XP
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\mso.dll"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office10\XL5en32.OLB" \
rename("DialogBox","_DialogBox") \
rename("RGB","_RGB") \
exclude("IFont","IPicture")

// Exempl.cpp
#include "stdafx.h"
#include <stdio.h>
#include "office.h"

void main()
{
::CoInitialize(NULL);
try {
using namespace Excel;
ApplicationPtr excel(L"Excel.Application");
excel->Visible = true;

// создаём новую книгу
WorkbookPtr book = excel->Workbooks->Add(); // здесь ошибка

} catch (_com_error& er) {
// обработка исключений

}
::CoUninitialize();
}

Не хочет компилироваться строка WorkbookPtr book = excel->Workbooks->Add()
В *.tlh видно, что Workbooks теперь не свойство как в MS Office 97 или 2000, а метод.
_variant_t Workbooks(const _variant_t & Index=vtMissing)

excel->Workbooks() компилируеся, но при выполнении вылетает с исключением.

Вообщем, никак не пойму как создать новую книгу. Кто делал, подскажите pls.

C 97м все работает, проверял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.