IDispatch* spDisp =NULL;
IHTMLDocument2* spDoc2 ;HRESULT rs = spDoc2->get_Script( &spDisp);错误 了错误rs 是个负值
spDisp是ox000000000

解决方案 »

  1.   

    IHTMLDocument2* spDoc2 ;???
    没给它赋值怎么能直接用呢?
      

  2.   

    void GetDocInterfacex(HWND hWnd)
    {
    CoInitialize( NULL );
    HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") );
    if ( hInst != NULL )
    {
    if ( hWnd != NULL )
    {
    HWND hWndChild=NULL;
    ::EnumChildWindows( hWnd, EnumChildProc, (LPARAM)&hWndChild );
    if ( hWndChild )
    {
    CComPtr<IHTMLDocument2> spDoc;
    LRESULT lRes; UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
    ::SendMessageTimeout( hWndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes ); LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
    if ( pfObjectFromLresult != NULL )
    {
    HRESULT hr;
    hr = (*pfObjectFromLresult)( lRes, IID_IHTMLDocument, 0, (void**)&spDoc );
    if ( SUCCEEDED(hr) )
    {
    printf("sdsdsdssdsdsdsd\r\n");
    FilterWeb(spDoc);
    }
    }
    }

    ::FreeLibrary( hInst );

    CoUninitialize();
    }
      

  3.   

    以上函数应该不存在内存问题,建议查一下FilterWeb函数。