社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

HTML(Script)側へのオブジェクトの公開 - IE/WebBrowser

ブラウザコントロールをホストしたアプリを作っていると
HTML(Script)側へ何らかの機能を公開したくなることが
あるかと思います。

その場合、ブラウザコントロールをホストしている側に
IDocHostUIHandler を実装し、GetExternal メソッドで
独自のオブジェクト (IDispatch) を公開することによって
実現することができます。

IDocHostUIHandler を実装し始めた頃 (98年ごろ) は、
各種ライブラリでのサポートは無く、MFC や ATL の
ライブラリのコードをかいくぐって実装していたものです。

しかし、今では ATL/MFC/.NET Framework のいずれでも、
簡単にオブジェクトを公開することが可能となっています。

上記の手法を使ってオブジェクトを公開した場合、
HTML(Script)側では以下のようにアクセスします。

---
<html>
<head>
<title>example</title>
<script language="jscript">
function onClick()
{
 // アプリ側でHogeメソッドを持ったオブジェクトを公開
 window.external.Hoge();
}
</script>
</head>
<body>
 <br />
 <br />
 <input type="button" value="hoge" onClick="javascript:onClick();" />
 <br />
 <br />
</body>
</html>
---

■IDocHostUIHandler Interface - MSDN
http://msdn2.microsoft.com/en-us/library/Aa753260.aspx

■IAxWinHostWindow::SetExternalUIHandler - MSDN
http://msdn2.microsoft.com/ja-JP/library/9dxkhzcx(VS.80).aspx

■CHtmlView::OnGetExternal - MSDN
http://msdn2.microsoft.com/en-us/library/bat7a958(VS.71).aspx

■WebBrowser.ObjectForScripting プロパティ 
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.objectforscripting(VS.80).aspx

■Driller (MFC) - MSDN
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/browser/driller/default.asp

■MFCベースのアプリケーションで、ブラウザコントロールのカズタマイズを行う[MFC] - for Programmers
http://www.wac-jp.com/programmers/win32/IDocUIHandler.html

投稿日時 : 2007年6月11日 14:28


コメントを追加

#  Hello, my name is Damion|Hi, my name is Damion|Hello, I'm Damion|Hi, I'm Damion 2008年3月23日 5:39 DamionKutaeff

Hello everybody, my name is Damion, and I'm glad to join your conmunity,
and wish to assit as far as possible.

#  Hi, my name is Dan 2008年3月25日 22:51 Dan(lazy)Honnet

Hello everybody, my name is Daniel, and I'm glad to join your conmunity,
Wish to assist as far as possible.
タイトル
名前
URL
コメント