X-Git-Url: http://git.sourceforge.jp/view?p=ffftp%2Fffftp.git;a=blobdiff_plain;f=bookmark.c;h=2a497eeb55ce2ac1c33a57e244f251b02aef24a9;hp=725c218c22d76a5bbb70b08b3e38ff6b7e7365f1;hb=2edde15bf5547440d7089c9cf7fd5098a42126b7;hpb=3efb66ad5ef6a7e965b9b8b23852e826b7302c5f diff --git a/bookmark.c b/bookmark.c index 725c218..2a497ee 100644 --- a/bookmark.c +++ b/bookmark.c @@ -1,6 +1,6 @@ -/*============================================================================= +/*============================================================================= * -* ƒuƒbƒNƒ}[ƒN +* ブックマーク * =============================================================================== / Copyright (C) 1997-2007 Sota. All rights reserved. @@ -27,9 +27,12 @@ / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /============================================================================*/ -#define WINVER 0x400 +// UTF-8対応 +//#define WINVER 0x400 #define STRICT +// IPv6対応 +#include #include #include #include @@ -45,35 +48,38 @@ #include #include "helpid.h" -// UTF-8‘Ήž +// UTF-8対応 #undef __MBSWRAPPER_H__ #include "mbswrapper.h" -/*===== ƒvƒƒgƒ^ƒCƒv =====*/ +/*===== プロトタイプ =====*/ static int AddBookMark(char *Path); static int GetBothPath(char *Str, char **Path1, char **Path2); -static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +//static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); -/*===== ŠO•”ŽQÆ =====*/ +/*===== 外部参照 =====*/ extern HWND hHelpWin; -/* Ý’è’l */ -extern HFONT ListFont; /* ƒŠƒXƒgƒ{ƒbƒNƒX‚̃tƒHƒ“ƒg */ +/* 設定値 */ +extern HFONT ListFont; /* リストボックスのフォント */ extern SIZE BmarkDlgSize; -/*----- ƒuƒbƒNƒ}[ƒN‚ðƒNƒŠƒA‚·‚é ---------------------------------------------- +/*----- ブックマークをクリアする ---------------------------------------------- * * Parameter -* ‚È‚µ +* なし * * Return Value -* ‚È‚µ +* なし *----------------------------------------------------------------------------*/ void ClearBookMark(void) @@ -87,13 +93,13 @@ void ClearBookMark(void) } -/*----- ƒJƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚ðƒuƒbƒNƒ}[ƒN‚ɒljÁ ------------------------------ +/*----- カレントディレクトリをブックマークに追加 ------------------------------ * * Parameter -* int Win : ƒEƒCƒ“ƒhƒE”ԍ† (WIN_xxx) +* int Win : ウインドウ番号 (WIN_xxx) * * Return Value -* ‚È‚µ +* なし *----------------------------------------------------------------------------*/ void AddCurDirToBookMark(int Win) @@ -122,14 +128,14 @@ void AddCurDirToBookMark(int Win) } -/*----- ƒuƒbƒNƒ}[ƒN‚ɃpƒX‚ð“o˜^‚·‚é ------------------------------------------ +/*----- ブックマークにパスを登録する ------------------------------------------ * * Parameter -* char *Path : ƒpƒX–¼ +* char *Path : パス名 * * Return Value -* int ƒXƒe[ƒ^ƒX -* SUCCESS/FAIL +* int ステータス +* FFFTP_SUCCESS/FFFTP_FAIL *----------------------------------------------------------------------------*/ static int AddBookMark(char *Path) @@ -138,25 +144,25 @@ static int AddBookMark(char *Path) int MarkID; int Sts; - Sts = FAIL; + Sts = FFFTP_FAIL; hMenu = GetSubMenu(GetMenu(GetMainHwnd()), BMARK_SUB_MENU); MarkID = (GetMenuItemCount(hMenu) - DEFAULT_BMARK_ITEM) + MENU_BMARK_TOP; if(AppendMenu(hMenu, MF_STRING, MarkID, Path) == TRUE) - Sts = SUCCESS; + Sts = FFFTP_SUCCESS; return(Sts); } -/*----- Žw’è‚ÌID‚ðŽ‚ÂƒuƒbƒNƒ}[ƒN‚̃pƒX‚ð•Ô‚· -------------------------------- +/*----- 指定のIDを持つブックマークのパスを返す -------------------------------- * * Parameter * int MarkID : ID -* char *Local : ƒ[ƒJƒ‹‘¤‚̃pƒX‚ð•Ô‚·ƒoƒbƒtƒ@ -* char *Remote : ƒŠƒ‚[ƒg‘¤‚̃pƒX‚ð•Ô‚·ƒoƒbƒtƒ@ -* int Max : ƒoƒbƒtƒ@‚̃TƒCƒY +* char *Local : ローカル側のパスを返すバッファ +* char *Remote : リモート側のパスを返すバッファ +* int Max : バッファのサイズ * * Return Value -* int ƒXƒe[ƒ^ƒX (BMARK_TYPE_xxx) +* int ステータス (BMARK_TYPE_xxx) *----------------------------------------------------------------------------*/ int AskBookMarkText(int MarkID, char *Local, char *Remote, int Max) @@ -206,18 +212,18 @@ int AskBookMarkText(int MarkID, char *Local, char *Remote, int Max) } -/*----- ƒuƒbƒNƒ}[ƒN‚Ì•¶Žš—ñ‚©‚ç‚Q‚‚̃pƒX‚ðŽæ‚èo‚· -------------------------- +/*----- ブックマークの文字列から2つのパスを取り出す -------------------------- * * Parameter -* char *Str : •¶Žš—ñ -* char **Local : ƒ[ƒJƒ‹‘¤‚̃pƒX‚̐擪‚ð•Ô‚·ƒ[ƒN -* char **Remote : ƒŠƒ‚[ƒg‘¤‚̃pƒX‚̐擪‚ð•Ô‚·ƒ[ƒN +* char *Str : 文字列 +* char **Local : ローカル側のパスの先頭を返すワーク +* char **Remote : リモート側のパスの先頭を返すワーク * * Return Value -* int ƒpƒX‚̌” (1 or 2) +* int パスの個数 (1 or 2) * * Note -* Str‚Ì“à—e‚ð‘‚«Š·‚¦‚é +* Strの内容を書き換える *----------------------------------------------------------------------------*/ static int GetBothPath(char *Str, char **Path1, char **Path2) @@ -239,13 +245,13 @@ static int GetBothPath(char *Str, char **Path1, char **Path2) } -/*----- ƒuƒbƒNƒ}[ƒN‚ðÚ‘±’†‚̃zƒXƒgƒŠƒXƒg‚É•Û‘¶‚·‚é -------------------------- +/*----- ブックマークを接続中のホストリストに保存する -------------------------- * * Parameter -* ‚È‚µ +* なし * * Return Value -* ‚È‚µ +* なし *----------------------------------------------------------------------------*/ void SaveBookMark(void) @@ -309,13 +315,13 @@ void SaveBookMark(void) } -/*----- ƒzƒXƒgƒŠƒXƒg‚©‚çƒuƒbƒNƒ}[ƒN‚ð“ǂݍž‚Þ -------------------------------- +/*----- ホストリストからブックマークを読み込む -------------------------------- * * Parameter -* ‚È‚µ +* なし * * Return Value -* ‚È‚µ +* なし *----------------------------------------------------------------------------*/ void LoadBookMark(void) @@ -335,8 +341,8 @@ void LoadBookMark(void) Pos = Buf; while(*Pos != NUL) { - /* ‹ŒƒtƒH[ƒ}ƒbƒg‚Ì‚½‚߂̏ˆ— */ - /* iƒpƒX‚É"L"‚â"H"‚ª‚‚¢‚Ä‚È‚¢•¨j */ + /* 旧フォーマットのための処理 */ + /* (パスに"L"や"H"がついてない物) */ if((strncmp(Pos, BMARK_MARK_LOCAL, BMARK_MARK_LEN) != 0) && (strncmp(Pos, BMARK_MARK_REMOTE, BMARK_MARK_LEN) != 0) && (strncmp(Pos, BMARK_MARK_BOTH, BMARK_MARK_LEN) != 0)) @@ -357,13 +363,13 @@ void LoadBookMark(void) } -/*----- ƒuƒbƒNƒ}[ƒN•ÒWƒEƒCƒ“ƒhƒE -------------------------------------------- +/*----- ブックマーク編集ウインドウ -------------------------------------------- * * Parameter -* ‚È‚µ +* なし * * Return Value -* ƒXƒe[ƒ^ƒX (YES=ŽÀs/NO=ŽæÁ) +* ステータス (YES=実行/NO=取消) *----------------------------------------------------------------------------*/ int EditBookMark(void) @@ -375,19 +381,21 @@ int EditBookMark(void) } -/*----- ƒuƒbƒNƒ}[ƒN•ÒWƒEƒCƒ“ƒhƒE‚̃R[ƒ‹ƒoƒbƒN ------------------------------ +/*----- ブックマーク編集ウインドウのコールバック ------------------------------ * * Parameter -* HWND hDlg : ƒEƒCƒ“ƒhƒEƒnƒ“ƒhƒ‹ -* UINT message : ƒƒbƒZ[ƒW”ԍ† -* WPARAM wParam : ƒƒbƒZ[ƒW‚Ì WPARAM ˆø” -* LPARAM lParam : ƒƒbƒZ[ƒW‚Ì LPARAM ˆø” +* HWND hDlg : ウインドウハンドル +* UINT message : メッセージ番号 +* WPARAM wParam : メッセージの WPARAM 引数 +* LPARAM lParam : メッセージの LPARAM 引数 * * Return Value * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { HMENU hMenu; MENUITEMINFO mInfo; @@ -429,7 +437,7 @@ static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LP case BMARK_JUMP : if((Cur = SendDlgItemMessage(hDlg, BMARK_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR) PostMessage(GetMainHwnd(), WM_COMMAND, MAKEWPARAM(Cur+MENU_BMARK_TOP, 0), 0); - /* ‚±‚±‚É break ‚Í‚È‚¢ */ + /* ここに break はない */ case IDCANCEL : case IDOK : @@ -519,19 +527,21 @@ static BOOL CALLBACK EditBookMarkProc(HWND hDlg, UINT message, WPARAM wParam, LP } -/*----- ƒuƒbƒNƒ}[ƒN“ü—̓_ƒCƒAƒƒO‚̃R[ƒ‹ƒoƒbƒN ------------------------------ +/*----- ブックマーク入力ダイアログのコールバック ------------------------------ * * Parameter -* HWND hDlg : ƒEƒCƒ“ƒhƒEƒnƒ“ƒhƒ‹ -* UINT message : ƒƒbƒZ[ƒW”ԍ† -* WPARAM wParam : ƒƒbƒZ[ƒW‚Ì WPARAM ˆø” -* LPARAM lParam : ƒƒbƒZ[ƒW‚Ì LPARAM ˆø” +* HWND hDlg : ウインドウハンドル +* UINT message : メッセージ番号 +* WPARAM wParam : メッセージの WPARAM 引数 +* LPARAM lParam : メッセージの LPARAM 引数 * * Return Value * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { static char *Str; char *Path1; @@ -554,7 +564,7 @@ static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wPara else if(strncmp(Str, BMARK_MARK_REMOTE, BMARK_MARK_LEN) == 0) { SendDlgItemMessage(hDlg, BEDIT_REMOTE, WM_SETTEXT, 0, (LPARAM)Path1); - /* ƒzƒXƒg‘¤‚ɃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ä‚¨‚­ */ + /* ホスト側にカーソルを移動しておく */ SetFocus(GetDlgItem(hDlg, BEDIT_REMOTE)); SendDlgItemMessage(hDlg, BEDIT_REMOTE, EM_SETSEL, 0, -1); return(FALSE); @@ -577,7 +587,7 @@ static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wPara { if(strlen(Remote) > 0) { - /* —¼•û */ + /* 両方 */ strcpy(Str, BMARK_MARK_BOTH); strcat(Str, Local); strcat(Str, BMARK_SEP); @@ -585,7 +595,7 @@ static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wPara } else { - /* ƒ[ƒJƒ‹‚Ì‚Ý */ + /* ローカルのみ */ strcpy(Str, BMARK_MARK_LOCAL); strcat(Str, Local); } @@ -593,7 +603,7 @@ static BOOL CALLBACK BookMarkEditCallBack(HWND hDlg, UINT iMessage, WPARAM wPara } else if(strlen(Remote) > 0) { - /* ƒzƒXƒg‚Ì‚Ý */ + /* ホストのみ */ strcpy(Str, BMARK_MARK_REMOTE); strcat(Str, Remote); EndDialog(hDlg, YES);