Конференция "WinAPI" » Wininet: функция FtpCommand()
 
  • Smb © (23.07.08 07:53) [0]
    Пробема следующая:
    Хочу заюзать FtpCommand() из WinAPI. Столкнулся с трудностью получения результатов команды.
    Начал ковырять. Обнаружил что объявление этой функции в дельфийском файле WinInet.pas отличается от приведенного в MSDN( у функции в MSDN есть дополнительный обязательный параметр ). Все найденные примеры используют вариант с этим параметром (__out  HINTERNET *phFtpCommand). На одном сайте (http://www.cryer.co.uk/brian/delphi/wininet.htm#FtpCommand) вообще написано что в Delphi 5, 6, 7 (и предположительно в следующих) о_ш_и_б_к_а! Ну то
    есть неправильно объявлена эта функция: пропущен этот параметр. Может кто сталкивался с такой проблемой? Подскажите что делать, пожалуйста.
  • clickmaker © (23.07.08 10:36) [1]
    ну переобъяви, в чем проблема
    function MyFtpCommand(hConnect: HINTERNET; fExpectResponse: LongBool; dwFlags: DWORD; lpszCommand: PChar; dwContext: Pointer; phFtpCommand: PHINTERNET): LongBool; stdcall; external 'wininet.dll' name 'FtpCommandA';
  • Anatoly Podgoretsky © (23.07.08 11:31) [2]
    Откуда такие дикие предположения, прототип приведеный в MSDN соответствует объявлению в WinInet.pas

    BOOL WINAPI FtpCommand(
     HINTERNET hConnect,
     BOOL fExpectResponse,
     DWORD dwFlags,
     LPCTSTR lpszCommand,
     DWORD dwContext
    );

  • Smb © (23.07.08 17:55) [3]

    > ну переобъяви, в чем проблема

    хм... интересно. попробую вечерком. до этого пробовал переобъявлять в WinInet.pas но ничего не вышло так как не компилилось, а с make немного попарился и плюнул...


    > Откуда такие дикие предположения

    отсюда:
    http://msdn.microsoft.com/en-us/library/aa384133.aspx

    а ваше предположение отсюда если не ошибаюсь (и касается оно по всей видимости только Windows CE:
    http://msdn.microsoft.com/en-us/library/aa452208.aspx
  • Smb © (23.07.08 18:05) [4]
    Вопрос переместившему обсуждение сюда из ветки WinAPI (полагаю это уважаемый модератор):
    Скажите, а исходя из чего вы переместили этот топик сюда? Слово "ftp" конечно относится к сетям, однако меня в рамках топика волнует именно вопрос странного объявления API-функции...
  • Anatoly Podgoretsky © (23.07.08 18:20) [5]
    > Smb  (23.07.2008 17:55:03)  [3]

    Действительно, тут я виноват не обратил внимание на верхушку дерева, обрадовался, что сразу нашел нужное.

    http://msdn.microsoft.com/en-us/library/aa452208.aspx
  • имя (23.07.08 18:21) [6]
    Удалено модератором
  • app © (23.07.08 18:22) [7]
    > Smb  (23.07.2008 18:05:04)  [4]

    Перенесу, но данный факт надо было подчеркнуть особо, чтобы даже поползновений не было.
  • smb © (01.08.08 09:45) [8]
    В общем попарился я с этим и плюнул. FtpCommand() нормально работает с параметрами из WinInet.pas. Результат можно получить функцией InternetGetLastResponseInfo(). Однако уж больно все закручено у них. Посылает команды которые я не просил посылать. С памятью траблы и т.д.
    Я не стал дальше мучаться и написал своего FTP-клиента на сокетах. Благо функционал  мне требовался небольшой. Всего то download, upload, delete, list, resume. Там правда была запарка с неблокирующимим режимами сокета-сервера, но это уже выходит за рамки данного вопроса. Всем спасибо за помощь.
 
Конференция "WinAPI" » Wininet: функция FtpCommand()
Есть новые Нет новых   [134434   +28][b:0][p:0.001]