Здравствуйте, господа!
Есть следующий код:
void PutFile(str 50 proxy, str 50 url, str 50 login, str 50 pass, str 50 local, str 50 remote)
{
DLL InetDll = new DLL('wininet');
DLLFunction InternetOpen = new DLLFunction(InetDll, 'InternetOpenA');
DLLFunction InternetConnect = new DLLFunction(InetDll, 'InternetConnectA');
DLLFunction FTPPutFile = new DLLFunction(InetDll, 'FtpPutFileA');
DLLFunction InternetCloseHandle = new DLLFunction(InetDll, 'InternetCloseHandle');
int res;
InternetOpen.returns(ExtTypes:

Word);
InternetOpen.arg(ExtTypes::String);
InternetOpen.arg(ExtTypes:

Word);
InternetOpen.arg(ExtTypes::String);
InternetOpen.arg(ExtTypes::String);
InternetOpen.arg(ExtTypes:

Word);
hInternet = InternetOpen.call('Ax30', 3, proxy, '', 0);
InternetConnect.returns(ExtTypes:

Word);
InternetConnect.arg(ExtTypes:

Word);
InternetConnect.arg(ExtTypes::String);
InternetConnect.arg(ExtTypes::Word);
InternetConnect.arg(ExtTypes::String);
InternetConnect.arg(ExtTypes::String);
InternetConnect.arg(ExtTypes:

Word);
InternetConnect.arg(ExtTypes:

Word);
InternetConnect.arg(ExtTypes:

Word);
hConnect = InternetConnect.call(hInternet, url, 21, login, pass, 1, 0, 0);
FTPPutFile.returns(ExtTypes:

Word);
FTPPutFile.arg(ExtTypes:

Word);
FTPPutFile.arg(ExtTypes::String);
FTPPutFile.arg(ExtTypes::String);
FTPPutFile.arg(ExtTypes:

Word);
FTPPutFile.arg(ExtTypes:

Word);
res = FTPPutFile.call(hConnect, local, remote, 2, 0);
InternetCloseHandle.returns(ExtTypes::Word);
InternetCloseHandle.arg(ExtTypes:

Word);
InternetCloseHandle.call(hConnect);
InternetCloseHandle.call(hInternet);
}
Переменные hItnernet и hConnect объявлены в cassDeclaration
В таком виде данная ф-ция прекрасно работает, но хотелось бы чтобы каждая ф-ция из DLL была в отдельной ф-ции класса. В этом случае работать сразу перестает (ф-ция InternetConnect возвращает ошибку). В Delphi и VB такой механизм работает.
Где глюк????