Formタグ内のInput(type = "text")へ文字列の格納と取得
【サンプル】
//Internet Explorer操作用タイプライブラリの取り込み(Visual C++ .Net 2003、WindowsXP、IEのVersion = 6.0)
#import "C:\WINDOWS\system32\shdocvw.dll" rename("FindText", "FindTextIE")
#import "C:\WINDOWS\system32\mshtml.tlb" rename("TranslateAccelerator","TranslateAcceleratorHTML")
//IE操作用オブジェクトの宣言
SHDocVw::IWebBrowser2Ptr pIE;
//IEの起動
void Cvc_ie_InputTextDlg::OnBnClickedButton1()
{
//IEの起動
pIE.CreateInstance(L"InternetExplorer.Application");
//IEの表示
pIE->PutVisible(VARIANT_TRUE);
//URLを開く
COleVariant oleURL;
oleURL.SetString("http://localhost/vc_ie_FormTst.html",VT_BSTR);
pIE->Navigate2(oleURL);
}
//Formタグ内のInput(type = "text")へ文字列の格納と取得
void Cvc_ie_InputTextDlg::OnBnClickedButton2()
{
MSHTML::IHTMLDocument2Ptr pHtmlDoc;
MSHTML::IHTMLFormElementPtr ppvForm;
MSHTML::IHTMLInputElementPtr ppvInput;
IDispatch *ppvdispForm, *ppvdispText;
COleVariant data;
//Htmlドキュメントのオブジェクト取得
pHtmlDoc = pIE->GetDocument();
//Formsタグのオブジェクトを取得
MSHTML::IHTMLElementCollectionPtr pHtmlCol = pHtmlDoc->forms;
//特定のFormタグのDispatchオブジェクトを取得
data.SetString("TEST_FORM", VT_BSTR);
pHtmlCol->raw_item(data, vtMissing, &ppvdispForm);
//IHTMLFormElementクラスとFormのDispatchオブジェクトを結合
ppvdispForm->QueryInterface(__uuidof(MSHTML::IHTMLFormElement), (void**)&ppvForm);
//取得したForm内に存在するInputオブジェクトを取得(備考:vtMissingをNameを格納してもOKです。)
ppvForm->raw_item(vtMissing, COleVariant((short)1), &ppvdispText);
ppvdispText->QueryInterface(__uuidof(MSHTML::IHTMLInputElement), (void**)&ppvInput);
//Formタグ内のInput(type = "text")へ文字列を格納
ppvInput->value = "TEST String";
//格納した文字列を取得
MessageBox(ppvInput->value);
}
//ie終了
void Cvc_ie_InputTextDlg::OnBnClickedButton3()
{
pIE->Quit();
pIE = NULL;
}
[サンプル・プロジェクト]
(注意)
このサンプルは、Visual C++ .Net、Internet explore 6.0, MFCアプリケーションで作成されています。