BOOL TSaveCommonDlg::SetInfo(void) { char buf[MAX_BUF], sizestr[MAX_LISTBUF]; Wstr fname_w(shareInfo->fileInfo[offset]->Fname()); ::SetDlgItemTextW(::GetParent(hWnd), 0x480, fname_w.Buf()); if (GET_MODE(shareInfo->fileInfo[offset]->Attr()) == IPMSG_FILE_DIR) strcpy(sizestr, GetLoadStrU8(IDS_DIRSAVE)); else MakeSizeString(sizestr, shareInfo->fileInfo[offset]->Size()); wsprintf(buf, GetLoadStrU8(IDS_FILEINFO), offset + 1, shareInfo->fileCnt, shareInfo->fileInfo[offset]->Fname(), sizestr); SetDlgItemTextU8(RESULT_STATIC, buf); _int64 total_size = 0; for (int i=0; i < shareInfo->fileCnt; i++) total_size += shareInfo->fileInfo[i]->Size(); MakeSizeString(sizestr, total_size); wsprintf(buf, GetLoadStrU8(IDS_LUMPBUTTON), sizestr, shareInfo->fileCnt); SetDlgItemTextU8(LUMP_CHECK, buf); const char *ext = strrchr(shareInfo->fileInfo[offset]->Fname(), '.'); isLinkFile = (ext && stricmp(ext, ".lnk") == 0) ? TRUE : FALSE; return TRUE; }
/* メインダイアログ用 WM_INITDIALOG 処理ルーチン */ BOOL TUninstDlg::EvCreate(LPARAM lParam) { char title[256], title2[256]; GetWindowText(title, sizeof(title)); ::wsprintf(title2, "%s ver%s", title, GetVersionStr()); SetWindowText(title2); GetWindowRect(&rect); int cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN); int xsize = rect.right - rect.left, ysize = rect.bottom - rect.top; ::SetClassLong(hWnd, GCL_HICON, (LONG)::LoadIcon(TApp::GetInstance(), (LPCSTR)SETUP_ICON)); MoveWindow((cx - xsize)/2, (cy - ysize)/2, xsize, ysize, TRUE); Show(); // 現在ディレクトリ設定 char resetupDir[MAX_PATH_U8]; GetModuleFileNameU8(NULL, resetupDir, sizeof(resetupDir)); GetParentDirU8(resetupDir, resetupDir); SetDlgItemTextU8(RESETUP_EDIT, resetupDir); if (runasWnd) { ::SendMessage(runasWnd, IPMSG_QUIT_MESSAGE, 0, 0); CheckDlgButton(DELPUBKEY_CHECK, 1); PostMessage(WM_COMMAND, IDOK, 0); } return TRUE; }
/* Window生成ルーチン */ BOOL TMsgDlg::Create(char *text, char *title, int _showMode) { showMode = _showMode; if (!TDlg::Create()) return FALSE; SetDlgItemTextU8(MESSAGE_TEXT, text); SetWindowTextU8(title); if (showMode == SW_SHOW) { DWORD key = GetAsyncKeyState(VK_LBUTTON) | GetAsyncKeyState(VK_RBUTTON) | GetAsyncKeyState(VK_MBUTTON); ::EnableWindow(hWnd, TRUE); ::ShowWindow(hWnd, (key & 0x8000) ? SW_SHOWNOACTIVATE : SW_SHOW); } else { ::ShowWindow(hWnd, SW_SHOWMINNOACTIVE); ::EnableWindow(hWnd, TRUE); } if (strstr(text, "\r\n")) { WINDOWPLACEMENT wp; wp.length = sizeof(wp); ::GetWindowPlacement(GetDlgItem(MESSAGE_TEXT), &wp); wp.rcNormalPosition.top -= ::GetSystemMetrics(SM_CYCAPTION) / 4; ::SetWindowPlacement(GetDlgItem(MESSAGE_TEXT), &wp); } return TRUE; }
BOOL TPasswordDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl) { switch (wID) { case IDOK: { char _buf[MAX_NAMEBUF]; char *buf = outbuf ? outbuf : _buf; GetDlgItemTextU8(PASSWORD_EDIT, buf, MAX_NAMEBUF); if (cfg) { if (CheckPassword(cfg->PasswordStr, buf)) EndDialog(TRUE); else SetDlgItemTextU8(PASSWORD_EDIT, ""), MessageBoxU8(GetLoadStrU8(IDS_CANTAUTH)); } else EndDialog(TRUE); } return TRUE; case IDCANCEL: EndDialog(FALSE); return TRUE; } return FALSE; }
/* Window 生成時の CallBack */ BOOL TAboutDlg::EvCreate(LPARAM lParam) { SetDlgIcon(hWnd); char buf[512], buf2[512]; GetDlgItemTextU8(ABOUT_TEXT, buf, sizeof(buf)); wsprintf(buf2, buf, GetVersionStr()); SetDlgItemTextU8(ABOUT_TEXT, buf2); if (rect.left == CW_USEDEFAULT) { GetWindowRect(&rect); int xsize = rect.right - rect.left, ysize = rect.bottom - rect.top; int cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN); int x = (cx - xsize)/2; int y = (cy - ysize)/2; MoveWindow((x < 0) ? 0 : x % (cx - xsize), (y < 0) ? 0 : y % (cy - ysize), xsize, ysize, FALSE); } else MoveWindow(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, FALSE); return TRUE; }
BOOL TRecvDlg::SaveFile(void) { int target; for (target=0; target < shareInfo->fileCnt; target++) if (shareInfo->fileInfo[target]->IsSelected()) break; if (target == shareInfo->fileCnt) return FALSE; memset(fileObj, 0, (char *)&fileObj->totalTrans - (char *)fileObj); fileObj->conInfo = new ConnectInfo; fileObj->fileInfo = shareInfo->fileInfo[target]; fileObj->isDir = GET_MODE(fileObj->fileInfo->Attr()) == IPMSG_FILE_DIR ? TRUE : FALSE; fileObj->status = fileObj->isDir ? FS_DIRFILESTART : FS_TRANSFILE; fileObj->hFile = INVALID_HANDLE_VALUE; if (fileObj->isDir) strncpyz(fileObj->path, fileObj->saveDir, MAX_PATH_U8); if (ConnectRecvFile()) SetDlgItemTextU8(FILE_BUTTON, GetLoadStrU8(IDS_PREPARETRANS)); else { delete fileObj->conInfo; fileObj->conInfo = NULL; } fileObj->startTick = ::GetTickCount(); return TRUE; }
BOOL RecvTransEndDlg::EvCreate(LPARAM lParam) { char buf[MAX_BUF]; DWORD difftick = fileObj->lastTick - fileObj->startTick; int len = 0; len += wsprintf(buf + len, "Total: "); len += MakeSizeString(buf + len, fileObj->totalTrans); len += wsprintf(buf + len, " ("); len += MakeSizeString(buf + len, fileObj->totalTrans * 1000 / (difftick ? difftick : 1)); len += wsprintf(buf + len, "/s)\r\n%d", difftick/1000); if (difftick/1000 < 20) len += wsprintf(buf + len, ".%02d", (difftick%1000) / 10); len += wsprintf(buf + len, " sec "); if (fileObj->totalFiles > 1 || fileObj->isDir) len += wsprintf(buf + len, "%d files", fileObj->totalFiles); else len += wsprintf(buf + len, "%s", fileObj->fileInfo->Fname()); if (fileObj->status == FS_COMPLETE) { if (fileObj->totalFiles > 1 || fileObj->isDir) ::EnableWindow(GetDlgItem(EXEC_BUTTON), FALSE); } SetDlgItemTextU8(FILE_STATIC, buf); GetWindowRect(&rect); MoveWindow(rect.left + 30, rect.top + 30, rect.right - rect.left, rect.bottom - rect.top, TRUE); return TRUE; }
/* User定義 Event CallBack */ BOOL TAbsenceDlg::EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DELAYSETTEXT: { int len = strlen(tmpAbsenceStr[currentChoice]); SetDlgItemTextU8(ABSENCEHEAD_EDIT, tmpAbsenceHead[currentChoice]); SetDlgItemTextU8(ABSENCE_EDIT, tmpAbsenceStr[currentChoice]); SendDlgItemMessage(ABSENCE_EDIT, EM_SETSEL, (WPARAM)len, (LPARAM)len); } return TRUE; } return FALSE; }
void TRecvDlg::SetTransferButtonText(void) { char buf[MAX_LISTBUF]; if (fileObj->conInfo == NULL) return; if (fileObj->isDir) MakeDirTransRateStr(buf, fileObj->conInfo->lastTick - fileObj->startTick, fileObj->totalTrans + fileObj->offset, fileObj->totalFiles); else MakeTransRateStr(buf, fileObj->conInfo->lastTick - fileObj->conInfo->startTick, fileObj->status < FS_COMPLETE ? fileObj->offset : fileObj->curFileInfo.Size(), fileObj->curFileInfo.Size()); SetDlgItemTextU8(FILE_BUTTON, buf); }
BOOL TFindDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl) { switch (wID) { case IDOK: int cnt; GetDlgItemTextU8(FIND_COMBO, cfg->FindStr[0], MAX_NAMEBUF); cfg->FindAll = SendDlgItemMessage(ALLFIND_CHECK, BM_GETCHECK, 0, 0); if (sendDlg->FindHost(cfg->FindStr[0])) { for (cnt=1; cnt < cfg->FindMax; cnt++) { if (stricmp(cfg->FindStr[cnt], cfg->FindStr[0]) == 0) break; } memmove(cfg->FindStr[2], cfg->FindStr[1], (cnt == cfg->FindMax ? cnt-2 : cnt-1) * MAX_NAMEBUF); memcpy(cfg->FindStr[1], cfg->FindStr[0], MAX_NAMEBUF); DWORD start, end; // エディット部の選択状態の保存 SendDlgItemMessage(FIND_COMBO, CB_GETEDITSEL, (WPARAM)&start, (LPARAM)&end); // CB_RESETCONTENT でエディット部がクリア // なお、DELETESTRING でも edit 同名stringの場合、同じくクリアされる SendDlgItemMessage(FIND_COMBO, CB_RESETCONTENT, 0, 0); for (cnt=1; cnt < cfg->FindMax && cfg->FindStr[cnt][0]; cnt++) { Wstr find_w(cfg->FindStr[cnt], BY_UTF8); SendDlgItemMessageW(FIND_COMBO, CB_INSERTSTRING, cnt-1, (LPARAM)find_w.Buf()); } SetDlgItemTextU8(FIND_COMBO, cfg->FindStr[0]); SendDlgItemMessage(FIND_COMBO, CB_SETEDITSEL, 0, MAKELPARAM(start, end)); } cfg->WriteRegistry(CFG_FINDHIST); return TRUE; case IDCANCEL: case CLOSE_BUTTON: sendDlg->FilterHost(""); EndDialog(FALSE); return TRUE; case FIND_COMBO: if (wNotifyCode == CBN_EDITCHANGE) { FilterHost(); } else if (wNotifyCode == CBN_SELCHANGE) { PostMessage(WM_FINDDLG_DELAY, 0, 0); } return TRUE; } return FALSE; }
BOOL TSetupSheet::CheckData() { char buf[MAX_PATH_U8]; int val; if (resId == SETUP_SHEET3) { GetDlgItemTextU8(LRUUSER_EDIT, buf, sizeof(buf)); if ((val = atoi(buf)) > MAX_LRUUSER || val < 0) { MessageBox(FmtStr(GetLoadStr(IDS_TOOMANYLRU), MAX_LRUUSER)); return FALSE; } } else if (resId == SETUP_SHEET4) { GetDlgItemTextU8(LOG_EDIT, buf, sizeof(buf)); if (GetDriveType(NULL) == DRIVE_REMOTE && !SendDlgItemMessage(LOG_CHECK, BM_GETCHECK, 0, 0) && strchr(buf, '\\')) { MessageBox(GetLoadStr(IDS_LOGALERT)); return FALSE; } } else if (resId == SETUP_SHEET5) { char buf1[MAX_NAMEBUF], buf2[MAX_NAMEBUF], buf3[MAX_NAMEBUF]; GetDlgItemTextU8(OLDPASSWORD_EDIT, buf1, sizeof(buf1)); GetDlgItemTextU8(NEWPASSWORD_EDIT, buf2, sizeof(buf2)); GetDlgItemTextU8(NEWPASSWORD_EDIT2, buf3, sizeof(buf3)); if (strcmp(buf2, buf3) != 0) { MessageBoxU8(GetLoadStrU8(IDS_NOTSAMEPASS)); return FALSE; } if (!CheckPassword(cfg->PasswordStr, buf1)) { if (*buf1 || *buf2 || *buf3) { SetDlgItemTextU8(PASSWORD_EDIT, ""); MessageBoxU8(GetLoadStrU8(IDS_CANTAUTH)); return FALSE; } } } return TRUE; }
BOOL TAbsenceDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl) { switch (wID) { case IDOK: GetData(); cfg->WriteRegistry(CFG_ABSENCE); cfg->AbsenceCheck = FALSE; ::PostMessage(GetMainWnd(), WM_COMMAND, MENU_ABSENCE, 0); EndDialog(TRUE); return TRUE; case SET_BUTTON: GetData(); cfg->WriteRegistry(CFG_ABSENCE); if (cfg->AbsenceCheck) { cfg->AbsenceCheck = FALSE; ::PostMessage(GetMainWnd(), WM_COMMAND, MENU_ABSENCE, 0); } EndDialog(FALSE); return TRUE; case IDCANCEL: EndDialog(FALSE); return TRUE; case ABSENCEINIT_BUTTON: SetDlgItemTextU8(ABSENCEHEAD_EDIT, DefaultAbsenceHead[currentChoice]); SetDlgItemTextU8(ABSENCE_EDIT, DefaultAbsence[currentChoice]); return TRUE; case HIDE_ACCEL: ::PostMessage(GetMainWnd(), WM_HIDE_CHILDWIN, 0, 0); return TRUE; case ABSENCE_LIST: if (wNotifyCode == LBN_SELCHANGE) { int index; if ((index = (int)SendDlgItemMessage(ABSENCE_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR) { char oldAbsenceHead[MAX_NAMEBUF]; strcpy(oldAbsenceHead, tmpAbsenceHead[currentChoice]); GetDlgItemTextU8(ABSENCEHEAD_EDIT, tmpAbsenceHead[currentChoice], MAX_NAMEBUF); GetDlgItemTextU8(ABSENCE_EDIT, tmpAbsenceStr[currentChoice], MAX_PATH_U8); if (strcmp(oldAbsenceHead, tmpAbsenceHead[currentChoice])) { SendDlgItemMessage(ABSENCE_LIST, LB_DELETESTRING, currentChoice, 0); Wstr head_w(tmpAbsenceHead[currentChoice], BY_UTF8); SendDlgItemMessageW(ABSENCE_LIST, LB_INSERTSTRING, currentChoice, (LPARAM)head_w.Buf()); if (currentChoice == index) { SendDlgItemMessage(ABSENCE_LIST, LB_SETCURSEL, currentChoice, 0); return TRUE; } } currentChoice = index; PostMessage(WM_DELAYSETTEXT, 0, 0); } } else if (wNotifyCode == LBN_DBLCLK) PostMessage(WM_COMMAND, IDOK, 0); return TRUE; } return FALSE; }
/* メインダイアログ用 WM_INITDIALOG 処理ルーチン */ BOOL TInstDlg::EvCreate(LPARAM lParam) { char title[256], title2[256]; GetWindowText(title, sizeof(title)); ::wsprintf(title2, "%s ver%s", title, GetVersionStr()); SetWindowText(title2); GetWindowRect(&rect); int cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN); int xsize = rect.right - rect.left, ysize = rect.bottom - rect.top; ::SetClassLong(hWnd, GCL_HICON, (LONG)::LoadIcon(TApp::GetInstance(), (LPCSTR)SETUP_ICON)); MoveWindow((cx - xsize)/2, (cy - ysize)/2, xsize, ysize, TRUE); Show(); if (IsWinVista() && !::IsUserAnAdmin() && TIsEnableUAC()) { HWND hRunas = GetDlgItem(RUNAS_BUTTON); ::SetWindowLong(hRunas, GWL_STYLE, ::GetWindowLong(hRunas, GWL_STYLE)|WS_VISIBLE); ::SendMessage(hRunas, BCM_SETSHIELD, 0, 1); } // 現在ディレクトリ設定 char buf[MAX_PATH_U8], setupDir[MAX_PATH_U8]; #ifdef _WIN64 char x86dir[MAX_PATH_U8] = ""; #endif // Program Filesのパス取り出し TRegistry reg(HKEY_LOCAL_MACHINE); if (reg.OpenKey(REGSTR_PATH_SETUP)) { if (reg.GetStr(REGSTR_PROGRAMFILES, buf, sizeof(buf))) { MakePath(setupDir, buf, IPMSG_STR); } #ifdef _WIN64 if (reg.GetStr(REGSTR_PROGRAMFILESX86, buf, sizeof(buf))) MakePath(x86dir, buf, IPMSG_STR); #endif reg.CloseKey(); } // 既にセットアップされている場合は、セットアップディレクトリを読み出す if (reg.OpenKey(REGSTR_PATH_APPPATHS)) { if (reg.OpenKey(IPMSG_EXENAME)) { if (reg.GetStr(REGSTR_PATH, buf, sizeof(buf))) { #ifdef _WIN64 if (strcmp(buf, x86dir)) #endif strcpy(setupDir, buf); } reg.CloseKey(); } reg.CloseKey(); } SetDlgItemTextU8(FILE_EDIT, setupDir); CheckDlgButton(STARTUP_CHECK, 1); CheckDlgButton(PROGRAM_CHECK, 1); CheckDlgButton(DESKTOP_CHECK, 1); CheckDlgButton(EXTRACT_CHECK, 0); char *p = strstr(GetCommandLine(), "runas="); if (p) { runasWnd = (HWND)strtoul(p+6, 0, 16); if (!runasWnd || !IsWindow(runasWnd)) PostQuitMessage(0); if ((p = strstr(p, ",imm="))) runasImm = atoi(p+5); CheckDlgButton(EXTRACT_CHECK, ::IsDlgButtonChecked(runasWnd, EXTRACT_CHECK)); CheckDlgButton(STARTUP_CHECK, ::IsDlgButtonChecked(runasWnd, STARTUP_CHECK)); CheckDlgButton(PROGRAM_CHECK, ::IsDlgButtonChecked(runasWnd, PROGRAM_CHECK)); CheckDlgButton(DESKTOP_CHECK, ::IsDlgButtonChecked(runasWnd, DESKTOP_CHECK)); WCHAR wbuf[MAX_PATH] = L""; ::SendDlgItemMessageW(runasWnd, FILE_EDIT, WM_GETTEXT, MAX_PATH, (LPARAM)wbuf); SetDlgItemTextU8(FILE_EDIT, WtoU8s(wbuf)); ::SendMessage(runasWnd, WM_IPMSG_HIDE, 0, 0); if (runasImm) { PostMessage(WM_IPMSG_INSTALL, 0, 0); } } return TRUE; }
BOOL TSetupSheet::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl) { char buf[MAX_PATH_U8] = "", buf2[MAX_PATH_U8] = "", protocol[MAX_LISTBUF] = ""; int i; UrlObj *obj; if (resId == SETUP_SHEET1) { switch (wID) { case ADD_BUTTON: if (GetDlgItemText(BROADCAST_EDIT, buf, sizeof(buf)) <= 0) return TRUE; if (ResolveAddr(buf) == 0) return MessageBox(GetLoadStr(IDS_CANTRESOLVE)), TRUE; for (i=0; SendDlgItemMessage(BROADCAST_LIST, LB_GETTEXT, i, (LPARAM)buf2) != LB_ERR; i++) { if (stricmp(buf, buf2) == 0) return TRUE; } SendDlgItemMessage(BROADCAST_LIST, LB_ADDSTRING, 0, (LPARAM)buf); SetDlgItemText(BROADCAST_EDIT, ""); return TRUE; case DEL_BUTTON: while ((int)SendDlgItemMessage(BROADCAST_LIST, LB_GETSELCOUNT, 0, 0) > 0) { if (SendDlgItemMessage(BROADCAST_LIST, LB_GETSELITEMS, 1, (LPARAM)&i) != 1) break; SendDlgItemMessage(BROADCAST_LIST, LB_GETTEXT, (WPARAM)i, (LPARAM)buf); SetDlgItemText(BROADCAST_EDIT, buf); if (SendDlgItemMessage(BROADCAST_LIST, LB_DELETESTRING, (WPARAM)i, (LPARAM)buf) == LB_ERR) break; } return TRUE; } } else if (resId == SETUP_SHEET2) { switch (wID) { case MAINICON_BUTTON: case REVICON_BUTTON: OpenFileDlg(this).Exec(wID == MAINICON_BUTTON ? MAINICON_EDIT : REVICON_EDIT, GetLoadStrU8(IDS_OPENFILEICON), GetLoadStrAsFilterU8(IDS_OPENFILEICONFLTR)); return TRUE; } } else if (resId == SETUP_SHEET3) { switch (wID) { case SENDDETAIL_BUTTON: { TSortDlg(cfg, this).Exec(); return TRUE; } case SOUNDFILE_BUTTON: GetWindowsDirectoryU8(buf, sizeof(buf)); strcat(buf, "\\Media"); GetCurrentDirectoryU8(sizeof(buf2), buf2); OpenFileDlg(this).Exec(SOUND_EDIT, GetLoadStrU8(IDS_OPENFILESND), GetLoadStrAsFilterU8(IDS_OPENFILESNDFLTR), buf); SetCurrentDirectoryU8(buf2); return TRUE; case SOUNDPLAY_BUTTON: if (GetDlgItemTextU8(SOUND_EDIT, buf, sizeof(buf)) > 0) { PlaySoundU8(buf, 0, SND_FILENAME|SND_ASYNC); } return TRUE; } } else if (resId == SETUP_SHEET4) { switch (wID) { case LOGFILE_BUTTON: OpenFileDlg(this, OpenFileDlg::SAVE).Exec(LOG_EDIT, GetLoadStrU8(IDS_OPENFILELOG), GetLoadStrAsFilterU8(IDS_OPENFILELOGFLTR)); return TRUE; } } else if (resId == SETUP_SHEET6) { switch (wID) { case ADD_BUTTON: if ((i = (int)SendDlgItemMessage(URL_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR && SendDlgItemMessage(URL_LIST, LB_GETTEXT, (WPARAM)i, (LPARAM)protocol) != LB_ERR && (obj = SearchUrlObj(&tmpUrlList, protocol))) { wsprintf(buf, GetLoadStrU8(IDS_EXECPROGRAM), protocol); OpenFileDlg(this).Exec(URL_EDIT, buf, GetLoadStrAsFilterU8(IDS_OPENFILEPRGFLTR)); } return TRUE; case URL_LIST: if ((i = (int)SendDlgItemMessage(URL_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR && SendDlgItemMessage(URL_LIST, LB_GETTEXT, (WPARAM)i, (LPARAM)protocol) != LB_ERR && (obj = SearchUrlObj(&tmpUrlList, protocol))) { SetDlgItemTextU8(URL_EDIT, obj->program); } return TRUE; } } return FALSE; }
BOOL TSetupSheet::SetData() { if (resId == SETUP_SHEET1) { SetDlgItemTextU8(GROUP_COMBO, cfg->GroupNameStr); SetDlgItemTextU8(NICKNAME_EDIT, cfg->NickNameStr); CheckDlgButton(CLIPMODE_CHECK, (cfg->ClipMode & CLIP_ENABLE)); CheckDlgButton(CLIPCONFIRM_CHECK, (cfg->ClipMode & CLIP_CONFIRM) ? 1 : 0); for (TBrObj *obj=cfg->brList.Top(); obj; obj=cfg->brList.Next(obj)) SendDlgItemMessage(BROADCAST_LIST, LB_ADDSTRING, 0, (LPARAM)obj->Host()); for (int i=0; i < hosts->HostCnt(); i++) { Host *host = hosts->GetHost(i); if (*host->groupName) { Wstr group_w(host->groupName, BY_UTF8); if (SendDlgItemMessageW(GROUP_COMBO, CB_FINDSTRING, (WPARAM)-1, (LPARAM)group_w.Buf()) == CB_ERR) { SendDlgItemMessageW(GROUP_COMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)group_w.Buf()); } } } CheckDlgButton(DIALUP_CHECK, cfg->DialUpCheck); } else if (resId == SETUP_SHEET2) { CheckDlgButton(BALLOONNOTIFY_CHECK, cfg->BalloonNotify); SendDlgItemMessage(OPEN_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_OPENCHECK_NONE)); SendDlgItemMessage(OPEN_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_OPENCHECK_BALLOON)); SendDlgItemMessage(OPEN_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_OPENCHECK_DLG)); SendDlgItemMessage(OPEN_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_OPENCHECK_ICON)); SendDlgItemMessage(OPEN_COMBO, CB_SETCURSEL, cfg->OpenCheck, 0); // CheckDlgButton(OPEN_CHECK, cfg->OpenCheck); SetDlgItemTextU8(QUOTE_EDIT, cfg->QuoteStr); CheckDlgButton(HOTKEY_CHECK, cfg->HotKeyCheck); CheckDlgButton(ABNORMALBTN_CHECK, cfg->AbnormalButton); if (cfg->lcid != -1 || GetSystemDefaultLCID() == 0x411) { ::ShowWindow(GetDlgItem(LCID_CHECK), SW_SHOW); ::EnableWindow(GetDlgItem(LCID_CHECK), TRUE); CheckDlgButton(LCID_CHECK, cfg->lcid == -1 || cfg->lcid == 0x411 ? FALSE : TRUE); } SendDlgItemMessage(EXTBROADCAST_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_LIMITED)); SendDlgItemMessage(EXTBROADCAST_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_DIRECTED)); SendDlgItemMessage(EXTBROADCAST_COMBO, CB_ADDSTRING, 0, (LPARAM)GetLoadStr(IDS_BOTH)); SendDlgItemMessage(EXTBROADCAST_COMBO, CB_SETCURSEL, cfg->ExtendBroadcast, 0); SetDlgItemTextU8(MAINICON_EDIT, cfg->IconFile); SetDlgItemTextU8(REVICON_EDIT, cfg->RevIconFile); } else if (resId == SETUP_SHEET3) { CheckDlgButton(QUOTE_CHECK, cfg->QuoteCheck); CheckDlgButton(SECRET_CHECK, cfg->SecretCheck); CheckDlgButton(ONECLICK_CHECK, cfg->OneClickPopup); SetDlgItemTextU8(LRUUSER_EDIT, FmtStr("%d", cfg->lruUserMax)); // ControlIME ... 0:off, 1:senddlg on (finddlg:off), 2:always on CheckDlgButton(CONTROLIME_CHECK, cfg->ControlIME ? 1 : 0); CheckDlgButton(FINDDLGIME_CHECK, cfg->ControlIME >= 2 ? 0 : 1); CheckDlgButton(NOPOPUP_CHECK, cfg->NoPopupCheck); CheckDlgButton(ABSENCENONPOPUP_CHECK, cfg->AbsenceNonPopup); CheckDlgButton(NOBEEP_CHECK, cfg->NoBeep); CheckDlgButton(RECVLOGON_CHECK, cfg->RecvLogonDisp); CheckDlgButton(RECVIPADDR_CHECK, cfg->RecvIPAddr); CheckDlgButton(NOERASE_CHECK, cfg->NoErase); SetDlgItemTextU8(SOUND_EDIT, cfg->SoundFile); } else if (resId == SETUP_SHEET4) { CheckDlgButton(LOG_CHECK, cfg->LogCheck); CheckDlgButton(LOGONLOG_CHECK, cfg->LogonLog); CheckDlgButton(IPADDR_CHECK, cfg->IPAddrCheck); CheckDlgButton(IMAGESAVE_CHECK, (cfg->ClipMode & 2) ? 1 : 0); CheckDlgButton(LOGUTF8_CHECK, cfg->LogUTF8); CheckDlgButton(PASSWDLOG_CHECK, cfg->PasswdLogCheck); SetDlgItemTextU8(LOG_EDIT, cfg->LogFile); } else if (resId == SETUP_SHEET5) { if (*cfg->PasswordStr == 0) ::EnableWindow(GetDlgItem(OLDPASSWORD_EDIT), FALSE); } else if (resId == SETUP_SHEET6) { CheckDlgButton(DEFAULTURL_CHECK, cfg->DefaultUrl); for (UrlObj *obj = (UrlObj *)cfg->urlList.TopObj(); obj; obj = (UrlObj *)cfg->urlList.NextObj(obj)) { UrlObj *tmp_obj = new UrlObj; strcpy(tmp_obj->protocol, obj->protocol); strcpy(tmp_obj->program, obj->program); tmpUrlList.AddObj(tmp_obj); SendDlgItemMessage(URL_LIST, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)obj->protocol); } CheckDlgButton(SHELLEXEC_CHECK, cfg->ShellExec); SendDlgItemMessage(URL_LIST, LB_SETCURSEL, curIdx >= 0 ? curIdx : 0, 0); PostMessage(WM_COMMAND, URL_LIST, 0); } return TRUE; }
BOOL TRecvDlg::EvCreate(LPARAM lParam) { editSub.AttachWnd(GetDlgItem(RECV_EDIT)); editSub.SendMessage(EM_AUTOURLDETECT, 1, 0); editSub.SendMessage(EM_SETBKGNDCOLOR, FALSE, ::GetSysColor(COLOR_3DFACE)); editSub.SendMessage(EM_SETTARGETDEVICE, 0, 0); // 折り返し SetDlgIcon(hWnd); SetDlgItemTextU8(RECV_HEAD, head); if (msg.command & IPMSG_BROADCASTOPT) SetDlgItemTextU8(RECV_TITLE, GetLoadStrU8(IDS_BROADCAST)); else if (msg.command & IPMSG_MULTICASTOPT) SetDlgItemTextU8(RECV_TITLE, GetLoadStrU8(IDS_MULTICAST)); else SetDlgItemTextU8(RECV_TITLE, GetLoadStrU8(IDS_UNICAST)); if (msg.command & IPMSG_AUTORETOPT) SetDlgItemTextU8(RECV_TITLE, GetLoadStrU8(IDS_UNIABSENCE)); char buf[MAX_LISTBUF]; if (msg.command & IPMSG_ENCRYPTOPT) { GetWindowText(buf, sizeof(buf)); strcat(buf, (cryptCapa & IPMSG_BLOWFISH_128) ? " +" : " -"); SetWindowText(buf); } wsprintf(head, "at %s", Ctime(&recvTime)); SetDlgItemTextU8(RECV_HEAD2, head); editSub.ExSetText(msg.msgBuf); if (msg.command & IPMSG_SECRETOPT) editSub.ShowWindow(SW_HIDE), ::ShowWindow(GetDlgItem(QUOTE_CHECK), SW_HIDE); else { ::ShowWindow(GetDlgItem(OPEN_BUTTON), SW_HIDE), openFlg = TRUE; if (shareInfo) SetFileButton(this, FILE_BUTTON, shareInfo); } if (msg.command & IPMSG_FILEATTACHOPT) { GetDlgItemTextU8(OPEN_BUTTON, buf, sizeof(buf)); strcat(buf, " "); strcat(buf, GetLoadStrU8(IDS_FILEATTACH)); SetDlgItemTextU8(OPEN_BUTTON, buf); } if (msg.command & IPMSG_PASSWORDOPT) { GetDlgItemTextU8(OPEN_BUTTON, buf, sizeof(buf)); strcat(buf, GetLoadStrU8(IDS_KEYOPEN)); SetDlgItemTextU8(OPEN_BUTTON, buf); } if (cfg->QuoteCheck) SendDlgItemMessage(QUOTE_CHECK, BM_SETCHECK, cfg->QuoteCheck, 0); if (cfg->AbnormalButton) SetDlgItemTextU8(IDOK, GetLoadStrU8(IDS_INTERCEPT)); SetFont(); SetSize(); HMENU hMenu = ::GetSystemMenu(hWnd, FALSE); AppendMenuU8(hMenu, MF_SEPARATOR, NULL, NULL); SetMainMenu(hMenu); if (IsNewShell() != TRUE) { ULONG style = GetWindowLong(GWL_STYLE); style &= 0xffffff0f; style |= 0x00000080; SetWindowLong(GWL_STYLE, style); } SetForegroundWindow(); if (msg.command & IPMSG_NOADDLISTOPT) ::EnableWindow(GetDlgItem(IDOK), FALSE); EvSize(SIZE_RESTORED, 0, 0); return TRUE; }