ActiveX с нуля


Возврат кодов ошибок из методов.


Для того, чтобы сообщить контейнеру, что произошла ошибка в методе, Вы должны использовать метод COleControl::ThrowError. Этот метод имеет параметр SCODE ( status code ). Вы можете использовать свой код для SCODE или применять один из определенных. Этот метод можно применять только для методов или для функций Get/Set. В остальных случаях Вы должны вызвать метод COleControl::FireError. Этот метод также использует в качестве параметра код типа SCODE.

Таблица 3. Коды ошибок для ActiveX

Ошибка

Описание

CTL_E_ILLEGALFUNCTIONCALL

Неправильный вызов функции

CTL_E_OVERFLOW

Переполнение

CTL_E_OUTOFMEMORY

Вне памяти

CTL_E_DIVISIONBYZERO

Деление на ноль

CTL_E_OUTOFSTRINGSPACE

Вне диапазона строки

CTL_E_OUTOFSTACKSPACE

Вне диапазона стека

CTL_E_BADFILENAMEORNUMBER

Плохое имя файла или число

CTL_E_FILENOTFOUND

Файл не найден

CTL_E_BADFILEMODE

Неверный режим файла

CTL_E_FILEALREADYOPEN

Файл уже открыт

CTL_E_DEVICEIOERROR

Ошибка устройства ввода/вывода

CTL_E_FILEALREADYEXISTS

Файл уже существует

CTL_E_BADRECORDLENGTH

Плохая длина записи

CTL_E_DISKFULL

Диск переполнен

CTL_E_BADRECORDNUMBER

Плохой номер записи

CTL_E_BADFILENAME

Плохое имя файла

CTL_E_TOOMANYFILES

Слишком много файлов

CTL_E_DEVICEUNAVAILABLE

Устройство недоступно

CTL_E_PERMISSIONDENIED

Доступ запрещен

CTL_E_DISKNOTREADY

Диск не готов

CTL_E_PATHFILEACCESSERROR

Ошибка доступа к файлу

CTL_E_PATHNOTFOUND

Путь не найден

CTL_E_INVALIDPATTERNSTRING

Неверный образец

CTL_E_INVALIDUSEOFNULL

Неверное использование NULL

CTL_E_INVALIDFILEFORMAT

Неверный формат файла

CTL_E_INVALIDPROPERTYVALUE

Неверное значение свойства

CTL_E_INVALIDPROPERTYARRAYINDEX

Неверный индекс в массиве свойств

CTL_E_SETNOTSUPPORTEDATRUNTIME

Установка свойства не поддерживается во время выполнения программы

CTL_E_SETNOTSUPPORTED

Установка свойства не поддерживается (свойство только читается)

CTL_E_NEEDPROPERTYARRAYINDEX

Необходим индекс в массиве свойств

CTL_E_SETNOTPERMITTED

Установка свойства не разрешено

CTL_E_GETNOTSUPPORTEDATRUNTIME

Получение свойства не поддерживается во время выполнения программы

CTL_E_GETNOTSUPPORTED

Получение свойства не поддерживается (свойство только устанавливается)

CTL_E_PROPERTYNOTFOUND

Свойство не найдено

CTL_E_INVALIDCLIPBOARDFORMAT

Неверный формат для буфера обмена

CTL_E_INVALIDPICTURE

Неверный формат рисунка

CTL_E_PRINTERERROR

Ошибка принтера

CTL_E_CANTSAVEFILETOTEMP

Не могу сохранить файл в TEMP

CTL_E_SEARCHTEXTNOTFOUND

Не найден указанный текст

CTL_E_REPLACEMENTSTOOLONG

Текст для замены слишком длинный

Для определения своего кода Вы можете использовать макрос CUSTOM_CTL_SCODE . Параметр для этого макроса должен лежать в диапазоне от 1000 до 32767 включительно. Например:

#define MYCTL_E_SPECIALERROR CUSTOM_CTL_SCODE(1000)




Начало  Назад  Вперед