2009-05-06 9 views
0

特定のURLにアクセスするためのコントロール(複合コントロールダイアログペインに埋め込まれたWebブラウザコントロール)を含むActiveXコンポーネントがあります。 URLにアクセスするActiveXコンポーネントは、他のMFCまたはVBプロジェクトで使用できます。使用方法は、ActiveXコンポーネントを登録し(regsvr32 cmdを使用)、「ActiveXコントロールの挿入」を使用してコントロールをダイアログウィンドウに挿入することです。ActiveX(webbrower hosted)プロジェクトを静的ライブラリプロジェクトに変換するにはどうすればいいですか?

今、ActiveXコンポーネントを同じブラウザウィンドウとWebアクセス機能を持つ静的ライブラリに変換する予定です。私はそれをどうするのだろうか?さらに、ブラウザウィンドウ(静的ライブラリ内)を他のMFCプロジェクトでどのように使用できるかについても説明します。それは関数呼び出しを通してですか?利用可能なサンプルプロジェクトはありますか?

Microsoft .NET 2003を開発ツールとして使用しました。

ありがとうございます。

答えて

0

静的ライブラリにすべてを入れることができると思う程度は少し不明です。

これはおそらくあなたが思っているようにまっすぐではないでしょう。ダイアログボックスにActiveXコントロールを挿入できるVS/MFC/ATLのウィザードとコードは、多くの作業を行います。つまり、メッセージポンプの仕組み、所有者ウィンドウ、スレッドモデルなど、ActiveXコントロールのサイトの性質について一定の前提があります。ダイアログでは、これらは既知です。別の文脈では、そうではありません。

あなたがやっていることをやり遂げる正しい方法は、ActiveXコントロールとして残すことです。あなたが静的ライブラリに入れて解決しようとしている問題を述べた場合は、他のオプションを与えることができます。

WebBrowser ActiveXコントロールは、実際にはsystem32フォルダ内のshdocvw.dllライブラリのラッパーです。 shdocvw.dllは、IEの心と魂である(そして、拡張によって、Windowsエクスプローラインターフェイスの多く)。これは、ライブラリをロードするための独自のルールなどを持つCOMをベースにしています。したがって、サイト(ActiveXコントロールを使用したいアプリケーション)は、とにかくActiveX/COMに親しみが必要です。

+0

ありがとうアラン! ActiveXを静的ライブラリに変換する理由は、顧客の要件です。私たちの顧客の中には、別のDLLファイルをパッケージに入れたくない人もいます。 MFCまたはATLプロジェクトなど、コードに提供するブラウザコントロールを構築したいこの目標を達成する他の方法はありますか? – bionicoder

+0

shdocvw WebBrowserをホストするMFC/ATL静的ライブラリを作成できるはずです。つまり、ATL/MFCプロジェクトウィザードはCOMコントロールをホストするDLLのみをビルドします。 ATLからActiveXをホストする方法については、http://msdn.microsoft.com/en-us/library/1stby863(VS.71).aspxを参照してください。 shdocvw WebBrowserは、上記の理由(IEのコアコンポーネントとしてインストールされている)のために、静的ライブラリにすることはできません。 –

関連する問題