Maks150988
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ммм, неужели тут никто не может помочь... =) Я правда, если честно, не знаю, но уже прям принцип доделать плагин. Автор перевоначального исходника не желает давать свою реализацию, подозреваю что там уж слишком "подсудный" для него код то что возвратит сервер на его запрос о биллинге. Вобщем ситуция такова. Есть: Код: type FN_HTTPDOWNLOAD = function(szURL : PChar; szMethod: PChar; szArgs: PChar; szReferrer : PChar; szContentType : PChar; pBuffer : pBYTE; dwMaxBufferLen : DWORD) : DWORD; stdcall; | И надо сделать через эту функцию обратного вызовы отправку POST запроса на сервер. Что-то типа этого. Код: //Состояние записи, получение данных //const char* szAccount - Логил //const char* szPassword - Пароль //double* dBalance - Баланс //double* dOverdraft - Овердрафт //double* dActive - Активные сессии (если есть) //double* dMinutes - Минуты (если есть) //char* szTarif - Тарифный план //DWORD dwMaxTarifLen - Максимальная длина буффера //char* szMessage - сообщение об ошибке //DWORD dwMaxMessageLen - Максимальная длина буффера //FN_HTTPDOWNLOAD httpDownload - указатель на функцию (см. объявление FN_HTTPDOWNLOAD) function GetAccountState(szAccount : PChar; szPassword : PChar; dBalance : pDouble; dOverdraft : pDouble; dActive : pDouble; dMinutes : pDouble; szTarif : PChar; dwMaxTarifLen : DWORD; dwTarifDays : pDWORD; dwTarifDaysLeft : pDWORD; szMessage : PChar; dwMaxMessageLen : DWORD; httpDownload : FN_HTTPDOWNLOAD) : BOOL; stdcall; begin httpDownload(PChar('http://адрес'), PChar('POST'), PChar(Format('username=%s&password=%s', [szAccount, szPassword])), nil, PChar('Content-Type: application/x-www-form-urlencoded'), Фиг знает что тут, dwMaxMessageLen); Result := TRUE; end; | Вот хотелось бы узнать как значение для pBuffer : pBYTE прописать в callback функции httpDownload. И правильно ли сувать dwMaxMessageLen в callback заместо dwMaxBufferLen? Понятно что это длина буфера, ну и так по описанию тоже понятно и вроде бы в pBuffer должна возвратиться вся полученная информация, которую мы и должны затем обработать как нам нужно? так это или не так? Для меня это просто ново все и хотелось бы убедиться, тем более в плагине идет работа с указателями. Надо ли понимать что отпарсенный результат уже в удобочитаемом виде мы должны будем поместить, например, в переменную dBalance, которая pDouble и так далее? Если это так, скажите как привести тип String к типу pDouble (искал в яндексе/гугле, но результаты не увенчались успешным поиском). Спасибо. |