Установка столбца Excel для автофита с использованием C ++ и Com Automation не сбоиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Установка столбца Excel для автофита с использованием C ++ и Com Automation не сбои

Сообщение Anonymous »

Я пытаюсь установить столбец Excel на ширину автофитов с помощью Com Automation. Я получаю нарушение доступа при вызове. Я знаю, что диапазон, который указывает на столбец, в порядке, потому что я могу использовать его для изменения цвета, например. < /P>
Это мой код < /p>
DISPID dispid1;
dispid1 = GetDispID(pWorksheet, L"Columns");
VARIANT arg;
arg.vt = VT_I4;
arg.intVal = col;
DISPPARAMS dp = {
&arg, NULL, 1, 0
};
VariantInit(&vResult);
hr = pWorksheet->Invoke(dispid1, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET, &dp, &vResult, NULL, NULL);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
pRange = vResult.pdispVal;
if (!pRange) {
return;
}

DISPID dispid2;
OLECHAR* szAutoFit = L"AutoFit";
hr = pRange->GetIDsOfNames(IID_NULL, &szAutoFit, 1, LOCALE_USER_DEFAULT, &dispid2);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
// the below call displays an access violation
hr = pRange->Invoke(dispid2, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, NULL, NULL,
NULL, NULL);

if (FAILED(hr)) {
ShowMessage("fail");
return;
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... tion-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»