iExforce Resource Kit


iExforce Resource Kit New!
Version Update Filename Size Class
0.1.3.0 2002/05/10 IEXRK013.LZH 182[KB] Product

    『iExforce Resource Kit』(iExforce)は、HSP(Hot Soup Processor)プログラム にInternet Explorerのブラウザ機能を追加するためのプラグイン・リソースキ ットです。

    iExforceのブラウザ機能は、WebBrowser Controlと呼ばれるActiveXコンポーネ ントを、拡張オブジェクトとしてウインドウ上に配置することで実現します。

    プラグインの作成には、BORLAND社製の「Delphi 5」または「Delphi 6」を使用 します。ソースプログラムが付属していますので、Delphiプログラミングの経験 のある方はもちろん、初心者の方にも簡単にDLLの作成が可能です。




Help Index Readme License Regist History
Introduction Install How to Make Command Functions



iExforce開発インフォメーション [2002/05/10]

    テスト版(Version 0.1.0.2)以降の開発状況について、特にご要望の多かった項目を中心に お伝えします。

    [追加された機能]

    ・ファイルダウンロード機能
    Internet Explorer のコンテキストメニュー「対象をファイルに保存」と同じ機能に相当する ダウンロード機能です。



    ・オートコンプリート機能
    HSPのINPUTオブジェクトを指定して、IEのアドレスバーのようにURLやローカルファイルの パスを自動的に補完する機能です。



    ・ドラッグ&ドロップ許可の設定
    IEXオブジェクトへのドラッグ&ドロップ操作の許可を任意に設定できるようにしました。 これにより、プログラマの意図しないリソースの直接的な表示を制限することが出来ます。 ただし、コンテキストメニュー(右クリックメニュー)の拡張機能などを使用している環境 では、なお意図しない操作が行われる可能性がありますのでご注意下さい。

    [確認済みの不具合]
    ・ソースの書き込みエラー
    Windows 95/98では、IEのバージョンに依らずソースの書き込みに失敗する不具合が確認 されています。また、これ以外の環境でも、連続で書き込み操作を行った場合に空白ページ が表示される問題が確認されています。現在調査中です。

    ・一部のページでキャプチャが正常に機能しない
    フレームを使用したHTMLページや、ローカルファイルシステムについては、キャプチャを 取得することができません。これは、Internet Explorerで印刷できない対象と一致します。 したがってこの現象は仕様と判断されます。

    [C言語版の開発]
    実はすでにVisual C++(MFC・C++)及びlcc-win32(C言語)でのインプリメントに成功しています。 まずはじめにMFCへの移植を試みたところ、HSPならではのアンドキュメントな問題で早速 つまづきました(^^;偶然も手伝って何とか解決し、VC6でコンパイルして189KBとなりました。 次にMFCを使わずに生C++でのコーディングにトライしたのですが、非MFCでOLEコントロール を作成するための技術資料に乏しく、結局スパイ役のIDispatch偽装クラスを作成してMFC版 のインスタンスにアタッチし、実行トレースログを取ることで実装手法を見出しました。甲斐 あってDLLは32KBまで縮小しました。未検証ですがBCCでもコンパイル可と思われます。 さらに、C++版のコードをもとにCでのフルスクラッチを行い、20KBまで小さくすることに 成功しました。lcc-win32でコンパイル可能です。 現在、MFC/C++/Cの各版の公開実現に向けたデバッグ作業に並行して、ファイル形式や配布形態、 条件などの検討を行っています。

    (2002/05/10)
    C言語版については、高価な開発環境の導入が必須条件とならないよう、またメンテナンス作業 の効率化を考慮し、lcc-win32版のみの公開と言う方向で開発を進めています。また配布形態は、 Exforceとのダブル登録ユーザーへの特典として、統合版という形での提供を検討しています。

    [DLLサイズの縮小]
    現時点での、各版のDLLサイズの一覧です。いずれも今後変更が生じる可能性があります。
    ・Delphi6版 467 KB
    ・Delphi5版 337 KB
    ・VC7 MFC版 214 KB
    ・VC6 MFC版 189 KB
    ・VC7 C++版 43 KB
    ・VC6 C++版 32 KB
    ・lcc 例外処理 版 22 KB
    ・lcc 例外無し 版 17 KB
    ・lcc ASM 版 16 KB

    [APIコール + モジュールでの再現]
    数名の方のレポートの中に、iExforceの機能をExforceのAPIコールとモジュールで再現 できないかという質問がありましたので、少しだけ難しい説明をします(^^;
    COMインターフェイスを使ってActiveXコントロールを制御するには、IUnknownの概念に 基づく仮想インターフェイスの「実体」の一部を自前で実装する必要があります。つまり、 システム内部に既存のインスタンスにクエリーしただけでは得られない、実体オブジェクト が多数必要となるため、APIコールだけでこれを実現することはできないと思われます。
    それならば、とマシンコードをHSPに埋め込んだところで、必要なだけで数百もあるメソッドの 実装コードを動的に配置し、仮想アドレステーブルに当てはめて、さらにそれらの間の継承や リファレンスカウンタの整合をとるというのは極めて非現実的ですし…
    結局やってできないことはないのですが、その労力と時間は、新しいアイデアの実現のためのものにしたいなと思います(^^;




BACK