IEncodingFilterFactory::GetDefaultFilter() возвращает E_FAIL
От: Errar  
Дата: 17.02.12 23:19
Оценка:
пишу код, распаковывающий возвращаемые http-сервером ответ сжатый gzip.

...
CoInitialize(NULL);
IEncodingFilterFactory *pEflt = NULL;
IDataFilter *pDF = NULL;

HRESULT rc = CoCreateInstance(CLSID_StdEncodingFilterFac, NULL, CLSCTX_INPROC_SERVER, IID_IEncodingFilterFactory, (LPVOID*)&pEflt);
if(FAILED(rc)) return -3;

rc = pEflt->GetDefaultFilter((LPCWSTR)("gzip"), (LPCWSTR)("text"), &pDF); //тут почему-то E_FAIL, pDF остается NULL
...

Что нужно поправить, чтобы GetDefaultFilter отрабатывал то что нужно?
Re: IEncodingFilterFactory::GetDefaultFilter() возвращает E_
От: Michael Chelnokov Украина  
Дата: 18.02.12 06:57
Оценка: 2 (2)
Здравствуйте, Errar, Вы писали:

E>rc = pEflt->GetDefaultFilter((LPCWSTR)("gzip"), (LPCWSTR)("text"), &pDF); //тут почему-то E_FAIL, pDF остается NULL


L"gzip", L"text"
Приведением указателя ты лишь обманул компилятор, а не перевел текст из char в WCHAR.
Re[2]: IEncodingFilterFactory::GetDefaultFilter() возвращает
От: Errar  
Дата: 18.02.12 16:16
Оценка:
MC>L"gzip", L"text"

Спасибо, помогло. (LPCWSTR)("gzip") конвертит в иероглифы...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.