InternetWriteFile インターネット上のファイルへ書き込み

Cの宣言:

BOOL InternetWriteFile(
	IN HINTERNET hFile,
	IN LPCVOID Buf,
	IN DWORD BufSize,
	OUT LPDWORD WriteBytes);

説明:

hFileで指定されたインターネット上のファイルに対して、Bufで指定されたデータを書き込む。

引数の意味は以下の通り。
hFile FtpOpenFileまたはHttpSendRequestExで返された、書き込み先を識別するハンドル。
Buf 書き込むデータ。
BufSize 書き込むバイト数。
WriteBytes 実際に書き込まれたデータのサイズ。

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

InternetWriteFileを使用して、リモート上に現時点の時刻をテキスト化したHTMLファイルを作成する。
void WriteTimePage()
{
	SYSTEMTIME st;
	char buf[1000];
	HINTERNET hInternet;
	HINTERNET hFtpSession;
	HINTERNET hFile;
	DWORD WriteBytes;

	/* 元となるHTMLドキュメントを作成 */
	GetLocalTime(&st);

	wsprintf(buf, "<html>\n\t<body>\n\t\t現在の時刻は %04d/%02d/%02d %02d:%02d:%02dです.\n\t</body>\n</html>\n",
		st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);

	/* WININETの初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,
		NULL,
		0);

	/* ftpサイトへ接続 */
	hFtpSession = InternetConnect(
		hInternet,
		"ftp.hogehoge.herohero",
		INTERNET_DEFAULT_FTP_PORT,
		"foo",
		"bar",
		INTERNET_SERVICE_FTP,
		0,
		0);

	/* “time.html”というファイルを書き込みアクセスでオープン */
	hFile = FtpOpenFile(
		hFtpSession,
		"time.html",
		GENERIC_WRITE,
		FTP_TRANSFER_TYPE_ASCII,
		0);

	/* オープンしたファイルへHTMLドキュメントの内容を書き込む */
	InternetWriteFile(
		hFile,
		buf,
		lstrlen(buf) + 1,
		&WriteBytes);

	/* 後処理 */
	InternetCloseHandle(hFile);
	InternetCloseHandle(hFtpSession);
	InternetCloseHandle(hInternet);
	
}

(original text:1999/04/21 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。