Как получить изображение из интерфейса IHTMLImgElement.

Тема в разделе "WASM.WIN32", создана пользователем qwerty_9876, 19 апр 2009.

  1. qwerty_9876

    qwerty_9876 New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    47
    Здравствуйте!

    У меня есть интерфейс IWebBrowser2, используя его я могу получить по цепочке следующие интерфейсы: IWebBrowser2-> IHTMLDocument2-> IHTMLElementCollection-> IHTMLElement-> IHTMLImgElement, из интерфейса IHTMLImgElement я могу получить различные параметры картинки, но не могу получить саму загруженную картинку.

    Как вариант использовал следующий код для получения картинки:

    IOleCommandTarget* pCT;
    CComVariant vGlyphTableEntry;
    vGlyphTableEntry = "c:\\temp.jpg";

    if (pElemDispatch->QueryInterface(__uuidof(IOleCommandTarget), (void**)&pCT)==S_OK)
    {
    pCT->Exec(&CGID_MSHTML, IDM_SAVEPICTURE , OLECMDEXECOPT_DONTPROMPTUSER ,&vGlyphTableEntry, 0);
    pCT->Release();
    }

    Но этот пример показывает диалоговое окно “сохранить как”, хотя, исходя из параметров не должен.

    Посоветуйте, как можно еще получить картинку?

    Просьба не предлагать функцию URLDownloadToFile, т.к. она не во всех случаях работает, например, эта функция не сохранит картинку, если требуются Куки для получения картинки.
     
  2. Gnil

    Gnil New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    41
    Как получить битмап не знаю. Но в качестве альтернативы предлагаю FindFirstUrlCacheEntry вместо URLDownloadToFile, чтобы найти картинку в кеше.
     
  3. qwerty_9876

    qwerty_9876 New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    47
    Это если в кеше она есть, но такое бывает не всегда, не все картинки кешатся, спасибо за предложение.
     
  4. planet

    planet New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    108
    да ну, в кеше она всегда будет, другой вопрос что может быть недоступна через FindFirstUrlCacheEntry или удалиться после закрытия браузера.
    поищи на codeproject, там такое было с граблями типа перехвата диалога 'сохранить как'.