WinInet を使ってインターネット クライアント アプリケーションを簡単に作成する方法
更新 : 2007 年 11 月
Win32 インターネット拡張機能 (WinInet: Win32 Internet Extensions) は、Gopher、FTP、HTTP などの一般的なインターネット プロトコルへのアクセスを提供します。WinInet を使用すると、高水準プログラミングによってインターネット クライアント アプリケーションを作成できるため、WinSock、TCP/IP、または特定のインターネット プロトコルの詳細を扱う必要はありません。WinInet には、3 種類のプロトコルに共通の一連の関数が用意されており、使い慣れた Win32 API インターフェイスで使用できます。この共通性によって、プロトコルを変更しても (FTP から HTTP への変更など)、コードの変更が最小限で済みます。
Visual C++ では、2 とおりの方法で WinInet を使用できます。Win32 インターネット関数を直接呼び出す方法と、MFC WinInet クラスを介した方法です。前者の方法の詳細については、Windows SDK の OLE に関するドキュメントを参照してください。
WinInet の機能は、次のとおりです。
HTML ページをダウンロードできます。
HTTP は、サーバーからクライアント ブラウザに HTML ページを転送するためのプロトコルです。
ファイルをダウンロードまたはアップロードしたり、ディレクトリ一覧を取得したりするための FTP 要求を送ることができます。
典型的な要求は、ファイルをダウンロードするための anonymous FTP ログオンです。
Gopher のメニュー システムを使って、インターネット上のリソースにアクセスできます。
メニュー項目には、さまざまな種類が含まれます。検索できる索引付きデータベース、ニュースグループ、ファイル、ほかのメニューなどがあります。
3 つすべてのプロトコルに共通して、接続の確立、サーバーに対する要求、および接続の切断を行います。
MFC WinInet クラスの利点は、次のとおりです。
ハード ディスク ドライブからファイルを読み取るのと同じように、HTTP、FTP、Gopher の各サーバーから情報を簡単に読み取ることができます。
WinSock または TCP/IP に直接プログラミングしなくても、HTTP、FTP、Gopher の各プロトコルを使用できます。
Win32 インターネット関数を使用すると、TCP/IP または Windows ソケットを知らなくてもプログラミングできます。WinSock と TCP/IP の各プロトコルを直接使用してソケット レベルでプログラミングすることもできますが、MFC WinInet クラスを使用してインターネットで HTTP、FTP、および Gopher の各プロトコルにアクセスする方が簡単です。使用しているプロトコルの詳細を知らなくても、一般的な操作には支障ありません。
クライアント コンピュータからインターネット上のコンピュータに対して実行するほとんどの操作には、時間がかかります。通常、各操作の速度は、接続しているネットワークの速度によって制限されるからです。さらに、ほかのネットワーク通信や操作の複雑さにも影響されます。たとえば、リモートの FTP サーバーに接続するには、まず使用しているコンピュータでサーバーの名前を探し、そのアドレスを見つけます。次に、アプリケーションが、そのアドレスでサーバーに接続します。接続が開かれると、クライアント コンピュータとリモート サーバーがファイル転送プロトコルを通じて対話を開始します。この後初めて、この接続を使って実際にファイルを取得できます。