Qwertiy писал(а):Т. е. мы выполняем нужную функцию, а потом возвращаем код ошибки.
А, кажется понял. Члены класса как раз и должны возвращать код ошибки.
В COM реальным возвращаемым значением является HRESULT, а то возващаемое значение, с которым стакливается ВУ-программист, возвращается через последний аргумент.
Qwertiy писал(а):А что произошло бы, если бы мы просто вызвали функцию, без On Error, ну и без возврата кода соответственно?
На уровне классов в VB для передачи информации об ошибках используется HRESULT и IErrorInfo.
На уровне обычных модулей используется генераций исключений и их обработка.
Если бы мы не обрамили вызов оригинального метода с помощью OnError/Err.number, то сгенерировалось бы исключение, которое ушло бы в вызывающую сторону (Download Master). Может быть он (DM) бы обработал его и ругнулся, может быть он не обработал его, и программа бы «упала» совсем.