Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Cách sử dụng IHTMLDocument2 ???

  1. #1
    Ngày gia nhập
    07 2008
    Bài viết
    27

    Mặc định Cách sử dụng IHTMLDocument2 ???

    Làm thế nào để viết 1 đoạn HTML vào WebBrowser bằng IHTMLDocument2.
    Hàm write, writeln phải dùng biến SAFEARRAY, mình k0 hiểu cách dùng ntn ?!

  2. #2
    Ngày gia nhập
    01 2009
    Bài viết
    89

    Làm thế nào để viết 1 đoạn HTML vào WebBrowser bằng IHTMLDocument2.
    Cái này trong topic Get Prodic's data mình có code cụ thể đó. Ở trong box VC++ project thì phải.

  3. #3
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Xem thử mấy cái sa đây xem?

    http://support.microsoft.com/kb/196340

    Visual C++ Code:
    1. HRESULT getFrameDocumentById(IHTMLDocument2* topLevelDocument,
    2.                              LPOLESTR frameId,
    3.                              IHTMLDocument2** frameDocument)
    4. {
    5.    HRESULT hresult = E_FAIL;
    6.    CComPtr<IOleContainer> container;
    7.    HRESULT hr = topLevelDocument->QueryInterface(IID_IOleContainer,
    8.                                                  (void**)&container);
    9.    if (hr == S_OK)
    10.    {
    11.       CComPtr<IEnumUnknown> enumerator;
    12.       // Get an enumerator for the frames
    13.       hr = container->EnumObjects(OLECONTF_EMBEDDINGS, &enumerator);
    14.       if (hr == S_OK)
    15.       {
    16.          CComPtr<IUnknown> unk;
    17.          ULONG uFetched;
    18.          // Enumerate and refresh all the frames
    19.          for (UINT i = 0; S_OK == enumerator->Next(1, &unk,
    20.               &uFetched); i++)
    21.          {
    22.             CComPtr<IWebBrowser2> browser;
    23.             // QI for IWebBrowser here to see if we have an embedded
    24.             // browser
    25.             hr = unk->QueryInterface(IID_IWebBrowser2,
    26.                                      (void**)&browser);
    27.             if (hr == S_OK)
    28.             {
    29.                CComPtr<IHTMLElement> htmlElement;
    30.                unk->QueryInterface(IID_IHTMLElement,
    31.                                    (void**)&htmlElement);
    32.                CComBSTR id;
    33.                if (SUCCEEDED(htmlElement->get_id(&id)) && id)
    34.                {
    35.                   CComPtr<IDispatch> disp;
    36.                   browser->get_Document(&disp);
    37.                   if (disp != NULL )
    38.                   {
    39.                      CComPtr<IHTMLDocument2> frameDoc;
    40.                      hr = disp->QueryInterface( IID_IHTMLDocument2,
    41.                                                (void**)&frameDoc);
    42.                         if (hr == S_OK)
    43.                         {
    44.                            if (!wcscmp(id, frameId))
    45.                            {
    46.                               *frameDocument = frameDoc;
    47.                               (*frameDocument)->AddRef();
    48.                               hresult = S_OK;
    49.                               break;
    50.                         }
    51.                      }
    52.                   }
    53.                }
    54.             }
    55.          }
    56.       }
    57.    }
    58.    return hresult;
    59. }


    How to Embed an HTML control in your own window using plain C
    _http://www.codeproject.com/KB/COM/cwebpage.aspx
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn