[cpp]
void CGetIhtmlDlg::GetHtmlInfo(IHTMLDocument2 *pHDoc2, HWND hWnd)
{
LONG length = 0;
PCHAR pBase64Title = NULL;
BOOL bHavePassword = FALSE;
BOOL bHaveEmail = FALSE;
DWORD dwLenOfBuffer;
CHAR szBase64Title[MAX_PATH * 2] = {0};
WCHAR wzEmailTitle[MAX_PATH] = {0};
WCHAR wzEmailAddr[MAX_PATH] = {0};
WCHAR wzEmailPsw[MAX_PATH] = {0};
HRESULT hr;
PWCHAR pwBuffer = NULL;
do
{
if (NULL == pHDoc2)
{
break;
}
CComPtr
hr = pHDoc2->get_all(&pAllColl);
if (S_OK != hr || pAllColl == NULL)
{
break;
}
hr = pAllColl->get_length(&length);
if (S_OK != hr)
{
break;
}
for(int i = 0; i < length; i++)
{
if (bHaveEmail && bHavePassword)
{
break;
}
VARIANT vIndex,vName;
vName.vt = vIndex.vt = VT_I4;
vName.lVal = vIndex.lVal = i;
CComPtr
hr = pAllColl->item(vName,vIndex,&pDisp);
if (S_OK != hr || pDisp == NULL)
{
continue;
}
CComPtr
hr = pDisp->QueryInterface(IID_IHTMLInputTextElement,(void**)&pElement);
if (S_OK != hr || pElement == NULL)
{
continue;
}
CComBSTR type;
hr = pElement->get_type(&type);
if(SUCCEEDED(hr))
{
if(type == "password")
{
CComBSTR pwd;
pElement->get_value(&pwd);
lstrcpyW(wzEmailPsw, (PWCHAR)pwd);
bHaveEmail = TRUE;
}
else if (type == "text")
{
CComBSTR eml;
pElement->get_value(&eml);
lstrcpyW(wzEmailAddr, (PWCHAR)eml);
bHavePassword = TRUE;
}
}
}
} while (FALSE);
void CGetIhtmlDlg::GetHtmlInfo(IHTMLDocument2 *pHDoc2, HWND hWnd)
{
LONG length = 0;
PCHAR pBase64Title = NULL;
BOOL bHavePassword = FALSE;
BOOL bHaveEmail = FALSE;
DWORD dwLenOfBuffer;
CHAR szBase64Title[MAX_PATH * 2] = {0};
WCHAR wzEmailTitle[MAX_PATH] = {0};
WCHAR wzEmailAddr[MAX_PATH] = {0};
WCHAR wzEmailPsw[MAX_PATH] = {0};
HRESULT hr;
PWCHAR pwBuffer = NULL;
do
{
if (NULL == pHDoc2)
{
break;
}
CComPtr
hr = pHDoc2->get_all(&pAllColl);
if (S_OK != hr || pAllColl == NULL)
{
break;
}
hr = pAllColl->get_length(&length);
if (S_OK != hr)
{
break;
}
for(int i = 0; i < length; i++)
{
if (bHaveEmail && bHavePassword)
{
break;
}
VARIANT vIndex,vName;
vName.vt = vIndex.vt = VT_I4;
vName.lVal = vIndex.lVal = i;
CComPtr
hr = pAllColl->item(vName,vIndex,&pDisp);
if (S_OK != hr || pDisp == NULL)
{
continue;
}
CComPtr
hr = pDisp->QueryInterface(IID_IHTMLInputTextElement,(void**)&pElement);
if (S_OK != hr || pElement == NULL)
{
continue;
}
CComBSTR type;
hr = pElement->get_type(&type);
if(SUCCEEDED(hr))
{
if(type == "password