Отвечает Гаряка Асмик (Профессор) :
Здравствуйте, Roland Deschain!
Данная функция - реализация интерфейса COM по извлечению архива. STDMETHODIMP определяется как функция, возвращающая HRESULT.
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE HRESULT - это тип, который в COM используется для возврата результата работы функции STDMETHODCALLTYPE определяется как __stdcall - стандартный для С способ вызова аргументов CHandler - класс, метод которого разбирается IArchiveExtractCallback - это указатель на интерфейс,
функции из которого реализуют непосредственно архивацию Интерфейс - это определение набора функций, в языке С++ в синтаксисе его нет, поэтому интерфейс в нем - абстрактный класс COM_TRY_BEGIN определяется как try { В начале функции проверяются аргументы и возвращается E_INVALIDARG при некорректных данных extractCallback->SetTotal(_packSize); вызывается функция IArchiveExtractCallback _packSize - член класса CHandler CMyComPtr<ISequentialOutStr
eam> realOutStream; - создается выходной поток Макрос RINOK определяется как #define RINOK(x) { HRESULT __result_ = (x); if(__result_ != S_OK) return __result_; } CXzUnpackerCPP - структура с двумя буферами Byte *InBuf; Byte *OutBuf;
----- Я ни от чего, ни от кого не завишу.
Ответ отправил: Гаряка Асмик (Профессор)
Ответ отправлен: 28.11.2010, 01:01
Номер ответа: 264364
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264364
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.