1 /*=============================================================================
\r
3 *
\83u
\83b
\83N
\83}
\81[
\83N
\r
5 ===============================================================================
\r
6 / Copyright (C) 1997-2007 Sota. All rights reserved.
\r
8 / Redistribution and use in source and binary forms, with or without
\r
9 / modification, are permitted provided that the following conditions
\r
12 / 1. Redistributions of source code must retain the above copyright
\r
13 / notice, this list of conditions and the following disclaimer.
\r
14 / 2. Redistributions in binary form must reproduce the above copyright
\r
15 / notice, this list of conditions and the following disclaimer in the
\r
16 / documentation and/or other materials provided with the distribution.
\r
18 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
\r
19 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
\r
20 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
\r
21 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
\r
22 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
\r
23 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
\r
24 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
\r
25 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
\r
26 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
\r
27 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
28 /============================================================================*/
\r
30 #define WINVER 0x400
\r
33 #include <windows.h>
\r
37 #include <mbstring.h>
\r
39 #include <windowsx.h>
\r
40 #include <commctrl.h>
\r
43 #include "resource.h"
\r
45 #include <htmlhelp.h>
\r
49 /*=====
\83v
\83\8d\83g
\83^
\83C
\83v =====*/
\r
51 static int AddBookMark(char *Path);
\r
52 static int GetBothPath(char *Str, char **Path1, char **Path2);
\r
53 static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
54 static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);
\r
56 /*=====
\8aO
\95\94\8eQ
\8fÆ =====*/
\r
58 extern HWND hHelpWin;
\r
61 extern HFONT ListFont; /*
\83\8a\83X
\83g
\83{
\83b
\83N
\83X
\82Ì
\83t
\83H
\83\93\83g */
\r
62 extern SIZE BmarkDlgSize;
\r
66 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\82ð
\83N
\83\8a\83A
\82·
\82é ----------------------------------------------
\r
73 *----------------------------------------------------------------------------*/
\r
75 void ClearBookMark(void)
\r
79 hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU);
\r
80 while(GetMenuItemCount(hMenu) > DEFAULT_BMARK_ITEM)
\r
81 DeleteMenu(hMenu, DEFAULT_BMARK_ITEM, MF_BYPOSITION);
\r
86 /*-----
\83J
\83\8c\83\93\83g
\83f
\83B
\83\8c\83N
\83g
\83\8a\82ð
\83u
\83b
\83N
\83}
\81[
\83N
\82É
\92Ç
\89Á ------------------------------
\r
89 * int Win :
\83E
\83C
\83\93\83h
\83E
\94Ô
\8d\86 (WIN_xxx)
\r
93 *----------------------------------------------------------------------------*/
\r
95 void AddCurDirToBookMark(int Win)
\r
97 char Buf[BMARK_MARK_LEN + FMAX_PATH * 2 + BMARK_SEP_LEN + 1];
\r
99 if(Win == WIN_LOCAL)
\r
101 strcpy(Buf, BMARK_MARK_LOCAL);
\r
102 AskLocalCurDir(Buf + BMARK_MARK_LEN, FMAX_PATH);
\r
104 else if(Win == WIN_REMOTE)
\r
106 strcpy(Buf, BMARK_MARK_REMOTE);
\r
107 AskRemoteCurDir(Buf + BMARK_MARK_LEN, FMAX_PATH);
\r
111 strcpy(Buf, BMARK_MARK_BOTH);
\r
112 AskLocalCurDir(Buf + BMARK_MARK_LEN, FMAX_PATH);
\r
113 strcat(Buf, BMARK_SEP);
\r
114 AskRemoteCurDir(Buf + strlen(Buf), FMAX_PATH);
\r
121 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\82É
\83p
\83X
\82ð
\93o
\98^
\82·
\82é ------------------------------------------
\r
124 * char *Path :
\83p
\83X
\96¼
\r
127 * int
\83X
\83e
\81[
\83^
\83X
\r
129 *----------------------------------------------------------------------------*/
\r
131 static int AddBookMark(char *Path)
\r
138 hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU);
\r
139 MarkID = (GetMenuItemCount(hMenu) - DEFAULT_BMARK_ITEM) + MENU_BMARK_TOP;
\r
140 if(AppendMenu(hMenu, MF_STRING, MarkID, Path) == TRUE)
\r
146 /*-----
\8ew
\92è
\82ÌID
\82ð
\8e\9d\82Â
\83u
\83b
\83N
\83}
\81[
\83N
\82Ì
\83p
\83X
\82ð
\95Ô
\82· --------------------------------
\r
150 * char *Local :
\83\8d\81[
\83J
\83\8b\91¤
\82Ì
\83p
\83X
\82ð
\95Ô
\82·
\83o
\83b
\83t
\83@
\r
151 * char *Remote :
\83\8a\83\82\81[
\83g
\91¤
\82Ì
\83p
\83X
\82ð
\95Ô
\82·
\83o
\83b
\83t
\83@
\r
152 * int Max :
\83o
\83b
\83t
\83@
\82Ì
\83T
\83C
\83Y
\r
155 * int
\83X
\83e
\81[
\83^
\83X (BMARK_TYPE_xxx)
\r
156 *----------------------------------------------------------------------------*/
\r
158 int AskBookMarkText(int MarkID, char *Local, char *Remote, int Max)
\r
161 MENUITEMINFO mInfo;
\r
163 char Tmp[BMARK_MARK_LEN + FMAX_PATH * 2 + BMARK_SEP_LEN + 1];
\r
168 memset(Local, NUL, Max);
\r
169 memset(Remote, NUL, Max);
\r
171 Sts = BMARK_TYPE_NONE;
\r
172 hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU);
\r
174 mInfo.cbSize = sizeof(MENUITEMINFO);
\r
175 mInfo.fMask = MIIM_TYPE;
\r
176 mInfo.dwTypeData = Tmp;
\r
177 mInfo.cch = BMARK_MARK_LEN + FMAX_PATH * 2 + BMARK_SEP_LEN;
\r
178 if(GetMenuItemInfo(hMenu, MarkID, FALSE, &mInfo) == TRUE)
\r
180 Num = GetBothPath(Tmp, &Path1, &Path2);
\r
181 if(strncmp(Tmp, BMARK_MARK_LOCAL, BMARK_MARK_LEN) == 0)
\r
183 Sts = BMARK_TYPE_LOCAL;
\r
184 strncpy(Local, Path1, Max-1);
\r
186 else if(strncmp(Tmp, BMARK_MARK_REMOTE, BMARK_MARK_LEN) == 0)
\r
188 Sts = BMARK_TYPE_REMOTE;
\r
189 strncpy(Remote, Path1, Max-1);
\r
191 else if(strncmp(Tmp, BMARK_MARK_BOTH, BMARK_MARK_LEN) == 0)
\r
195 strncpy(Local, Path1, Max-1);
\r
196 strncpy(Remote, Path2, Max-1);
\r
197 Sts = BMARK_TYPE_BOTH;
\r
205 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\82Ì
\95¶
\8e\9a\97ñ
\82©
\82ç
\82Q
\82Â
\82Ì
\83p
\83X
\82ð
\8eæ
\82è
\8fo
\82· --------------------------
\r
208 * char *Str :
\95¶
\8e\9a\97ñ
\r
209 * char **Local :
\83\8d\81[
\83J
\83\8b\91¤
\82Ì
\83p
\83X
\82Ì
\90æ
\93ª
\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
210 * char **Remote :
\83\8a\83\82\81[
\83g
\91¤
\82Ì
\83p
\83X
\82Ì
\90æ
\93ª
\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
213 * int
\83p
\83X
\82Ì
\8cÂ
\90\94 (1 or 2)
\r
216 * Str
\82Ì
\93à
\97e
\82ð
\8f\91\82«
\8a·
\82¦
\82é
\r
217 *----------------------------------------------------------------------------*/
\r
219 static int GetBothPath(char *Str, char **Path1, char **Path2)
\r
225 *Path1 = Str + BMARK_MARK_LEN;
\r
227 Pos = _mbsstr(Str, BMARK_SEP);
\r
232 *Path2 = Pos + BMARK_SEP_LEN;
\r
238 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\82ð
\90Ú
\91±
\92\86\82Ì
\83z
\83X
\83g
\83\8a\83X
\83g
\82É
\95Û
\91¶
\82·
\82é --------------------------
\r
245 *----------------------------------------------------------------------------*/
\r
247 void SaveBookMark(void)
\r
250 MENUITEMINFO mInfo;
\r
256 char Tmp[BMARK_MARK_LEN + FMAX_PATH * 2 + BMARK_SEP_LEN + 1];
\r
259 if(AskConnecting() == YES)
\r
261 if((CurHost = AskCurrentHost()) != HOSTNUM_NOENTRY)
\r
263 if((Buf = malloc(BOOKMARK_SIZE)) != NULL)
\r
265 hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU);
\r
269 Cnt = GetMenuItemCount(hMenu);
\r
270 for(i = DEFAULT_BMARK_ITEM; i < Cnt; i++)
\r
272 mInfo.cbSize = sizeof(MENUITEMINFO);
\r
273 mInfo.fMask = MIIM_TYPE;
\r
274 mInfo.dwTypeData = Tmp;
\r
275 mInfo.cch = FMAX_PATH;
\r
276 if(GetMenuItemInfo(hMenu, i, TRUE, &mInfo) == TRUE)
\r
278 if(Len + strlen(Tmp) + 2 <= BOOKMARK_SIZE)
\r
281 Pos += strlen(Tmp) + 1;
\r
282 Len += strlen(Tmp) + 1;
\r
289 memset(Buf, NUL, 2);
\r
298 SetHostBookMark(CurHost, Buf, Len);
\r
308 /*-----
\83z
\83X
\83g
\83\8a\83X
\83g
\82©
\82ç
\83u
\83b
\83N
\83}
\81[
\83N
\82ð
\93Ç
\82Ý
\8d\9e\82Þ --------------------------------
\r
315 *----------------------------------------------------------------------------*/
\r
317 void LoadBookMark(void)
\r
322 char Tmp[FMAX_PATH + BMARK_MARK_LEN + 1];
\r
324 if(AskConnecting() == YES)
\r
326 if((CurHost = AskCurrentHost()) != HOSTNUM_NOENTRY)
\r
328 if((Buf = AskHostBookMark(CurHost)) != NULL)
\r
334 /*
\8b\8c\83t
\83H
\81[
\83}
\83b
\83g
\82Ì
\82½
\82ß
\82Ì
\8f\88\97\9d */
\r
335 /*
\81i
\83p
\83X
\82É"L"
\82â"H"
\82ª
\82Â
\82¢
\82Ä
\82È
\82¢
\95¨
\81j */
\r
336 if((strncmp(Pos, BMARK_MARK_LOCAL, BMARK_MARK_LEN) != 0) &&
\r
337 (strncmp(Pos, BMARK_MARK_REMOTE, BMARK_MARK_LEN) != 0) &&
\r
338 (strncmp(Pos, BMARK_MARK_BOTH, BMARK_MARK_LEN) != 0))
\r
340 strcpy(Tmp, BMARK_MARK_REMOTE);
\r
347 Pos += strlen(Pos) + 1;
\r
356 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\95Ò
\8fW
\83E
\83C
\83\93\83h
\83E --------------------------------------------
\r
362 *
\83X
\83e
\81[
\83^
\83X (YES=
\8eÀ
\8ds/NO=
\8eæ
\8fÁ)
\r
363 *----------------------------------------------------------------------------*/
\r
365 int EditBookMark(void)
\r
369 Sts = DialogBox(GetFtpInst(), MAKEINTRESOURCE(bmark_dlg), GetMainHwnd(), EditBookMarkProc);
\r
374 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\95Ò
\8fW
\83E
\83C
\83\93\83h
\83E
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N ------------------------------
\r
377 * HWND hDlg :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
378 * UINT message :
\83\81\83b
\83Z
\81[
\83W
\94Ô
\8d\86\r
379 * WPARAM wParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì WPARAM
\88ø
\90\94\r
380 * LPARAM lParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì LPARAM
\88ø
\90\94\r
384 *----------------------------------------------------------------------------*/
\r
386 static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
389 MENUITEMINFO mInfo;
\r
392 char Tmp[BMARK_MARK_LEN + FMAX_PATH * 2 + BMARK_SEP_LEN + 1];
\r
394 static DIALOGSIZE DlgSize = {
\r
395 { BMARK_NEW, BMARK_SET, BMARK_DEL, BMARK_DOWN, BMARK_UP, IDHELP, BMARK_SIZEGRIP, -1 },
\r
396 { IDOK, BMARK_JUMP, BMARK_SIZEGRIP, -1 },
\r
397 { BMARK_LIST, -1 },
\r
404 case WM_INITDIALOG :
\r
405 if(ListFont != NULL)
\r
406 SendDlgItemMessage(hDlg, BMARK_LIST, WM_SETFONT, (WPARAM)ListFont, MAKELPARAM(TRUE, 0));
\r
408 hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU);
\r
409 Max = GetMenuItemCount(hMenu);
\r
410 for(Cur = DEFAULT_BMARK_ITEM; Cur < Max; Cur++)
\r
412 mInfo.cbSize = sizeof(MENUITEMINFO);
\r
413 mInfo.fMask = MIIM_TYPE;
\r
414 mInfo.dwTypeData = Tmp;
\r
415 mInfo.cch = FMAX_PATH;
\r
416 if(GetMenuItemInfo(hMenu, Cur, TRUE, &mInfo) == TRUE)
\r
417 SendDlgItemMessage(hDlg, BMARK_LIST, LB_ADDSTRING, 0, (LPARAM)Tmp);
\r
419 DlgSizeInit(hDlg, &DlgSize, &BmarkDlgSize);
\r
423 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
426 if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
427 PostMessage(GetMainHwnd(), WM_COMMAND, MAKEWPARAM(Cur+MENU_BMARK_TOP, 0), 0);
\r
428 /*
\82±
\82±
\82É break
\82Í
\82È
\82¢ */
\r
433 Max = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0);
\r
434 for(Cur = 0; Cur < Max; Cur++)
\r
436 SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETTEXT, Cur, (LPARAM)Tmp);
\r
439 AskDlgSize(hDlg, &DlgSize, &BmarkDlgSize);
\r
440 EndDialog(hDlg, YES);
\r
444 if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
446 SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETTEXT, Cur, (LPARAM)Tmp);
\r
447 if(DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(bmark_edit_dlg), hDlg, BookMarkEditCallBack, (LPARAM)Tmp) == YES)
\r
449 SendDlgItemMessage(hDlg, BMARK_LIST, LB_DELETESTRING, Cur, 0);
\r
450 SendDlgItemMessage(hDlg, BMARK_LIST, LB_INSERTSTRING, Cur, (LPARAM)Tmp);
\r
451 SendDlgItemMessage(hDlg, BMARK_LIST, LB_SETCURSEL, Cur, 0);
\r
458 if(DialogBoxParam(GetFtpInst(), MAKEINTRESOURCE(bmark_edit_dlg), hDlg, BookMarkEditCallBack, (LPARAM)Tmp) == YES)
\r
460 SendDlgItemMessage(hDlg, BMARK_LIST, LB_ADDSTRING, 0, (LPARAM)Tmp);
\r
461 Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0) - 1;
\r
462 SendDlgItemMessage(hDlg, BMARK_LIST, LB_SETCURSEL, Cur, 0);
\r
467 if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
469 SendDlgItemMessage(hDlg, BMARK_LIST, LB_DELETESTRING, Cur, 0);
\r
470 if(Cur >= SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0))
\r
471 Cur = max1(0, SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0)-1);
\r
472 if(SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0) > 0)
\r
473 SendDlgItemMessage(hDlg, BMARK_LIST, LB_SETCURSEL, Cur, 0);
\r
478 if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
482 SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETTEXT, Cur, (LPARAM)Tmp);
\r
483 SendDlgItemMessage(hDlg, BMARK_LIST, LB_DELETESTRING, Cur, 0);
\r
484 SendDlgItemMessage(hDlg, BMARK_LIST, LB_INSERTSTRING, --Cur, (LPARAM)Tmp);
\r
485 SendDlgItemMessage(hDlg, BMARK_LIST, LB_SETCURSEL, Cur, 0);
\r
491 if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)
\r
493 if(Cur < SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCOUNT, 0, 0)-1)
\r
495 SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETTEXT, Cur, (LPARAM)Tmp);
\r
496 SendDlgItemMessage(hDlg, BMARK_LIST, LB_DELETESTRING, Cur, 0);
\r
497 SendDlgItemMessage(hDlg, BMARK_LIST, LB_INSERTSTRING, ++Cur, (LPARAM)Tmp);
\r
498 SendDlgItemMessage(hDlg, BMARK_LIST, LB_SETCURSEL, Cur, 0);
\r
504 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000019);
\r
510 DlgSizeChange(hDlg, &DlgSize, (RECT *)lParam, (int)wParam);
\r
518 /*-----
\83u
\83b
\83N
\83}
\81[
\83N
\93ü
\97Í
\83_
\83C
\83A
\83\8d\83O
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N ------------------------------
\r
521 * HWND hDlg :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
522 * UINT message :
\83\81\83b
\83Z
\81[
\83W
\94Ô
\8d\86\r
523 * WPARAM wParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì WPARAM
\88ø
\90\94\r
524 * LPARAM lParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì LPARAM
\88ø
\90\94\r
528 *----------------------------------------------------------------------------*/
\r
530 static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)
\r
535 char Local[FMAX_PATH+1];
\r
536 char Remote[FMAX_PATH+1];
\r
541 case WM_INITDIALOG :
\r
542 Str = (char *)lParam;
\r
543 SendDlgItemMessage(hDlg, BEDIT_LOCAL, EM_LIMITTEXT, FMAX_PATH-1, 0);
\r
544 SendDlgItemMessage(hDlg, BEDIT_REMOTE, EM_LIMITTEXT, FMAX_PATH-1, 0);
\r
545 if(strlen(Str) > BMARK_MARK_LEN)
\r
547 Num = GetBothPath(Str, &Path1, &Path2);
\r
548 if(strncmp(Str, BMARK_MARK_LOCAL, BMARK_MARK_LEN) == 0)
\r
549 SendDlgItemMessage(hDlg, BEDIT_LOCAL, WM_SETTEXT, 0, (LPARAM)Path1);
\r
550 else if(strncmp(Str, BMARK_MARK_REMOTE, BMARK_MARK_LEN) == 0)
\r
552 SendDlgItemMessage(hDlg, BEDIT_REMOTE, WM_SETTEXT, 0, (LPARAM)Path1);
\r
553 /*
\83z
\83X
\83g
\91¤
\82É
\83J
\81[
\83\
\83\8b\82ð
\88Ú
\93®
\82µ
\82Ä
\82¨
\82 */
\r
554 SetFocus(GetDlgItem(hDlg, BEDIT_REMOTE));
\r
555 SendDlgItemMessage(hDlg, BEDIT_REMOTE, EM_SETSEL, 0, -1);
\r
558 else if((strncmp(Str, BMARK_MARK_BOTH, BMARK_MARK_LEN) == 0) && (Num == 2))
\r
560 SendDlgItemMessage(hDlg, BEDIT_LOCAL, WM_SETTEXT, 0, (LPARAM)Path1);
\r
561 SendDlgItemMessage(hDlg, BEDIT_REMOTE, WM_SETTEXT, 0, (LPARAM)Path2);
\r
567 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
570 SendDlgItemMessage(hDlg, BEDIT_LOCAL, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Local);
\r
571 SendDlgItemMessage(hDlg, BEDIT_REMOTE, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Remote);
\r
572 if(strlen(Local) > 0)
\r
574 if(strlen(Remote) > 0)
\r
577 strcpy(Str, BMARK_MARK_BOTH);
\r
578 strcat(Str, Local);
\r
579 strcat(Str, BMARK_SEP);
\r
580 strcat(Str, Remote);
\r
584 /*
\83\8d\81[
\83J
\83\8b\82Ì
\82Ý */
\r
585 strcpy(Str, BMARK_MARK_LOCAL);
\r
586 strcat(Str, Local);
\r
588 EndDialog(hDlg, YES);
\r
590 else if(strlen(Remote) > 0)
\r
592 /*
\83z
\83X
\83g
\82Ì
\82Ý */
\r
593 strcpy(Str, BMARK_MARK_REMOTE);
\r
594 strcat(Str, Remote);
\r
595 EndDialog(hDlg, YES);
\r
598 EndDialog(hDlg, NO);
\r
602 EndDialog(hDlg, NO);
\r