This page is in Pre Alpha. That means no grammer checks, no editting and speeling mistakes galore! The explanations and the final version will come soon. Check it out at your own risk! a.bat cl.exe /nologo /I "\inetsdk\include" /c HTMLPars.cpp link.exe ole32.lib oleaut32.lib urlmon.lib ..\..\lib\uuid.lib user32.lib /subsystem:windows HTMLPars.obj htmlpars.cpp #include #include "..\..\include\mshtml.h" #include #include void abc(char *p){FILE *fp=fopen("z.txt","a+");fprintf(fp,"%s\n",p);fclose(fp);} void abc1(unsigned short *p){FILE *fp=fopen("z.txt","a+");char *p1= (char *)p;while ( *p1){fprintf(fp,"%c",*p1);p1++;p1++;}fprintf(fp,"\n",*p1);fclose(fp);} int _stdcall WinMain(HINSTANCE ii,HINSTANCE j,char *k,int l) { IUnknown* m_punkMSHTML; OleInitialize(NULL); CoCreateInstance( CLSID_HTMLDocument,0,CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&m_punkMSHTML ); OLECHAR szwName[256]; MultiByteToWideChar(CP_ACP, 0, "http://www.microsoft.com", -1, szwName, 256); IMoniker* pIMoniker; CreateURLMoniker(NULL, (LPWSTR)szwName, &pIMoniker); IPersistMoniker* pPMk; m_punkMSHTML->QueryInterface(IID_IPersistMoniker,(void **)&pPMk); pPMk->Load(FALSE, pIMoniker, 0, STGM_READ); ::MessageBox(0,"hi","hi",0); IHTMLDocument2* pHTMLDocument2; m_punkMSHTML->QueryInterface(IID_IHTMLDocument2, (void **)&pHTMLDocument2); IHTMLElementCollection* pColl; pHTMLDocument2->get_all( &pColl ); LONG celem; pColl->get_length( &celem ); for ( int i=0; i< celem; i++ ) { VARIANT varIndex; varIndex.vt = VT_UINT; varIndex.lVal = i; VARIANT var2; VariantInit( &var2 ); IDispatch* pDisp; pColl->item( varIndex, var2, &pDisp ); IHTMLElement* pElem; pDisp->QueryInterface( IID_IHTMLElement, (void **)&pElem ); BSTR bstr; pElem->get_tagName(&bstr); abc1(bstr); IHTMLImgElement* pImgElem; HRESULT hr = pDisp->QueryInterface( IID_IHTMLImgElement, (void **)&pImgElem ); if ( hr == S_OK ) { pImgElem->get_href(&bstr); abc1(bstr); } } }