HRESULT         hr = NULL;
  IDispatch*      pDisp = NULL;
  IHTMLDocument2* pDoc = NULL;  pDisp = m_webOC.GetDocument();
  if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)) &&
(pDoc)) 
  {
    IHTMLElementCollection* pColl = NULL;
    if(SUCCEEDED(hr = pDoc->get_all( &pColl )))
    {
       long length = 0;
       if(SUCCEEDED(hr = pColl->get_length(&length)) && (length))
       {
  for (int x = 0; x < length; x++ )
  {
     VARIANT Index;
     IDispatch* pDisp2 = NULL;
     Index.vt = VT_UINT;
     Index.lVal = x;
     VARIANT var2;
     VariantInit( &var2 );
     if(SUCCEEDED(hr = pColl->item (Index, var2, &pDisp2)))
     {
IHTMLWindow2* pWindow2 = NULL;
         if(SUCCEEDED(hr = pDisp2->QueryInterface(IID_IHTMLWindow2,(void**)&pWindow2 )) && (pWindow2 ))
{
  // do something
                 }
      }
   }
}
      }
   }