| 121 |
static BOOL CreateLogBuf(void); |
static BOOL CreateLogBuf(void); |
| 122 |
static BOOL CreateBinBuf(void); |
static BOOL CreateBinBuf(void); |
| 123 |
void LogPut1(BYTE b); |
void LogPut1(BYTE b); |
| 124 |
|
static void OutputStr(const wchar_t *str); |
| 125 |
|
|
| 126 |
static BOOL OpenFTDlg_(PFileVar fv) |
static BOOL OpenFTDlg_(PFileVar fv) |
| 127 |
{ |
{ |
| 1202 |
{ 0, "DLG_COMMENT_TITLE" }, |
{ 0, "DLG_COMMENT_TITLE" }, |
| 1203 |
{ IDOK, "BTN_OK" } |
{ IDOK, "BTN_OK" } |
| 1204 |
}; |
}; |
|
UINT ret; |
|
| 1205 |
|
|
| 1206 |
switch (msg) { |
switch (msg) { |
| 1207 |
case WM_INITDIALOG: |
case WM_INITDIALOG: |
|
//SetDlgItemText(hDlgWnd, IDC_EDIT_COMMENT, "サンプル"); |
|
| 1208 |
// エディットコントロールにフォーカスをあてる |
// エディットコントロールにフォーカスをあてる |
| 1209 |
SetFocus(GetDlgItem(hDlgWnd, IDC_EDIT_COMMENT)); |
SetFocus(GetDlgItem(hDlgWnd, IDC_EDIT_COMMENT)); |
| 1210 |
SetDlgTexts(hDlgWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); |
SetDlgTexts(hDlgWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); |
| 1214 |
switch (LOWORD(wp)) { |
switch (LOWORD(wp)) { |
| 1215 |
case IDOK: { |
case IDOK: { |
| 1216 |
size_t len = _SendDlgItemMessageW(hDlgWnd, IDC_EDIT_COMMENT, WM_GETTEXTLENGTH, 0, 0); |
size_t len = _SendDlgItemMessageW(hDlgWnd, IDC_EDIT_COMMENT, WM_GETTEXTLENGTH, 0, 0); |
| 1217 |
wchar_t *buf = (wchar_t *)malloc((len + 1) * sizeof(wchar_t)); |
len += 1; |
| 1218 |
|
wchar_t *buf = (wchar_t *)malloc(len * sizeof(wchar_t)); |
| 1219 |
_GetDlgItemTextW(hDlgWnd, IDC_EDIT_COMMENT, buf, len); |
_GetDlgItemTextW(hDlgWnd, IDC_EDIT_COMMENT, buf, len); |
|
buf[len] = '\0'; // null-terminate |
|
| 1220 |
FLogWriteStr(buf); |
FLogWriteStr(buf); |
| 1221 |
FLogWriteStr(L"\n"); // TODO 改行コード |
FLogWriteStr(L"\n"); // TODO 改行コード |
| 1222 |
free(buf); |
free(buf); |
| 1227 |
return FALSE; |
return FALSE; |
| 1228 |
} |
} |
| 1229 |
break; |
break; |
| 1230 |
|
|
| 1231 |
case WM_CLOSE: |
case WM_CLOSE: |
| 1232 |
TTEndDialog(hDlgWnd, 0); |
TTEndDialog(hDlgWnd, 0); |
| 1233 |
return TRUE; |
return TRUE; |
| 1314 |
void FLogWriteStr(const wchar_t *str) |
void FLogWriteStr(const wchar_t *str) |
| 1315 |
{ |
{ |
| 1316 |
if (LogVar != NULL) { |
if (LogVar != NULL) { |
| 1317 |
|
#if 0 |
| 1318 |
DWORD wrote; |
DWORD wrote; |
| 1319 |
size_t len = wcslen(str) * sizeof(wchar_t); |
size_t len = wcslen(str) * sizeof(wchar_t); |
| 1320 |
logfile_lock(); |
logfile_lock(); |
| 1324 |
LogVar->ByteCount = |
LogVar->ByteCount = |
| 1325 |
LogVar->ByteCount + len; |
LogVar->ByteCount + len; |
| 1326 |
LogVar->FLogDlg->RefreshNum(LogVar->StartTime, LogVar->FileSize, LogVar->ByteCount); |
LogVar->FLogDlg->RefreshNum(LogVar->StartTime, LogVar->FileSize, LogVar->ByteCount); |
| 1327 |
|
#endif |
| 1328 |
|
OutputStr(str); |
| 1329 |
} |
} |
| 1330 |
} |
} |
| 1331 |
|
|
| 1622 |
PFileVar fv = LogVar; |
PFileVar fv = LogVar; |
| 1623 |
fv->log_code = code; |
fv->log_code = code; |
| 1624 |
} |
} |
| 1625 |
|
|
| 1626 |
|
static void OutputStr(const wchar_t *str) |
| 1627 |
|
{ |
| 1628 |
|
size_t len; |
| 1629 |
|
|
| 1630 |
|
assert(str != NULL); |
| 1631 |
|
|
| 1632 |
|
len = wcslen(str); |
| 1633 |
|
while(*str != 0) { |
| 1634 |
|
unsigned int u32; |
| 1635 |
|
size_t u16_len = UTF16ToUTF32(str, len, &u32); |
| 1636 |
|
switch (u16_len) { |
| 1637 |
|
case 0: |
| 1638 |
|
default: |
| 1639 |
|
// 変換できない |
| 1640 |
|
str++; |
| 1641 |
|
len--; |
| 1642 |
|
break; |
| 1643 |
|
case 1: |
| 1644 |
|
case 2: { |
| 1645 |
|
FLogPutUTF32(u32); |
| 1646 |
|
str += u16_len; |
| 1647 |
|
len -= u16_len; |
| 1648 |
|
break; |
| 1649 |
|
} |
| 1650 |
|
} |
| 1651 |
|
} |
| 1652 |
|
} |