tCurl:   ïðîòîòèïû ôóíêöèé è ïðîöåäóð

Ôóíêöèè îáðàòíîãî âûçîâà
  ( ÄÎËÆÍÛ áûòü îáúÿâëåíû ñ äèðåêòèâîé cdecl . )

function ProgressCallback(
  clientp:pointer; dltotal, dlnow, ultotal, ulnow:double):LongInt; cdecl;

function PasswordCallback(
  clientp:pointer; prompt:pChar; buffer:pChar; buflen:LongInt):LongInt; cdecl;

function DebugCallback(
  handle:pCurl; infotype:CurlInfoType;  data:pChar; size:DWORD; userp:pointer):LongInt; cdecl;

function WriteCallback(
  buffer:pChar; size:DWORD; nitems:DWORD; stream:pointer):DWORD; cdecl;

function ReadCallback(
  buffer:pChar; size:DWORD; nitems:DWORD; stream:pointer):DWORD; cdecl;

function HeaderCallback(
  buffer:pChar; size:DWORD; nitems:DWORD; stream:pointer):DWORD; cdecl;



Îáðàáîò÷èêè ñîáûòèé
  ( äîëæíû áûòü îïðåäåëåíû êàê ìåòîäû äðóãîãî îáúåêòà. )

procedure SomeObj.CurlOnProgress(
  Sender:tObject; BytesTotal, BytesNow:longint; var bContinue:Boolean);

procedure SomeObj.CurlOnDebug(
  Sender:tObject; infotype:CurlInfoType; data:pChar; len:DWORD;  var bContinue:boolean);

procedure SomeObj.CurlOnPassword(
  Sender:tObject; const prompt:string; var pwd:string; var bContinue:Boolean);

procedure SomeObj.CurlOnHeader(
  Sender:tObject; header:string; var bContinue:Boolean);

procedure SomeObj.CurlOnReceive(
  Sender:tObject; data:pointer; len:DWORD; var bContinue:Boolean);

procedure SomeObj.CurlOnTransmit(
  Sender:tObject; data:pointer; var len:DWORD);