HINTERNET InternetOpen( IN LPCTSTR Agent, IN DWORD AccessType, IN LPCTSTR ProxyName, IN LPCSTR ProxyBypass, IN DWORD Flags);
引数の意味は以下の通り。
| Agent | HTTPによりインターネットにアクセスする際のエージェント名。 |
| AccessType | アクセス方法を指定するフラグ。後述の表を参照。 |
| ProxyName | プロクシによるアクセスが指定されている場合に、プロクシサーバ名を指定する。NULLの場合、レジストリからプロクシ情報が取得される。プロトコルごとに異なるプロクシを指定したい場合などの指定についてはSDKのドキュメントを参照。 |
| ProxyBypass | (オプションの)ローカルでの既知のホスト名またはIPアドレスのリスト。これらのホストに対する要求はプロクシを通さずに行われる。このリストにはワイルドカードを含めることができる。 |
| Flags | Win32インターネット関数の振る舞いを指定するフラグ。後述の表を参照。 |
AccessTypeに指定可能な値は、以下のいずれかのフラグである。
| INTERNET_OPEN_TYPE_DIRECT | 全てのホスト名をローカルに解決する。 |
| INTERNET_OPEN_TYPE_PROXY | プロクシバイパスリストが与えられていない場合やプロクシを通さずに名前解決が行われる場合を除いて、要求はプロクシに渡す。要求がプロクシに渡されないケースの場合は、本関数はINTERNET_OPEN_TYPE_DIRECTとして動作する。 |
| INTERNET_OPEN_TYPE_PRECONFIG | レジストリに保持されている設定を利用する。 |
Flagsに指定可能な値は以下のフラグの組み合わせである。
| INTERNET_FLAG_OFFLINE | キャッシュからのみデータ取得が行われる。 |
| INTERNET_FLAG_ASYNC | 非同期で処理が行われる。 |
戻り値は、作成されたインターネットハンドルである。失敗した場合、NULLが返される。
void GetHttpFile()
{
HINTERNET hInternet;
HINTERNET hFile;
char Buf[1000];
DWORD ReadSize;
BOOL bResult;
/* WININET初期化 */
hInternet = InternetOpen(
"WININET Sample Program",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
0);
/* URLのオープン */
hFile = InternetOpenUrl(
hInternet,
"http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/other.html",
NULL,
0,
INTERNET_FLAG_RELOAD,
0);
/* オープンしたURLからデータを(1000バイトずつ)読み込む */
for(;;) {
ReadSize = 1000;
bResult = InternetReadFile(
hFile,
Buf,
1000,
&ReadSize);
/* 全て読み込んだらループを抜ける */
if(bResult && (ReadSize == 0)) break;
Buf[ReadSize] = '\0';
printf("%s", Buf);
}
/* 後処理 */
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
}