| Операция | Имя файла | Поток | Колбек | Событие |
| Приём данных | OutputFile | OutputStream | WriteFunction | OnReceive |
| Передача данных | InputFile | InputStream | ReadFunction | OnTransmit |
| Получение заголовков | HeaderFile | HeaderStream | HeaderFunction | OnHeader |
Если назначен поток, то имя файла будет игнорироваться.
Если назначено имя файла, то поток будет игнорироваться.
Если назначен колбек, то событие будет игнорироваться.
Если назначено событие, то колбек будет игнорироваться.
Если не указаны входные или выходные обработчики (события или колбеки) и не указаны имена файлов,
то tCurl будет использовать дескрипторы стандартного ввода или вывода текущей консоли. Это может вызвать проблемы с оконными приложениями на Delphi, для которых нет текущей консоли.
Если назначен колбек, то имя файла будет игнорироваться.
В этом случае за обработку и предоставление данных полностью отвечает колбек.
Если назначено событие, то имя файла будет использовано, а именно,
данные будут писаться в файл И передаваться событию.
Однако, ни в коем случае НЕ проводите каких-либо операций ввода-вывода над файлом
ИЗНУТРИ события! Событие использует собственный внутренний колбек для взаимодействия с библиотекой, и параметрself передаётся параметру "поток" колбека. Это позволяет нескольким экземплярам свободно использовать один внутренний колбек, не мешая при этом друг другу. В этом случае, поток из свойства не зависит от потока из колбека.
Поток и другие свойства доступны изнутри события через параметр Sender, например:
tCurl(Sender).HeaderStream;
Поток может быть указателем на любые данные, которые нужно передать своему колбеку или событию. Это не обязательно должен быть файловый поток.
Однако...
Если назначен поток, и НЕ используюется собственные колбек или событие, то libcurl будет считать это
C-подобным файловым потоком.
В этом случае он (поток) ДОЛЖЕН быть валидным указателем на FILE, созданным функцией
fopen() стандарта ANSI-C.