Visual Basic и SetErrorInfo

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Visual Basic и SetErrorInfo

Sipulcator » 30 апр 2005, 04:41

Блин, что за форум такой, сам задал вопрос, сам ответил.
Короче если кому интересно, так сказать для аналов:


Исключение в COM сервере генерируется так:

ICreateErrorInfo *pICreateErr;
HRESULT hr = CreateErrorInfo(&pICreateErr);
if (FAILED(hr))
{
return E_FAIL;
}
pICreateErr->SetSource(L"My shit");
pICreateErr->SetDescription(L"Washed off");
// Сюда всё остальное, что захочется
IErrorInfo *pIErrorInfo = NULL;
hr = pICreateErr->QueryInterface(IID_IErrorInfo, (void **) &pIErrorInfo);
if (SUCCEEDED(hr))
{
SetErrorInfo(0L, pIErrorInfo);
pIErrorInfo->Release();
}
pICreateErr->Release();
return E_FAIL;

Обязательно надо возвращать E_FAIL, иначе VB на исключение забивает.
Дальше в VB обрабатывать это исключение стандартным образом.

on Error goto err // как-то так

// программа
Exit Sub
err:
// Действия при сбое
End Sub

Visual Basic и SetErrorInfo

Sipulcator » 07 апр 2005, 05:55

Как обработать ошибку в VisualBasic, сгенерированую COM-сервером с помощью SetErrorInfo?

Вернуться к началу