Здравствуйте Cory, Вы писали:
C>Уже читал, спасибо за подсказку. Проблему однако это не решило.
C>Директива #import и все прочее, насколько я понял, в состоянии помочь только в случае с небольшими и несложными объектами. MS Excel для нее сложненький, видимо, потому что в одном только .tlh он мне дает 118 ошибок.
Да нет, #import помогает в львиной доле случаев. (мы все еще о VC говорим?

)
Просто при включении надо разрешать конфликты имен.
Вот, я кому-то уже делал компилируемый пример (только файлики .dll и .olb надо в текущий каталог программы перетащить):
#import "mso9.dll" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")
#import "vbe6ext.olb" no_namespace
#import "excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
#pragma warning (disable:4192)
void main()
{
CoInitialize(NULL);
using namespace Excel;
_ApplicationPtr pXL;
try
{
pXL.CreateInstance(L"Excel.Application");
pXL->Visible = VARIANT_TRUE;
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbookPtr pBook = pBooks->Add((long)xlWorksheet);
_WorksheetPtr pSheet = pXL->ActiveSheet;
pSheet->Range["A1:A10"]->Value = 100L;
pSheet->Range["A11"]->Value = "=SUM(A1:A10)";
}
catch(_com_error &e)
{
MessageBox(0, e.Source()+" "+e.Description()+" "+e.ErrorMessage(),
"Error!", MB_OK);
}
CoUninitialize();
}
C>А в гиде к ВБ (у меня в MSDN, по крайней мере) информация довольно скудная и все равно остается непонятным как эти интерфейсы с минимальными потерями использовать в VC. Я не хочу ручками прописывать GUIDы и описания интерфейсов
. От тако та. Если я в чем-то неправ — вразумите пожалуйста.
Тогда надо читать MSDN->Office developer documentation->Office 2000 documentation->Microsoft Office 2000 Language Reference.
Причем IT дал универсальный совет: чтобы узнать, как что-то сделать программно, надо включить запись макросов и сделать это ручками. А потом макрос в программу на C++ перевести — как два байта переслать