比如我在一个页面中有多个StyleSheet如:IHTMLStyleSheetsCollection::length的返回值是3
则我的页面中有3个StyleSheet
但我怎么才能取得第3个StyleSheet的IHTMLStyleSheet接口?
并删除第2个StyleSheet?在线等候。多谢。

解决方案 »

  1.   

    //i think you can consult this code
    // BEGIN CODEIHTMLStyleSheetsCollection* pStyleSheets = 0;
    if(S_OK != pHtmlDoc->get_styleSheets(&pStyleSheets))
        return;IUnknown* pIU = 0;
    if(S_OK != pStyleSheets->get__newEnum(&pIU))
        return;

    IEnumVARIANT* pEnum = 0;
    if(S_OK != pIU->QueryInterface(IID_IEnumVARIANT, (void**)&pEnum))
        return;VARIANT varData;
    ULONG count = 0;
    pEnum->Next(1, &varData, &count);
    while(TRUE) {
        IHTMLStyleSheet* pSS = 0;
        IUnknown* pU = varData.pdispVal;
        if(S_OK == pU->QueryInterface(IID_IHTMLStyleSheet, (void**)&pSS))
        {
            CComBSTR css;
            pSS->get_cssText(&css);
            pSS->Release();
        }
        HRESULT hr = pEnum->Next(1, &varData, &count);
        if((hr != S_OK) || (count <= 0))
            break;
    }
    pEnum->Release(); // END CODE
      

  2.   

    可是我应该怎么才能删除一个StyleSheet呢?
      

  3.   

    call HRESULT IHTMLStyleSheet::put_disabled(VARIANT_BOOL v);
      

  4.   

    or you can call IHTMLStyleSheet::removeRule Method
    // see msdn IHtmlStyleSheet interface,then try it