DLCTL_NO_JAVA

どうしてもJavaアプレットをブラウザで動かしたくないっていう事態に…。
ってか、Javaアプレットを動かすとMSVMのせいでマシンごと落ちるからなんだけど
Javaアプレットを動かさなくする方法がようやくわかった。
ポイントは、AbmientプロパティDISPID_AMBIENT_DLCONTROLDLCTL_NO_JAVA
IDispatchインタフェースを実装してInvokeにDISPID_AMBIENT_DLCONTROLで呼び出しがあったら、VT_I4でDLCTL_NO_JAVAフラグを指定して返せばJavaアプレットを無効に出来るって解説はあったが、ATLで実際どうしたら良いのかが不明だった。
「このIDispatchポインタを呼び出してくれ」という登録をどこで行えばいいのかがわかんないから…。
で、IAxWinAmbientDispatchExってインタフェースをCAxWindowのQueryHostで取得して、SetAmbientDispatchで指定してあげればいいだけだった…。
判ってしまえば簡単だけど、わかんない間は大変だったさ…。
今日は、2780歩。

コメントを残す

メールアドレスが公開されることはありません。