インターネットエクスプローラー

[戻る]
まいまい 2005/08/12(金) 18:20:42
はじめましてm(__)m
eMbedded Visual C++4.0でプログラムしています。
そこでインタネットエクスプローラーを
例えばMSNなどを表示できるようにしたいです。
どうしたらよいでしょうか。
検索してみたら前のURLは古くなっていて見れないようでしたので・・・

wood 2005/08/13(土) 06:57:27
プログラミング以外のご質問はご遠慮ください

reshia [HomePage] 2005/08/13(土) 10:41:47
#一応、プログラミングでは?
#以下、私の解釈

eMbedded Visual C++ 4.0で、
Internet Explorerのように、MSNのページを表示するなど
とにかく、ウェブページを見れるアプリを作りたいのですが
どうしたら、良いのでしょう??

#という、内容のように読み取りましたが?

RAPT 2005/08/14(日) 01:54:30
その環境は詳しくないけど、COMは使えないのかしら?

まいまい 2005/08/14(日) 17:17:12
わかりにくくてすいません。
reshiaさんの言ってる事をしたいんです。
internetOpen関数とかを使うみたいなのですが、
どこに書けばいいんでしょうか。
できればお願い済ます。

COMについては まだ勉強不足です、今から調べてみます

まいまい 2005/08/14(日) 17:41:45
HINTERNET hInternetSession; 
hInternetSession = InternetOpen(
TEXT("Microsoft Internet Explorer"),   // エージェント
INTERNET_OPEN_TYPE_PROXY,        // アクセス タイプ
TEXT("http -gw"),  // プロキシ サーバー名(使用しない場合は NULL)
NULL,//プロキシ サーバーをバイパスするサイト(Windows CE では
//未サポートのため NULL )
  0                          // オプションを指定するフラグ(ない場合は 0 )
);

InternetCloseHandle(hInternetSession);

HINTERNET hHttpSession;
hHttpSession = InternetConnect(
//InternetOpenでオープンしたセッションのハンドルを指定します
      hInternetSession,                
      TEXT("http://www.microsoft.com"),       // サーバー名
      INTERNET_DEFAULT_HTTP_PORT,    // ポート番号
      NULL,                     // ユーザー名(匿名の場合は"NULL")
      NULL,           // パスワード(匿名の場合は"NULL")
      INTERNET_SERVICE_HTTP,            // 使用するサービス、プロトコル
      0,                         // オプションを指定するフラグ(ない場合は"0")
      0);                       // コール バック関数に使用するコンテキスト値

InternetCloseHandle(hHTTPSession);

長くなりましたが、上記をそのまま使えばいいのでしょうか?
この場合はマイクロソフトに接続しているようですが。
これだと接続しただけで表示はしてませんよね??
これを何処に書けばいいのかもわからなくて・・・

シャノン 2005/08/14(日) 21:10:10
まず、目的は「Web ブラウザを作りたい」でよろしいでしょうか?

お手軽な方法としては、既にあるブラウザコンポーネントを使う方法があります。
例えば IE で、Web ページを表示している部分は既にあるものを流用し、周りのツール
バーとか枠とかだけを自前のプログラムで用意する方法です。
お好みに応じて、Gecko(ネスケとか FireFox で使われているヤツ)を使うこともでき
ます。
この場合は COM を使います。IWebBrowser2 っていうインターフェイスがメインになる
はずです。

さて、InternetOpen やら何やらを使う方法ですが、こちらは単に、インターネットを通
じて、Web サーバからファイルを転送する仕組みでしかありません。
ダウンローダでも作るのならこっちの方が向いているのですが、これを Web ブラウザを
作るのに使うとなると、できるのはせいぜい、HTML のソースをダウンロードしてくるだ
けになります。
それを Web ページとして体裁を整えて表示するのは自力でやらねばならなくなります
が、おそらく労力はハンパじゃありません。

というわけで
「お手軽に Web ブラウザを作りたい」なら、IE コンポーネントや Gecko コンポーネン
トを使うのが良いと思われます。が、COM の知識が必要になります。
「InternetOpen を使いたい」なら…考え直しませんか?

RAPT 2005/08/14(日) 23:02:42
VC++6などでは、MFCアプリケーションで、簡単なブラウザがウィザードで作成できるので、
そのソースコードを参考にするという手段もあります。

ちょっと探せば解説ページとか見つかりそうな気がします。

まいまい 2005/08/19(金) 11:01:09
シャノンさん、PARTさん意見ありがとうございます。
InternetOpenは考え直しました、IEコンポーネントで頑張ってみます。
全く知らないので調べてみます。


ところでPARTさんが言うようにMFCを使えばいいのかもしれませんが
実はMFCの知識がまったくありません・・・。
やはりMFCができないと キツイんでしょうか。

PATIO 2005/08/19(金) 12:02:40
キツイというよりも、もったいないというのが正解では。
MFCを使う事でかなりの省力化が望める事は事実ですから。
但し、MFCを使いこなすには、C++言語の知識が必須になりますので
C++言語の方の知識に自信が無いのであれば、そこから勉強する事になります。

Windowsアプリの基本的な仕組みとかがわかっているのであれば、
MFCが使えると鬼に金棒なので使えないよりは使えた方が良いでしょう。
使えないとだめかという話については賛否両論あるでしょうけれど。

まいまい 2005/08/19(金) 13:18:35
そうなんですか・・・。
それではMFCの勉強もしてみます。
ちなみにIEコンポーネントもMFCを使った方が楽なんでしょうね。
後々の事もあるでしょうから勉強してみます。

シャノン 2005/08/19(金) 15:09:01
> ちなみにIEコンポーネントもMFCを使った方が楽なんでしょうね。

楽だと思いますが、MFC を使わなかったとしても、IE コンポーネントは COM の技術の
上に成り立っているので、どちらにしても「オブジェクト指向的な書き方」は知らなけ
ればなりません。
C 言語 + Win32 API 風の書き方で COM を使うのは、逆に面倒くさそう。

まいまい 2005/08/19(金) 15:38:34
とういう事はやはりMFCを勉強するのが最短の道という事ですね。
勉強してみます。
MFCを勉強している過程でまたわからない所が出てくると思いまので、
そのときはまたお願いします。
ありがとうございました。

まいまい 2005/08/19(金) 15:44:07
ちなみにMFCを使わない方向で考えると
このサイト(http://www.nitoyon.com/vc/tips/ie_component.htm#howto2)
のIEコンポーネント2 の方法になるのでしょうか。
面倒くさいとは思いますがお願いします。

porin 2005/08/19(金) 17:52:48
SDK で実装するとそんな感じになります。

シャノン 2005/08/19(金) 18:06:02
> SDK で実装するとそんな感じになります。

なりません。
サンプル2は確かに MFC は使っていませんが、代わりに ATL というやつを使っています。
Win32 API では、おそらく、もっと泥臭いコードを書かなければならないでしょう。

具体的にどう書くのかは知りません。
以前調べましたが、挫折しました。

まいまい 2005/08/19(金) 19:14:12
シャノンさんが挫折する程面倒という事ですね。
ちなみにALTといのは何なのでしょうか?

まいまい 2005/08/19(金) 19:18:46
ATLですね。ActiveXコントロールを使うための雛形らしいですが。
ActiveXというのはIEコンポーネントの一種なのでしょうか??
IEコンポーネントを実装するための。
これも勉強した方がいいのでしょうか

porin 2005/08/19(金) 19:25:03
すみません…… ATL を含めてということでしたorz

# ATL を使用しないとなるとウインドウへの描画が難しそう

ActiveXとは
http://e-words.jp/w/ActiveX.html

まいまい 2005/08/19(金) 19:33:58
えっと このATLというのを使いつつ
通常のCであれば WinMain() とかWndProcの中でこのActiveXコントロールを使うとか。
自分の入力した文字を出力したり、GPSの位置情報によって検索用語を変えたりとか。
段階飛ばしてますけどw

C++ならMFCアプリケーションがあるのでしょうが。

シャノン 2005/08/19(金) 20:08:39
> ActiveXというのはIEコンポーネントの一種なのでしょうか??

IE コンポーネントが ActiveX コンポーネントの一種です。
技術的には、IDispatch インターフェイスを実装した COM コンポーネントのことだった
と記憶しています。

> えっと このATLというのを使いつつ
> 通常のCであれば WinMain() とかWndProcの中でこのActiveXコントロールを使うと
か。

ATL も C++ のライブラリの一種。MFC のライバルみたいなもんです。

wood 2005/08/20(土) 11:43:07
大変失礼かも知れませんが「まいまい さんへ」

最初の質問からだいぶ離れた質問をしてませんか、
趣旨は「Win32APIのみでIEと同等のものを作成したい」のようなことでしたが

ATL、MFCとは何かのような質問はまずMSDNをキーワード検索してから
行ってください

「シャノン さん」は親切で解答していますが、話の方向が
実際の趣旨「internetOpen関数」の書き方から外れてしまうのであれば、
別に質問スレッドをあげてはどうでしょうか?

まいまい 2005/08/20(土) 12:21:15
[[解決]]
はい、わかりました。
ご指摘ありがとうございます。
また新規にスレッド立ち上げてみます。
いろいろ未熟ですがお願いします。

古いスレッドには追加発言できません。