- PR -

ActiveX Controls の開発について

投稿者投稿内容
hg
会議室デビュー日: 2007/06/27
投稿数: 7
投稿日時: 2007-06-27 11:54
質問です。

ALTやMFCや.Netを使うことなく、
IEに貼り付けられるActiveX Controlsは、
作れないものでしょうか?

なぜなら
フレームワークのDLLに依存させたくないのです。
新規パソコンにいれたら動くようなActiveX Controlsを作成したいのです。
例としては、FlashPlayerやMicrosoftUpdateなどです。

如何でしょうか?

また、
参考になるURLなど教えて頂けたら幸いです。

環境はVC++2005です。

宜しく御願い致します。


_________________
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2007-06-27 12:15
こんにちは。

引用:

hgさんの書き込み (2007-06-27 11:54) より:
ALTやMFCや.Netを使うことなく、
IEに貼り付けられるActiveX Controlsは、
作れないものでしょうか?
なぜなら
フレームワークのDLLに依存させたくないのです。



ALTやMFCを使う分には、
プロジェクトの設定でランタイムDLLを使わないように(スタティックライブラリを使うように)
設定できるはずです。

ALTやMFCなどのフレームワークなしに、
いちからActiveXコントロールを作るのは至難な業な気がします。
多くのCOMインターフェイスを実装しなければならないですが
おそらくネットで調べても、実装の参考になる資料がみつからないのでは?
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-06-27 12:34
引用:

hgさんの書き込み (2007-06-27 11:54) より:

ALTやMFCや.Netを使うことなく、
IEに貼り付けられるActiveX Controlsは、
作れないものでしょうか?


必要なインターフェースの実装をすればいいだけのことなので、
どのようなフレームワーク(開発環境も含め)利用するかはあまり関係ないのでは?

IClassFactory とか面倒ですけど、単に面倒だというだけで
実装そのものはそれほど難しくはないですよ。

COM のお作法を知ってるのなら。

このあたりは、Inside OLE(はるか昔に絶版w)に細かなことが載ってます。
持ってないという場合は英語の情報ならまだあたれるかもw
#昔MSDNにあったんだけど...今はどうだろう?


引用:

なぜなら
フレームワークのDLLに依存させたくないのです。


Native C/C++ の環境なら依存問題はスタティックリンクでかなりの部分は
解決できますよね?

もっとも、IE に乗せるということは、cab 配布だろうから、inf をきちんと
作りこんでおけば、インストールはできると思うんですが
このあたりは詳しくないので何とも言えません。
#msiとか使えれば楽なんでしょうけどねw

引用:

参考になるURLなど教えて頂けたら幸いです。


概要レベルからということになると MSDN くらいしかないのではないかと。
英語なので探すのも大変かもというのはありますが、きちんと網羅しているのはこれくらいだと思いますよ。

もともと、COM回り(特にActiveX なる名前が出て以降)は、日本語の情報は数冊書籍があった程度くらいしかないのではないかと。

それもほとんどが絶版かそれに近い状況だと思いますので、今から新規にCOM周りの日本語情報を仕入れるというのはかなり難しいと思いますよ。

専門書を扱う書店を全国行脚でもすれば手に入るかもしれませんがww


あとは、より具体的なものじゃないと参考といっても探しようもないと...

もっとも、おいらは WEB関係はさっぱり〜な人なので、聞かれても答えられないですけどww

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
hg
会議室デビュー日: 2007/06/27
投稿数: 7
投稿日時: 2007-06-27 14:25
ご回答ありがとうございます。

引用:

Tdnr_Symさんの書き込み (2007-06-27 12:15) より:

ALTやMFCを使う分には、
プロジェクトの設定でランタイムDLLを使わないように(スタティックライブラリを使うように)
設定できるはずです。



スタティックライブラリですよね。
この辺も試してみたのですが、要件に合わなくて、
今回のご質問をさせていただきました。

引用:


ALTやMFCなどのフレームワークなしに、
いちからActiveXコントロールを作るのは至難な業な気がします。
多くのCOMインターフェイスを実装しなければならないですが
おそらくネットで調べても、実装の参考になる資料がみつからないのでは?



確かに実装の参考になる資料が殆どありません。
至難の業と思いますが、まずは、やってみようと思います。



hg
会議室デビュー日: 2007/06/27
投稿数: 7
投稿日時: 2007-06-27 14:45
ご回答ありがとうございます。

引用:

とっちゃんさんの書き込み (2007-06-27 12:34) より:

必要なインターフェースの実装をすればいいだけのことなので、
どのようなフレームワーク(開発環境も含め)利用するかはあまり関係ないのでは?

IClassFactory とか面倒ですけど、単に面倒だというだけで
実装そのものはそれほど難しくはないですよ。

COM のお作法を知ってるのなら。

このあたりは、Inside OLE(はるか昔に絶版w)に細かなことが載ってます。
持ってないという場合は英語の情報ならまだあたれるかもw
#昔MSDNにあったんだけど...今はどうだろう?



Inside OLEですね。Inside OLE2はあったのですが、、、探して見ます。

必要なインターフェイスがなにかなどは、調べてわかったので、
実装したサンプルなどあればいいなと思っていましたが、
殆どネットには、なくて困っていました。

引用:

Native C/C++ の環境なら依存問題はスタティックリンクでかなりの部分は
解決できますよね?

もっとも、IE に乗せるということは、cab 配布だろうから、inf をきちんと
作りこんでおけば、インストールはできると思うんですが
このあたりは詳しくないので何とも言えません。
#msiとか使えれば楽なんでしょうけどねw



スタティックライブラリは、試してみました。
環境には、依存しなくなるのですが、要件にあいませんでした。


引用:


概要レベルからということになると MSDN くらいしかないのではないかと。
英語なので探すのも大変かもというのはありますが、きちんと網羅しているのはこれくらいだと思いますよ。

もともと、COM回り(特にActiveX なる名前が出て以降)は、日本語の情報は数冊書籍があった程度くらいしかないのではないかと。

それもほとんどが絶版かそれに近い状況だと思いますので、今から新規にCOM周りの日本語情報を仕入れるというのはかなり難しいと思いますよ。

専門書を扱う書店を全国行脚でもすれば手に入るかもしれませんがww


あとは、より具体的なものじゃないと参考といっても探しようもないと...

もっとも、おいらは WEB関係はさっぱり〜な人なので、聞かれても答えられないですけどww



アマゾンで、探して、それっぽい書籍は、みつかりました。


ActiveXは、今後また重要になってくると思うので、
ATLやMFCで作るのではなく、一からつくってみようと思った次第です。


渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-06-27 15:28
引用:

必要なインターフェイスがなにかなどは、調べてわかったので、
実装したサンプルなどあればいいなと思っていましたが、
殆どネットには、なくて困っていました。



大昔に "ActiveX SDK" というものが配布されていたので、その中に入っていたかもしれません。

# まだ配布されているかどうか確認していません。

引用:

スタティックライブラリは、試してみました。
環境には、依存しなくなるのですが、要件にあいませんでした。



具体的にはどういう点で? ファイル容量ですか?
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-06-27 15:58
引用:

hgさんの書き込み (2007-06-27 14:45) より:

Inside OLEですね。Inside OLE2はあったのですが、、、探して見ます。

必要なインターフェイスがなにかなどは、調べてわかったので、
実装したサンプルなどあればいいなと思っていましたが、
殆どネットには、なくて困っていました。


すいません。Inside OLE2 です。もっているのなら、その中に
C++ での実装がありますよ。IClassFactory とか...

IDispatch については記述があったかどうかちょっと覚えていませんが
こちらはあんまり細かに扱われているものはなかったような気がします。

で、サンプルですが、MFC も ATL もサンプルとしては役に立つと
思うのですが、それを参考に作るというのは難しいですか?

実際に動くものなので、ステップ実行すれば、何をやっているかなども
具体的に追いかけられます。

全部のソースがありますから、特定の箇所だけ見えないなどもありません。
引用:

スタティックライブラリは、試してみました。
環境には、依存しなくなるのですが、要件にあいませんでした。


渋木さんも書いてますけど、「なにが」要件に合わないのでしょうか?

スタティックリンクでだめだとなると、完全自前で実装でも
要件に合わない可能性が出てきますけど?

もしかして、/clr とかスイッチつけているのが原因ということは
ないですよね?

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-06-27 17:36
引用:

IDispatch については記述があったかどうかちょっと覚えていませんが



もちろん載ってますよ。
書名にある "OLE" のオートメーションではディスパッチの方が主流ですから。

引用:

スタティックリンクでだめだとなると、完全自前で実装でも
要件に合わない可能性が出てきますけど?



たとえば、ファイルサイズが問題なら、ATL でも十分に小さいサイズのコントロールが作れるはずですね。

ATL でも駄目ってことになると、VC++ ランタイムですら使っちゃ駄目ってことなんでしょうかーね。

もしそうなら、そりゃ大変だ。

スキルアップ/キャリアアップ(JOB@IT)