ActiveXをSWTアプリケーションから呼び出す

2006/07/30

java windows 開発

t f B! P L

以前、ActiveXで作られた機能をJavaアプリケーション、というか、 SWTアプリケーションから呼び出す必要があり、いろいろ調べたので、メモ。

そのときは、ActiveXのコンポーネントがIEから呼ばれることしか考えられて いなくて、画面の再描画まわりがまともに動かなく、IEコンポーネント経由で 呼び出すという手で逃げた。

まずは参考文献。googleで調べても、JavaのコンポーネントをActiveX化する話は よく見つかるが、ActiveXのコンポーネントを取り込む話はほとんど見つからない。
dW : Open source : ActiveXコントロールをSWTアプリケーションへ統合する は、そんな状況の中、非常に役立つページだ。この内容を十分に理解すれば、 他をあたる必要はないだろう。サンプルがAcrobat Reader 5.0なので、実際に 動かしてみるにはちょっと手間がかかるが。そのまま動かす場合、他のバージョンで 代用できるわけではないので注意。ちょっと昔のアプリケーションのCD-ROMを 探せば、Actobat Reader 5.0が見つかるだろう。

他のバージョンのAcrobat Readerを使う場合、あるいは、自分が使いたい ActiveXを使って同様のサンプルをつくってみる場合、サンプルのPDF Viewクラスの 22行目、PDF.PdfCtrl.5を変更する必要がある。ActiveXのインタフェースを定義する 際に使用した名前だ。ついでに、どんなメソッドを公開しておいたかも確認して おこう。記事にあるように、ant activexと実行するとJavaから呼び出せるメソッドが リストアップされるので、見比べるとよい。

通常のActiveXコンポーネントであれば、以上のヒントでJavaアプリケーションに 組み込めるであろう。IE上でしかまともに動かないActiveXであった場合、 素直にIEコンポーネント経由で呼び出すようにした方がいい。 IEコンポーネントも1種のActiveXなので、同様の手順で組み込める。 組み込めるだけはなく、読み込んだページ中にあるJavaScriptをメソッドとして 呼び出すことが可能だ。だから、ActiveXの提供するメソッドをすべてJavaScriptから 呼び出すようにすれば、SWTからIEコンポーネント経由でActiveXのメソッドを 呼び出せる。また、メソッドをJavaScriptで拡張できるというのも、大きなメリットで あろう。


楽天で探す
楽天市場
にほんブログ村 IT技術ブログへ

人気の投稿

ブログ アーカイブ

自己紹介

開発からSREにクラスチェンジしました。

アフィリエイト

  • 当ブログ「Hiroaki's blog」は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。
  • 当ブログでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。
  • アクセストレードアフィリエイトプログラムに参加しています。
  • A8.netアフィリエイトプログラムに参加しています。
  • バリューコマースアフィリエイトプログラムに参加しています。
  • もしもアフィリエイトプログラムに参加しています。

プライバシーポリシー

当サイトにアクセスされる場合、IPアドレスなどの情報または閲覧状況に関するデータが機械的に生成され、場合によっては個人情報と関連付けられる可能性があります。プライバシー保護に関する適用法に準じて、これらの通信および閲覧に関するデータを収集、処理、および利用することがあります。
当サイトにアクセスされる場合、非個人情報(ブラウザの種類、OSの種類、ドメイン名、訪問数、平均滞在時間、ページ・ビューなど個人を特定できない情報)が自動収集される場合があります。当サイトのパフォーマンスやコンテンツを改善する目的で、これらの情報を利用する場合があります。
アフィリエイトでは成果を把握するためにcookie等を利用しています。それ以外の目的で使用されることはありません。詳しくは各社のページにて確認してください。
本サイトに掲載する情報に関しては、正しいものを提供することを務めていますが、掲載内容から、いかなる損失や損害などの被害が発生しても、当ブログでは責任を追いかねます。

QooQ