#include <windows.h> \r
#include <tchar.h>\r
#include <stdio.h>\r
+#include <locale.h>\r
\r
typedef int errnum_t;\r
\r
#endif\r
\r
\r
-char* g_ApplicationName = "sage_p_downloader";\r
+TCHAR* g_ApplicationName = _T("sage_p_downloader");\r
HWND g_MainWindow = NULL;\r
\r
-int DownloadByHttp( char* url, char* out_path );\r
+int DownloadByHttp( TCHAR* url, TCHAR* out_path );\r
\r
\r
-errnum_t main( int argc, char* argv[] )\r
+errnum_t _tmain( int argc, TCHAR* argv[] )\r
{\r
errnum_t e;\r
- bool b_pass;\r
- char* domain;\r
- char* download_URL;\r
- char* save_path;\r
+ bool b_pass;\r
+ TCHAR* domain;\r
+ TCHAR* download_URL;\r
+ TCHAR* save_path;\r
\r
if ( argc != 3 ) {\r
printf( "ERROR: parameter count\n" );\r
save_path = argv[2];\r
\r
b_pass = false;\r
- domain = "http://www5a.biglobe.ne.jp/~sage-p/";\r
- if ( strncmp( download_URL, domain, strlen( domain ) ) == 0 ) b_pass = true;\r
- domain = "http://www.sage-p.com/";\r
- if ( strncmp( download_URL, domain, strlen( domain ) ) == 0 ) b_pass = true;\r
+ domain = _T("http://www5a.biglobe.ne.jp/~sage-p/");\r
+ if ( _tcsncmp( download_URL, domain, _tcslen( domain ) ) == 0 ) b_pass = true;\r
+ domain = _T("http://www.sage-p.com/");\r
+ if ( _tcsncmp( download_URL, domain, _tcslen( domain ) ) == 0 ) b_pass = true;\r
\r
- printf( "Download from %s\n", download_URL );\r
- printf( "Saving to \"%s\"\n", save_path );\r
+ _tprintf( _T("Download from %s\n"), download_URL );\r
+ _tprintf( _T("Saving to \"%s\"\n"), save_path );\r
if ( ! b_pass ) {\r
- char message[0x100];\r
+ TCHAR message[0x100];\r
\r
_stprintf_s( message, _countof( message ),\r
_T("%s\n\82±\82Ì\83_\83E\83\93\83\8d\81[\83h\82É\90S\93\96\82½\82è\82ª\96³\82¯\82ê\82Î\81A\92¼\82¿\82É\95Â\82¶\82Ä\82\82¾\82³\82¢\81B\n")\r
using namespace MSXML2;\r
\r
\r
-errnum_t DownloadByHttp( char* url, char* out_path )\r
+errnum_t DownloadByHttp( TCHAR* url, TCHAR* out_path )\r
{\r
errnum_t e;\r
HRESULT hr;\r
\r
CoInitialize( NULL );\r
+ setlocale( LC_ALL, ".OCP" ); // for Unicode _tprintf\r
\r
for (;;) {\r
try {\r
\r
hr= req.CreateInstance( "Msxml2.XMLHTTP" ); IF(hr)goto err;\r
hr= req->open( "GET", url, false ); IF(hr)goto err;\r
+ hr= req->setRequestHeader( _bstr_t("Pragma"), _bstr_t("no-cache") );\r
+ IF(hr)goto err;\r
+ hr= req->setRequestHeader( _bstr_t("Cache-Control"), _bstr_t("no-cache") );\r
+ IF(hr)goto err;\r
+ hr= req->setRequestHeader( _bstr_t("If-Modified-Since"), _bstr_t("Thu, 01 Jun 1970 00:00:00 GMT") );\r
+ IF(hr)goto err;\r
hr= req->send(); IF(hr)goto err;\r
IF ( req->status != 200 ) goto err;\r
\r
hr= st->SaveToFile( _bstr_t( out_path ), adSaveCreateOverWrite ); IF(hr)goto err;\r
hr= st->Close(); IF(hr)goto err;\r
\r
+ st.Release();\r
+ req.Release();\r
+\r
e=0;\r
}\r
catch ( _com_error err ) {\r
if ( err.Error() == 0x800C0005 ) {\r
- char in[4];\r
+ TCHAR in[4];\r
\r
e = 2;\r
printf( "\83l\83b\83g\83\8f\81[\83N\82Ì\90Ú\91±\82É\8e¸\94s\82µ\82½\82©\81A\83E\83B\83\8b\83X\91Î\8dô\83\\83t\83g\82É\82æ\82Á\82Ä\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B\n" );\r
printf( "\8dÄ\8e\8e\8ds\82µ\82Ü\82·\82©\81B[Y/N]" );\r
fflush( stdout );\r
- fgets( in, sizeof(in), stdin );\r
+ _fgetts( in, sizeof(in), stdin );\r
if ( in[0] != 'Y' && in[0] != 'y' )\r
e = 1;\r
}\r