開発環境 |
Microsoft Visual C++ 2010 Express (SP1) |
実行環境 |
Microsoft Windows XP Home Edition (SP3) |
プロジェクトの種類 |
Win32 プロジェクト |
プロジェクト名 |
WinInetTest |
アプリケーションの種類 |
Windows アプリケーション |
追加のオプション |
空のプロジェクト |
参考
WinInetTest.cpp
// マルチバイト文字セット
#pragma comment(lib, "WinInet")
#include <Windows.h>
#include <WinInet.h>
#include "resource.h"
// 関数プロトタイプ宣言
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void OnOK(HWND hDlg);
//==============================================================================
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
return 0;
}
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
INT_PTR res = TRUE; // メッセージを処理した
switch (uMsg) {
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
OnOK(hDlg);
break;
case IDCANCEL:
EndDialog(hDlg, IDCANCEL);
break;
}
break;
case WM_CLOSE:
EndDialog(hDlg, 0);
break;
default:
res = FALSE; // メッセージを処理しなかった
}
return res;
}
void OnOK(HWND hDlg)
{
TCHAR szUrl[256];
GetDlgItemText(hDlg, IDC_URL, szUrl, _countof(szUrl));
HINTERNET hInternet = InternetOpen(TEXT("WinInetTest"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
HINTERNET hFile = InternetOpenUrl(hInternet, szUrl, NULL, 0, 0, 0);
if (hFile) {
TCHAR szBuf[4096];
DWORD dwRead;
InternetReadFile(hFile, szBuf, sizeof szBuf - 1, &dwRead);
if (dwRead) {
szBuf[dwRead] = TEXT('\0');
SetDlgItemText(hDlg, IDC_TEXT, szBuf);
}
InternetCloseHandle(hFile);
}
InternetCloseHandle(hInternet);
}
resource.h
#define IDD_DIALOG 100
#define IDC_URL 1000
#define IDC_TEXT 1001
WinInetTest.rc
// resource script
#include <Windows.h>
#include "resource.h"
IDD_DIALOG DIALOGEX 100, 100, 320, 230
STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX
EXSTYLE WS_EX_APPWINDOW
CAPTION "WinInetTest"
FONT 9, "MS Pゴシック"
BEGIN
EDITTEXT IDC_URL,5,5,265,13
PUSHBUTTON "Get",IDOK,275,5,40,15
EDITTEXT IDC_TEXT,5,25,310,200,WS_VSCROLL | ES_MULTILINE | ES_WANTRETURN
END
最終更新:2013年04月18日 20:14