CComPtr<IDispatch> spDispatch;
CComPtr<IHTMLFormElement> pFormElement;
CComPtr<IHTMLInputTextElement> pInputTextElement;
CComPtr<IHTMLElementCollection> pElementCollection;
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDocument2;
if (SUCCEEDED(m_pBrowser->get_Document(&spDispatch)))
{
pDocument2 = spDispatch;
long nFormCount = 0;
pDocument2->get_forms(&pElementCollection);
if (SUCCEEDED(pElementCollection->get_length(&nFormCount)))
{
VARIANT varId, varIndex;
for (long m = 0; m < nFormCount; m++)
{
V_VT(&varId) = VT_I4;
V_I4(&varId) = m;
V_VT(&varIndex) = VT_I4;
V_I4(&varIndex) = 0;
spDispatch = NULL;
if (SUCCEEDED(pElementCollection->item(varId, varIndex, &spDispatch)))
{
pFormElement = NULL;
if (SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLFormElement, (void**)&pFormElement)))
{
long nElementCount = 0;
if (SUCCEEDED(pFormElement->get_length(&nElementCount)))
{
for (long n = 0; n < nElementCount; n++)
{
V_VT(&varId) = VT_I4;
V_I4(&varId) = n;
V_VT(&varIndex) = VT_I4;
V_I4(&varIndex) = 0;
spDispatch = NULL;
if (SUCCEEDED(pFormElement->item(varId, varIndex, &spDispatch)))
{
pInputTextElement = NULL;
if(SUCCEEDED(spDispatch->QueryInterface(IID_IHTMLInputTextElement, (void**)&pInputTextElement)))
{
CComBSTR combstrType;
if (SUCCEEDED(pInputTextElement->get_type(&combstrType)))
{
CString strType(combstrType);
strType.MakeLower();
if (strType.Find("text") != -1)
{
pInputTextElement->put_value(CComBSTR(m_pnewTaskStruct.g_strUrlAddr));
}
}
}
}
}
}
pFormElement->submit();
}
}
}
}
}