IHTMLDocument и IPersistFile
От: PigletCam  
Дата: 17.03.04 11:40
Оценка: 18 (1)
Появилась необходимость создать IHTMLDocument2 прям из файла HTML.
Взял за пример WALKALL с MSDN. Однако очень хотелось упростить этот пример.
Смотрим упрощенный кусок ниже. Без GetMessage(...) и DispatchMessage(...) статус документа не меняется.
Оно и понятно... Однако есть какие то косяки нверняка в таком подходе.
Тестировал на WindowsXP,ie6.0


    if( 0 == MultiByteToWideChar(CP_ACP, 0, szFileName, -1, wszURL, MAX_PATH*sizeof(OLECHAR)))
        return E_FAIL;
    LPPERSISTFILE  pPF;
    // MSHTML supports file persistence for ordinary files.
    if ( SUCCEEDED(hr = m_pHTML2->QueryInterface(IID_IPersistFile, (LPVOID*) &pPF)) )
        {
        MSG msg;
        TCHAR szBuff[MAX_PATH];
        CComBSTR bstrReadyState;
        hr = pPF->Load(wszURL, 0);
        long i=1000;
        while( i-- )
        {
            m_pHTML2->get_readyState(&bstrReadyState);
            if( bstrReadyState==_T("complete") )
                break;
            if( GetMessage(&msg, NULL, 0, 0) )
                DispatchMessage(&msg);
        }
        pPF->Release();
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.