Обработка Ошибок от Вызванных Функций
Когда acedInvoke() возвращает RTNORM, это подразумевает, что внешняя функция была вызвана и возвращена успешно. Это не подразумевает, что внешняя функция успешно получила результат; чтобы получить эту информацию, ваша программа должна осмотреть параметр результата. Если внешняя функция успешна и предполагается к возвращаемым значениям, результат указывает на список буфера результата, содержащий один или большее количество значений. Если внешняя функция потерпела неудачу, параметр результата установлен в NULL.
Параметр результата - также NULL, если внешняя функция не возвращает результат.
Следующий типовой кодовый фрагмент проверяет возвращаемое значение внешней функции, которая, как ожидается, возвратится один или большее количество значений результата:
struct resbuf *xfcnlist, *xresults;
// Build the invocation list, xfcnlist.
rc = acedInvoke(xfcnlist, &xresults);
if (rc != RTNORM) {
// Couldn't call the function—report this error (or even abort).
return BAD;
}
if (xresults == NULL) {
// Function was called but returned a bad result.
return BAD;
}
// Look at return results and process them.