怎么利用IHTMLDocument2获取中的数据

如何利用IHTMLDocument2获取<object classid=...>***</object>中的数据?
如题,如何利用IHTMLDocument2获取<object classid=...>***</object>中的数据?
我需要获得object后面所有的数据,对数据进行分析


------解决方案--------------------
C/C++ code

//获得ActiveX控件接口,注意ActiveX控件接口和HTML对象元素接口不是同一个接口,你不能直接使用IHtmlObjectElement接口来访问控件
HRESULT CDHtmlDialog::GetControlDispatch(LPCTSTR szId, IDispatch **ppdisp)
{
    HRESULT hr = S_OK;
    CComPtr<IDispatch> spdispElem;

    hr = GetElement(szId, &spdispElem);

    if (spdispElem)
    {
        CComPtr<IHTMLObjectElement> sphtmlObj;

        hr = spdispElem.QueryInterface(&sphtmlObj);
        if (sphtmlObj)
        {
            spdispElem.Release();
            hr = sphtmlObj->get_object(ppdisp);
        }
    }
    return hr;
}
有了Active控件的接口,下面的工作就简单多了,举例来说,如果要访问控件的指定名字的无参数属性,只需简单的调用IDispatch接口的GetIDsOfNames获得属性的DispID,然后调用Invoke方法取得属性
//获得控件属性,通过名字访问
VARIANT CDHtmlDialog::GetControlProperty(LPCTSTR szId, LPCTSTR szPropName)
{
    CComVariant varEmpty;
    CComPtr<IDispatch> spdispElem;

    GetControlDispatch(szId, &spdispElem);
    if (!spdispElem)
        return varEmpty;

    DISPID dispid;
    USES_CONVERSION;
    LPOLESTR pPropName = (LPOLESTR)T2COLE(szPropName);
    HRESULT hr = spdispElem->GetIDsOfNames(IID_NULL, &pPropName, 1, LOCALE_USER_DEFAULT, &dispid);
    if (SUCCEEDED(hr))
        return GetControlProperty(spdispElem, dispid);
    return varEmpty;
}

------解决方案--------------------
额...检查下头文件看看,实在不行只能换种方法.

另外种方法
CComPtr <IHTMLDocument2> pHTMLDoc2; 
pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc2); 

CComPtr <IHTMLElementCollection> pAllElements; 
HRESULT hr = pHTMLDoc2->get_all(&pAllElements);

IHTMLElementCollection用它的tags方法拿到object集合的IDispath
再从IDispath中QueryInterface得到另外一个IHTMLElementCollection
再继续就应该可以了.