2
:変更divのinnerHTMLのIHTMLDocument2を通って、私はIHTMLDocument2インターフェイスをこのように使用してdiv要素の内容を変更しようとしているC++
IHTMLElementCollection* collection = NULL;
IDispatch* mydiv;
doc2->get_all(&collection);
long count;
collection->get_length(&count); //just to check I get something
CComVariant varstr = L"mydivname";
CComVariant varint = 0;
collection->item(varstr, varint, &mydiv); //this works I get the div
IHTMLElement* htmldiv;
mydiv->QueryInterface(IID_IHTMLElement, (void**)&htmldiv);
CComBSTR html;
htmldiv->get_innerHTML(&html); //works too, I get the current content
HRESULT hr=htmldiv->put_innerText(L"hello"); //this does not work but returns S_OK
collection->Release();
だから私のdiv要素の内容は、単にクリアされ、「こんにちは」に置き換えられていませんが私はなぜそれがセキュリティ上の問題になるのか理解できません。
おかげで
確かに、愚かな間違いは、あなたに感謝! – Entretoize
問題ありません。喜んで助けになる。 "トリッキーな"部分は、BSTR文字列の代わりに普通のwchar_t文字列を渡すと、コンパイル時エラーが出ないということです(BSTRのtypedef定義を考慮して、コンパイラの観点からは意味があります:) –