• R/O
  • SSH
  • HTTPS

gsfinder-w03: Commit


Commit MetaInfo

Revision61 (tree)
Time2008-05-24 06:15:53
Authorgoriponsoft

Log Message

・コンテキストメニューが開いた時点で「範囲選択」「複数選択」が解除されるように変更
・アドレスバーでEM・ONEのスクロールホイールが上下カーソルキー相当で動作するように修正
・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正
・アドレスバーへのパス入力時に行われていた不要なファイル/フォルダ表示の更新を削減
・Smartphone/Standardで編集メニューの「複数選択」が使えなかったのを修正
・アドレスバーでもタップ&ホールドおよびプレス&ホールドが使えるように修正
・使用されていなかった不要コード(PCリンク呼び出し)を削除
・メニューの数字ショートカットキーをSmartphone/Standardに近くなるように変更
・PPC2SPLIBをPartIII/1月12日版にに更新
・ファイルメニューの「新規フォルダ作成」に換えて「新規作成」メニューを新設
・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正
・「お気に入りに追加」を行うと追加した項目に"~へのショートカット"が付く場合があったのを修正
・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正
・ファイル表示でのメニューの有効無効を切り替える処理を簡略化
・フォルダ表示で「すべて選択」が動作していなかったのを修正
・オプション画面のフォルダ指定にフォルダの参照ボタンを追加

Change Summary

Incremental Difference

--- trunk/mui/readme.txt (revision 60)
+++ trunk/mui/readme.txt (revision 61)
@@ -44,3 +44,11 @@
4444 ・「Select Multi」(複数選択)が無効化されたままだったのを修正(2007/12/27)
4545 ↑---------- 1.0.5.13
4646
47+・アドレスバーでもタップ&ホールドおよびプレス&ホールドが使えるように修正(2008/1/11)
48+(コンテキストメニュー追加)
49+
50+・メニューの数字ショートカットキーをSmartphone/Standardに近くなるように変更(2008/1/11)
51+
52+・ファイルメニューの「新規フォルダ作成」に換えて「新規作成」メニューを新設(2007/1/12)
53+↑---------- 1.0.7.14
54+
--- trunk/mui/resource.h (revision 60)
+++ trunk/mui/resource.h (revision 61)
@@ -157,9 +157,13 @@
157157 #define IDS_MSG_DELFILETYPE 127
158158 #define IDI_COPY 127
159159 #define IDI_DELETEMSG 128
160+#define IDS_NEW_SHORTCUT_NAME 128
160161 #define IDI_EXECUTE 129
162+#define IDS_FMT_SHELLNEW_NAME1 129
161163 #define IDI_FILE_M 130
164+#define IDS_FMT_SHELLNEW_NAME2 130
162165 #define IDI_FILE_MULTI 131
166+#define IDS_TITLE_SELECTFOLDER 131
163167 #define IDI_FILE_S 132
164168 #define IDI_FOLDER_M 133
165169 #define IDI_FOLDER_S 134
@@ -333,6 +337,10 @@
333337 #define IDC_CHECK_XCRAWL_PAGEMOVE 1120
334338 #define IDC_CHECK_EDGE_LOOP 1121
335339 #define IDC_BUTTON1 1122
340+#define IDC_BTN_SHELLNEW 1122
341+#define IDC_EDIT_SHELLNEW 1123
342+#define IDC_BUTTON2 1124
343+#define IDC_BTN_NETWORK 1124
336344 #define ID_VIEW_REPORTLINE 4075
337345 #define ID_EDIT_DRAGDROP 4076
338346 #define ID_TOOLS_TEST 4078
@@ -409,11 +417,14 @@
409417 #define ID_FILE_MAIL_SEND 40074
410418 #define ID_VIEW_HIGHRES 40076
411419 #define ID_FOCUS_MOVE 40077
420+#define ID_FILE_CREATE_NEWSHORTCUT 40078
412421 #define IDS_MENU_FILE 0xA000
413422 #define IDS_MENU_EDIT 0xA001
414423 #define IDS_MENU_CANCEL 0xA002
424+#define IDS_MENU_OK 40963
415425 #define ID_FILE_OPEN_APP 50000
416426 #define ID_TOOL_USERPATH_MENU 50100
427+#define ID_FILE_SHELL_NEW_MENU 50200
417428 #define ID_TOOL_FAVORITES_LNK 51000
418429 #define ID_VIEW_SMALLICON 0xE810
419430 #define ID_VIEW_LARGEICON 0xE811
@@ -429,8 +440,8 @@
429440 #ifdef APSTUDIO_INVOKED
430441 #ifndef APSTUDIO_READONLY_SYMBOLS
431442 #define _APS_NEXT_RESOURCE_VALUE 197
432-#define _APS_NEXT_COMMAND_VALUE 40078
433-#define _APS_NEXT_CONTROL_VALUE 1123
443+#define _APS_NEXT_COMMAND_VALUE 40079
444+#define _APS_NEXT_CONTROL_VALUE 1125
434445 #define _APS_NEXT_SYMED_VALUE 1
435446 #endif
436447 #endif
--- trunk/body/CommandBandsPPC.h (revision 60)
+++ trunk/body/CommandBandsPPC.h (revision 61)
@@ -32,7 +32,10 @@
3232 HWND m_hAddressbar; //アドレスバー
3333 HWND m_hComboBox; //アドレスバーのコンボボックス
3434 HWND m_hToolbar; //ツールバー
35- HWND m_hRebar;
35+ //HWND m_hRebar; //DEL GORIPON
36+//ADD START GORIPON (アドレスバーでのコンテキストメニュー対応)
37+ HWND m_hEditBox; //アドレスバーのコンボボックスのエディットボックス
38+//ADD END
3639 //ADD START GORIPON
3740 HMENU m_hMenuMain; //"メニュー"メニュー
3841 HMENU m_hMenuFile; //"ファイル"メニュー
@@ -86,6 +89,11 @@
8689
8790 void OnViewToolBar();
8891 void OnViewAddressBar();
92+//ADD START GORIPON
93+ void OnTapAndHold(NMRGINFO*);
94+ void OnRClick(int, int);
95+ void OnEditClearFilePath();
96+//ADD END
8997 };
9098 ///////////////////////////////////////////////////////////////
9199 #endif // !defined(__COMMANDBANDS_H_INCLUDED)
--- trunk/body/FolderDlgPPC.cpp (revision 60)
+++ trunk/body/FolderDlgPPC.cpp (revision 61)
@@ -70,7 +70,9 @@
7070 while (!bCreate)
7171 {
7272 TCHAR szNewFolderPath[MAX_PATH] = _T("");
73- wsprintf(szNewFolderName, GetStringTable(nCount>1?IDS_FMT_NEWFOLDERNAME1:IDS_FMT_NEWFOLDERNAME), nCount); //MOD GORIPON
73+//MOD START GORIPON
74+ wsprintf(szNewFolderName, GetStringTable(nCount>1?IDS_FMT_NEWFOLDERNAME1:IDS_FMT_NEWFOLDERNAME), nCount);
75+//MOD END
7476 wsprintf(szNewFolderPath, _T("%s\\%s"), szPath, szNewFolderName);
7577
7678 bCreate = CreateDirectory(szNewFolderPath, NULL);
@@ -141,13 +143,11 @@
141143 SetDlgItemText(hDlg, IDC_TITLE, m_lpszTitle);
142144 }
143145
146+//MOD START GORIPON (ハイレゾ対応)
144147 //サイズ調整 (TreeView)
145-//MOD START GORIPON (ハイレゾ対応)
146148 OnSize(hDlg);
147-//MOD END
148149
149150 //イメージリスト作成
150-//MOD START GORIPON (ハイレゾ対応)
151151 if (g_MainWnd.m_bHighDpiHardware)
152152 {
153153 m_hImageList = ImageList_Create(32, 32, ILC_COLOR|ILC_MASK, 1, 2);
@@ -224,6 +224,7 @@
224224 EndDialog(hDlg, IDOK);
225225 }
226226 //ADD START GORIPON
227+
227228 ///////////////////////////////////////////////////////////////
228229 void CFolderDlg::OnSize(HWND hDlg)
229230 {
@@ -239,6 +240,7 @@
239240 GetWindowRect(hDlg, &rc);
240241 MoveWindow(htv, pt.x, pt.y, RECT_WIDTH(&rc), RECT_HEIGHT(&rc)-pt.y, TRUE);
241242 }
243+
242244 //ADD END
243245 ///////////////////////////////////////////////////////////////
244246 LRESULT CALLBACK FolderDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
@@ -458,7 +460,7 @@
458460 }
459461 else
460462 {
461- wcscat(m_lpszName, GetStringTable(IDS_FMT_RENAME)); //MOD GORIPON
463+ _tcscat(m_lpszName, GetStringTable(IDS_FMT_RENAME)); //MOD GORIPON
462464 MessageBox(hDlg, m_lpszName, NULL, MB_OK|MB_ICONEXCLAMATION);
463465 }
464466 SetFocus(hTV);
--- trunk/body/GSFinder.h (revision 60)
+++ trunk/body/GSFinder.h (revision 61)
@@ -145,6 +145,7 @@
145145 #define ID_POPUP_GOTO (5)
146146 #define ID_POPUP_FOLDERDLG (6)
147147 #define ID_POPUP_FOLDERVIEW (7)
148+#define ID_POPUP_ADDRESSBAR (8)
148149 //ADD END
149150
150151 ///////////////////////////////////////////////////////////////
@@ -195,7 +196,8 @@
195196 LPWSTR GetStringTable(int);
196197 LPWSTR DupStringTable(int);
197198 VOID FreeStringTable(LPWSTR);
198-//ADD END
199+ void OnDlgPathBrowse(HWND hDlg, int nEditId, int nTitleId=IDS_TITLE_SELECTFOLDER);
200+ //ADD END
199201 };
200202
201203 ///////////////////////////////////////////////////////////////
--- trunk/body/ListView.h (revision 60)
+++ trunk/body/ListView.h (revision 61)
@@ -142,6 +142,7 @@
142142 CMultiBuff m_ItemStruct;
143143 BOOL m_bArrowPageMove;
144144 TCHAR m_szFowardFindName[MAX_PATH];
145+ TCHAR m_szLastCreateName[MAX_PATH]; //ADD GORIPON (新規作成メニュー対応)
145146 //ADD END
146147
147148 //CUT & PASTE用
@@ -159,6 +160,10 @@
159160 OPENAPPINFO* m_lpOpenPthInfo[MAX_OPENAPP]; //ADD TODA
160161 int m_nOpenAppInfoCount;
161162 int m_nOpenPthInfoCount; //ADD TODA
163+//ADD START GORIPON (新規作成メニュー対応)
164+ OPENAPPINFO* m_lpShellNewInfo[MAX_OPENAPP];
165+ int m_nShellNewInfoCount;
166+//ADD END
162167
163168 BOOL m_bEditing;
164169 DWORD m_dwUpperParam;
@@ -237,6 +242,13 @@
237242 void InitFavoritesMenu(); //ADD TODA
238243 void InitFavoritesSubMenu(HMENU, LPTSTR, int *pnCnt=NULL); //ADD TODA
239244 void OnToolFavoritesLnk(int); //ADD TODA
245+//ADD START GORIPON (新規作成メニュー対応)
246+ HMENU GetShellNewSubMenu1();
247+ HMENU GetShellNewSubMenu2();
248+ void DeleteShellNewSubMenuSep(HMENU);
249+ void InitShellNewMenu();
250+ void OnFileShellNew(int);
251+//ADD END
240252
241253 void OnChangeListStyle(UINT);
242254 void OnChangeSort(UINT);
@@ -268,6 +280,7 @@
268280
269281 void OnFileCreateFolder();
270282 void OnFileCreateShortcut();
283+ void OnFileCreateNewShortcut(); //ADD GORIPON
271284 void OnFileShortcutFolder(LPTSTR lpszPath=NULL);//MOD TODA
272285 void OnFileProperty();
273286 void OnFileOpen();
@@ -320,7 +333,7 @@
320333 //ADD END
321334 //ADD START TODA (from GSFinder ver.1.99)
322335 BOOL IsSelectionFile();
323- BOOL CreateShortcut(LPTSTR szDir, LPTSTR szTargetDir, LPTSTR szTargetFile);
336+ BOOL CreateShortcut(LPTSTR, LPTSTR, LPTSTR, BOOL); //MOD GORIPON
324337 //ADD END
325338 //ADD GORIPON
326339 void OnFileMailSend();
--- trunk/body/FileProperty.cpp (revision 60)
+++ trunk/body/FileProperty.cpp (revision 61)
@@ -47,6 +47,7 @@
4747 DWORD dwAttr = GetFileAttributes(szTemp);
4848 if (dwAttr != 0xFFFFFFFF)
4949 {
50+ memset(&si, 0, sizeof(si)); //ADD GORIPON
5051 SHGetFileInfo(szTemp, NULL, &si, sizeof(si), SHGFI_LARGEICON | SHGFI_ICON | SHGFI_TYPENAME);
5152 SendMessage(GetDlgItem(hDlg, IDC_TARGET_ICON), STM_SETIMAGE, IMAGE_ICON, (LPARAM)si.hIcon);
5253 SetWindowText(GetDlgItem(hDlg, IDC_TARGET_TYPE), si.szTypeName);
--- trunk/body/CommandBandsPPC.cpp (revision 60)
+++ trunk/body/CommandBandsPPC.cpp (revision 61)
@@ -22,7 +22,7 @@
2222 ///////////////////////////////////////////////////////////////
2323 LRESULT CALLBACK CmbEditProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
2424 {
25- switch (message)
25+ switch (message)
2626 {
2727 //ADD START TODA
2828 case WM_SETFOCUS:
@@ -34,18 +34,110 @@
3434 break;
3535 //ADD END
3636 case WM_KEYDOWN: //MOD TODA (WM_KEYUP->WM_KEYDOWN)
37- {
38- if (wParam == VK_RETURN) {
39- g_MainWnd.m_ListView.OnViewUpdate();
37+//MOD START GORIPON (アドレスバーでのコンテキストメニュー対応)
38+ switch (wParam)
39+ {
40+ case VK_RETURN:
41+ if (!SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0))
42+ {
43+ SHRGINFO shrg;
44+ RECT rc;
45+
46+ SetFocus(g_MainWnd.m_CmdBands.m_hEditBox);
47+ GetClientRect(g_MainWnd.m_CmdBands.m_hAddressbar, &rc);
48+ shrg.cbSize = sizeof(shrg);
49+ shrg.hwndClient = g_MainWnd.m_CmdBands.m_hAddressbar;
50+ shrg.ptDown.x = rc.left + (int)(16 * g_MainWnd.m_fpHighResolutionScale);
51+ shrg.ptDown.y = rc.top + RECT_HEIGHT(&rc) / 2;
52+ shrg.dwFlags = SHRG_NOTIFYPARENT;
53+ if (SHRecognizeGesture(&shrg))
54+ return 0;
55+ g_MainWnd.m_ListView.OnViewUpdate();
56+ SetFocus(g_MainWnd.m_ListView.m_hWnd);
57+ }
4058 return 0;
59+//ADD START GORIPON (プルダウンリストでの上下ループ処理)
60+ case VK_UP:
61+ if (g_MainWnd.m_bEdgeLoop)
62+ {
63+ if (SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0))
64+ {
65+ if (SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETCURSEL, 0, 0) == 0)
66+ {
67+ int count = SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETCOUNT, 0, 0);
68+ if (count != CB_ERR)
69+ {
70+ SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_SETCURSEL, count-1, 0);
71+ return 0;
72+ }
73+ }
74+ }
75+ }
76+ break;
77+ case VK_DOWN:
78+ if (g_MainWnd.m_bEdgeLoop)
79+ {
80+ if (SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0))
81+ {
82+ int count = SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETCOUNT, 0, 0);
83+ if (count != CB_ERR)
84+ {
85+ if (SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETCURSEL, 0, 0) == (count-1))
86+ {
87+ SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_SETCURSEL, 0, 0);
88+ return 0;
89+ }
90+ }
91+ }
92+ }
93+ break;
94+//ADD END
4195 }
4296 break;
43- }
97+//MOD END
98+//ADD START GORIPON (EM・ONEスクロールホイール対応)
99+ case WM_MOUSEWHEEL:
100+ if (GET_WHEEL_DELTA_WPARAM(wParam) < 0)
101+ {
102+ keybd_event(VK_DOWN, 0x3D, 0, 0);
103+ keybd_event(VK_DOWN, 0x3D, KEYEVENTF_KEYUP, 0);
104+ }
105+ else if (GET_WHEEL_DELTA_WPARAM(wParam) > 0)
106+ {
107+ keybd_event(VK_UP, 0x3E, 0, 0);
108+ keybd_event(VK_UP, 0x3E, KEYEVENTF_KEYUP, 0);
109+ }
110+ return 0;
111+//ADD END
112+//ADD START GORIPON (プルダウンリストの余計な開閉を抑制)
113+ case WM_CHAR:
114+ if (wParam == VK_RETURN)
115+ if (!SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0))
116+ return 0;
117+ break;
118+//ADD END
119+//ADD START GORIPON (アドレスバーでのコンテキストメニュー対応)
120+ case WM_LBUTTONDOWN:
121+ {
122+ SHRGINFO shrg;
123+
124+ SetFocus(g_MainWnd.m_CmdBands.m_hEditBox);
125+ shrg.cbSize = sizeof(shrg);
126+ shrg.hwndClient = g_MainWnd.m_CmdBands.m_hAddressbar;
127+ shrg.ptDown.x = GET_X_LPARAM(lParam);
128+ shrg.ptDown.y = GET_Y_LPARAM(lParam);
129+ shrg.dwFlags = SHRG_NOTIFYPARENT;
130+ if (SHRecognizeGesture(&shrg))
131+ return 0;
132+ }
133+ break;
134+//ADD END
44135 default:
45136 break;
46137 }
47138 return CallWindowProc(Org_CmbEditProc, hWnd, message, wParam, lParam);
48139 }
140+
49141 ///////////////////////////////////////////////////////////////
50142 CCmdBands::CCmdBands()
51143 {
@@ -142,7 +234,9 @@
142234 ///////////////////////////////////////////////////////////////
143235 void CCmdBands::SetCheckViewStatusWnd(BOOL bShowStatusWnd)
144236 {
145- CheckMenuItem(m_hMenuMain, ID_VIEW_STATUSBAR, bShowStatusWnd?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
237+//MOD START GORIPON
238+ CheckMenuItem(m_hMenuMain, ID_VIEW_STATUSBAR, bShowStatusWnd?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
239+//MOD END
146240 }
147241 //ADD START TODA
148242 ///////////////////////////////////////////////////////////////
@@ -158,15 +252,20 @@
158252 ///////////////////////////////////////////////////////////////
159253 void CCmdBands::SetCheckViewSide(BOOL bViewSide)
160254 {
161- CheckMenuItem(m_hMenuMain, ID_VIEW_SIDE, bViewSide?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
255+//MOD START GORIPON
256+ CheckMenuItem(m_hMenuMain, ID_VIEW_SIDE, bViewSide?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
257+//MOD END
162258 }
163259 ///////////////////////////////////////////////////////////////
164260 void CCmdBands::SetCheckDragDrop(BOOL bDragDrop)
165261 {
166- CheckMenuItem(m_hMenuMain, ID_EDIT_DRAGDROP, bDragDrop?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
262+//MOD START GORIPON
263+ CheckMenuItem(m_hMenuMain, ID_EDIT_DRAGDROP, bDragDrop?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
264+//MOD END
167265 }
168266 //ADD END
169267 //ADD START GORIPON
268+
170269 ///////////////////////////////////////////////////////////////
171270 void CCmdBands::SetCheckViewHighRes(BOOL bHighRes)
172271 {
@@ -173,37 +272,48 @@
173272 CheckMenuItem(m_hMenuMain, ID_VIEW_HIGHRES, bHighRes?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
174273 SetEnableViewHighRes(g_MainWnd.m_bHighDpiHardware);
175274 }
275+
176276 //ADD END
177277 ///////////////////////////////////////////////////////////////
178278 void CCmdBands::SetCheckViewToolBar()
179279 {
180- CheckMenuItem(m_hMenuMain, ID_VIEW_TOOLBAR, m_Settings.bShowToolBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
280+//MOD START GORIPON
281+ CheckMenuItem(m_hMenuMain, ID_VIEW_TOOLBAR, m_Settings.bShowToolBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
282+//MOD END
181283 SendMessage(m_hWnd, TB_SETSTATE, ID_VIEW_TOOLBAR, m_Settings.bShowToolBar?TBSTATE_CHECKED|TBSTATE_ENABLED:TBSTATE_ENABLED);
182284 }
183285 ///////////////////////////////////////////////////////////////
184286 void CCmdBands::SetCheckViewAddressBar()
185287 {
186- CheckMenuItem(m_hMenuMain, ID_VIEW_ADDRESSBAR, m_Settings.bShowAddressBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED); //MOD GORIPON
288+//MOD START GORIPON
289+ CheckMenuItem(m_hMenuMain, ID_VIEW_ADDRESSBAR, m_Settings.bShowAddressBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
290+//MOD END
187291 }
188292
189293 ///////////////////////////////////////////////////////////////
190294 void CCmdBands::SetEnableUpperFolder(BOOL bEnable)
191295 {
192- EnableMenuItem(m_hMenuMain, ID_VIEW_UPFOLDER, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
296+//MOD START GORIPON
297+ EnableMenuItem(m_hMenuMain, ID_VIEW_UPFOLDER, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
193298 SendMessage(m_hWnd, TB_SETSTATE, ID_VIEW_UPFOLDER, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
194- SendMessage(m_hToolbar, TB_SETSTATE, ID_VIEW_UPFOLDER, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE); //ADD GORIPON
299+ SendMessage(m_hToolbar, TB_SETSTATE, ID_VIEW_UPFOLDER, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
300+//MOD END
195301 }
196302 //ADD START TODA
197303 ///////////////////////////////////////////////////////////////
198304 void CCmdBands::SetEnableFront(BOOL bEnable)
199305 {
200- EnableMenuItem(m_hMenuMain, ID_GO_FRONT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
306+//MOD START GORIPON
307+ EnableMenuItem(m_hMenuMain, ID_GO_FRONT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
308+//MOD END
201309 SendMessage(m_hToolbar, TB_SETSTATE, ID_GO_FRONT, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
202310 }
203311 ///////////////////////////////////////////////////////////////
204312 void CCmdBands::SetEnableBack(BOOL bEnable)
205313 {
206- EnableMenuItem(m_hMenuMain, ID_GO_BACK, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
314+//MOD START GORIPON
315+ EnableMenuItem(m_hMenuMain, ID_GO_BACK, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
316+//MOD END
207317 SendMessage(m_hToolbar, TB_SETSTATE, ID_GO_BACK, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
208318 }
209319 ///////////////////////////////////////////////////////////////
@@ -235,12 +345,17 @@
235345 ///////////////////////////////////////////////////////////////
236346 void CCmdBands::SetEnableSearchSelected(HMENU hMenu, LPTSTR lpszPath)
237347 {
238- if(wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath)==0)
348+ if(_tcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath) == 0) //MOD GORIPON
239349 {
240350 EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
351+//ADD START GORIPON (新規作成メニュー対応)
352+ EnableMenuItem(hMenu, ID_FILE_CREATE_NEWSHORTCUT, MF_BYCOMMAND|MF_GRAYED);
353+ for (int i=0; i<MAX_OPENAPP; i++)
354+ EnableMenuItem(hMenu, ID_FILE_SHELL_NEW_MENU+i, MF_BYCOMMAND|MF_GRAYED);
355+//ADD END
241356 EnableMenuItem(hMenu, ID_FILE_CREATEFOLDER, MF_BYCOMMAND|MF_GRAYED);
242357 EnableMenuItem(hMenu, ID_EDIT_PASTE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
243- EnableMenuItem(hMenu, ID_FILE_CREATEFOLDER, MF_BYCOMMAND|MF_GRAYED);
358+ //EnableMenuItem(hMenu, ID_FILE_CREATEFOLDER, MF_BYCOMMAND|MF_GRAYED); //DEL GORIPON
244359 EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
245360 }
246361 }
@@ -247,134 +362,70 @@
247362 ///////////////////////////////////////////////////////////////
248363 void CCmdBands::SetEnableItemSelected()
249364 {
250- //ADD START TODA
251- HWND hFocus = GetFocus();
252- if(hFocus != g_MainWnd.m_ListView.m_hWnd)
253- hFocus = NULL;
254- //ADD END
365+//MOD START GORIPON
366+ UINT uEnableM, uEnableT, uEnableS;
255367
256-//MOD START GORIPON
257- if (hFocus && g_MainWnd.m_ListView.GetValidAndSelectedCount()) //MOD TODA
368+ BOOL bFocus = (GetFocus() == g_MainWnd.m_ListView.m_hWnd);
369+ if (bFocus && g_MainWnd.m_ListView.GetValidAndSelectedCount())
258370 {
259- //メニューを有効に
260- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN, MF_BYCOMMAND|MF_ENABLED);
261- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_ENABLED);//add by kawa
262- EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_ENABLED);
263- EnableMenuItem(m_hMenuFile, ID_FILE_DELETE, MF_BYCOMMAND|MF_ENABLED);
264- EnableMenuItem(m_hMenuFile, ID_FILE_RENAME, MF_BYCOMMAND|MF_ENABLED);
265- EnableMenuItem(m_hMenuFile, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_ENABLED);
266- EnableMenuItem(m_hMenuMain, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
267- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
268- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
269- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
270- EnableMenuItem(m_hMenuFile, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_ENABLED);
271- EnableMenuItem(m_hMenuFile, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_ENABLED);
272- EnableMenuItem(m_hMenuFile, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_ENABLED);
273- //ADD START TODA (圧縮メニュー)
274- //SetEnableCompressSelected(GetSubMenu(m_hMenuFile, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);
371+ uEnableM = MF_ENABLED;
372+ uEnableT = TBSTATE_ENABLED;
373+ uEnableS = g_MainWnd.m_ListView.IsSelectionFile()? MF_ENABLED: MF_GRAYED;
275374 SetEnableCompressSelected(m_hMenuFile,GetSubMenu(m_hMenuFile, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);
276- //ADD END
277-//MOD END
278-
279- //ツールバーを有効に
280- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_ENABLED);
281- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_ENABLED);
282- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_ENABLED);
283- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_ENABLED);
284-
285- if (g_MainWnd.m_ListView.IsSelectionFile())
286- {
287-//MOD START GORIPON
288- EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_ENABLED);
289- EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|MF_ENABLED);
290- EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_ENABLED);
291-
292- for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
293- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_ENABLED);
294- }
295- else
296- {
297- EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
298- EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);
299- EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_GRAYED);
300-
301- for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
302- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
303-//MOD END
304- }
305375 }
306- else if (hFocus && ListView_GetSelectedCount(g_MainWnd.m_ListView.m_hWnd)) //MOD TODA
376+ else if (bFocus && ListView_GetSelectedCount(g_MainWnd.m_ListView.m_hWnd))
307377 {
308-//MOD START GORIPON
309- //メニューを無効に
310- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN, MF_BYCOMMAND|MF_ENABLED);
311- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_ENABLED);//add by kawa
312- EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
313- EnableMenuItem(m_hMenuFile, ID_FILE_DELETE, MF_BYCOMMAND|MF_GRAYED);
314- EnableMenuItem(m_hMenuFile, ID_FILE_RENAME, MF_BYCOMMAND|MF_GRAYED);
315- EnableMenuItem(m_hMenuFile, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_GRAYED);
316- EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
317- EnableMenuItem(m_hMenuFile, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_GRAYED);
318- EnableMenuItem(m_hMenuFile, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_GRAYED);
319- EnableMenuItem(m_hMenuFile, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_GRAYED);
320- EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);
321- EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_GRAYED); //ADD GORIPON
322- EnableMenuItem(m_hMenuMain, ID_EDIT_CUT, MF_BYCOMMAND|MF_GRAYED);
323- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY, MF_BYCOMMAND|MF_GRAYED);
324- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED);
325- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);
326- //ADD START TODA
378+ uEnableM = MF_ENABLED;
379+ uEnableT = TBSTATE_ENABLED;
380+ uEnableS = MF_GRAYED;
327381 EnableMenuItem(m_hMenuFile, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
328382 EnableMenuItem(m_hMenuFile, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
329- //ADD END
330-
331- for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
332- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
333-//MOD END
334-
335- //ツールバーを無効に
336- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_INDETERMINATE);
337- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_INDETERMINATE);
338- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_INDETERMINATE);
339- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_INDETERMINATE);
340383 }
341384 else
342385 {
343-//MOD START GORIPON
344- //メニューを無効に
345- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN, MF_BYCOMMAND|MF_GRAYED);
346- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_GRAYED);//add by kawa
347- EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
348- EnableMenuItem(m_hMenuFile, ID_FILE_DELETE, MF_BYCOMMAND|MF_GRAYED);
349- EnableMenuItem(m_hMenuFile, ID_FILE_RENAME, MF_BYCOMMAND|MF_GRAYED);
350- EnableMenuItem(m_hMenuFile, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_GRAYED);
351- EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
352- EnableMenuItem(m_hMenuFile, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_GRAYED);
353- EnableMenuItem(m_hMenuFile, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_GRAYED);
354- EnableMenuItem(m_hMenuFile, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_GRAYED);
355- EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);
356- EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_GRAYED); //ADD GORIPON
357- EnableMenuItem(m_hMenuMain, ID_EDIT_CUT, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
358- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
359- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
360- EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
361- //ADD START TODA
386+ uEnableM = MF_GRAYED;
387+ uEnableT = TBSTATE_INDETERMINATE;
388+ uEnableS = MF_GRAYED;
362389 EnableMenuItem(m_hMenuFile, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
363390 EnableMenuItem(m_hMenuFile, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
364- //ADD END
365-
366- for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
367- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
368-
369- //ツールバーを無効に
370- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_INDETERMINATE);
371- SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_INDETERMINATE);
372- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_INDETERMINATE);
373- SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_INDETERMINATE);
374391 }
375- //ADD START TODA (検索の有効/無効判定)
392+ //ファイル/メインメニュー
393+ EnableMenuItem(m_hMenuFile, ID_FILE_OPEN, MF_BYCOMMAND|uEnableM);
394+ EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|uEnableM);
395+ EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|uEnableM);
396+ EnableMenuItem(m_hMenuFile, ID_FILE_DELETE, MF_BYCOMMAND|uEnableM);
397+ EnableMenuItem(m_hMenuFile, ID_FILE_RENAME, MF_BYCOMMAND|uEnableM);
398+ EnableMenuItem(m_hMenuFile, ID_FILE_PROPERTY, MF_BYCOMMAND|uEnableM);
399+ EnableMenuItem(m_hMenuMain, ID_EDIT_CUT, MF_BYCOMMAND|uEnableM);
400+ EnableMenuItem(m_hMenuMain, ID_EDIT_COPY, MF_BYCOMMAND|uEnableM);
401+ EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|uEnableM);
402+ EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|uEnableM);
403+ EnableMenuItem(m_hMenuFile, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|uEnableM);
404+ EnableMenuItem(m_hMenuFile, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|uEnableM);
405+ EnableMenuItem(m_hMenuFile, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|uEnableM);
406+//ADD START GORIPON
407+ EnableMenuItem(m_hMenuMain, ID_EDIT_SELECT_SWITCH, MF_BYCOMMAND|MF_ENABLED); //固定
408+ EnableMenuItem(m_hMenuMain, ID_EDIT_SHIFT_ON, MF_BYCOMMAND|MF_ENABLED); //固定
409+ EnableMenuItem(m_hMenuMain, ID_EDIT_CONTROL_ON, MF_BYCOMMAND|MF_ENABLED); //固定
410+//ADD END
411+//ADD START GORIPON (新規作成メニュー対応)
412+ EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_NEWSHORTCUT, MF_BYCOMMAND|MF_ENABLED); //固定
413+ for (int i=0; i<MAX_OPENAPP; i++)
414+ EnableMenuItem(m_hMenuFile, ID_FILE_SHELL_NEW_MENU+i, MF_BYCOMMAND|MF_ENABLED); //固定
415+//ADD END
416+ //ツールバー
417+ SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, uEnableT);
418+ SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, uEnableT);
419+ SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, uEnableT);
420+ SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, uEnableT);
421+ //送るメニュー
422+ EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|uEnableS);
423+ EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|uEnableS);
424+ EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|uEnableS);
425+ for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
426+ EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP+i, MF_BYCOMMAND|uEnableS);
427+ //検索結果フォルダかどうか
376428 SetEnableSearchSelected(m_hMenuFile, g_MainWnd.m_ListView.m_szCurrentFolder);
377- //ADD END
378429 //MOD END
379430 }
380431 //ADD START TODA (ツリービュー用メニュー設定)
@@ -396,6 +447,16 @@
396447 EnableMenuItem(m_hMenuFile, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_ENABLED);
397448 EnableMenuItem(m_hMenuFile, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_ENABLED);
398449 SetEnableCompressSelected(m_hMenuFile, GetSubMenu(m_hMenuFile, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);//mod by kawa
450+//ADD START GORIPON
451+ EnableMenuItem(m_hMenuMain, ID_EDIT_SELECT_SWITCH, MF_BYCOMMAND|MF_ENABLED);
452+ EnableMenuItem(m_hMenuMain, ID_EDIT_SHIFT_ON, MF_BYCOMMAND|MF_ENABLED);
453+ EnableMenuItem(m_hMenuMain, ID_EDIT_CONTROL_ON, MF_BYCOMMAND|MF_ENABLED);
454+//ADD END
455+//ADD GORIPON (新規作成メニュー対応)
456+ EnableMenuItem(m_hMenuFile, ID_FILE_CREATE_NEWSHORTCUT, MF_BYCOMMAND|MF_ENABLED);
457+ for (int i=0; i<MAX_OPENAPP; i++)
458+ EnableMenuItem(m_hMenuFile, ID_FILE_SHELL_NEW_MENU+i, MF_BYCOMMAND|MF_ENABLED);
459+//ADD END
399460 //MOD END
400461
401462 //ツールバーを有効に
@@ -407,11 +468,11 @@
407468 //MOD START GORIPON
408469 EnableMenuItem(m_hMenuFile, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
409470 EnableMenuItem(m_hMenuFile, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);
410- EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_GRAYED); //ADD GORIPON
471+ EnableMenuItem(m_hMenuFile, ID_FILE_MAIL_SEND, MF_BYCOMMAND|MF_GRAYED);
472+//MOD END
411473
412474 for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
413- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
414-//MOD END
475+ EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP+i, MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
415476 }
416477
417478 ///////////////////////////////////////////////////////////////
@@ -419,8 +480,8 @@
419480 {
420481 //MOD START GORIPON
421482 //メニューを有効に
422- EnableMenuItem(m_hMenuFile, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
423- EnableMenuItem(m_hMenuFile, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);
483+ EnableMenuItem(m_hMenuMain, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
484+ EnableMenuItem(m_hMenuMain, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);
424485
425486 //メニューを無効に
426487 EnableMenuItem(m_hMenuFile, ID_FILE_OPEN, MF_BYCOMMAND|MF_GRAYED);
@@ -438,10 +499,15 @@
438499 EnableMenuItem(m_hMenuMain, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);// mod by kawa
439500 EnableMenuItem(m_hMenuFile, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
440501 EnableMenuItem(m_hMenuFile, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
502+//ADD START GORIPON
503+ EnableMenuItem(m_hMenuMain, ID_EDIT_SELECT_SWITCH, MF_BYCOMMAND|MF_GRAYED);
504+ EnableMenuItem(m_hMenuMain, ID_EDIT_SHIFT_ON, MF_BYCOMMAND|MF_GRAYED);
505+ EnableMenuItem(m_hMenuMain, ID_EDIT_CONTROL_ON, MF_BYCOMMAND|MF_GRAYED);
506+//ADD END
507+//MOD END
441508
442509 for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
443- EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
444-//MOD END
510+ EnableMenuItem(m_hMenuFile, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
445511
446512 //ツールバーを有効に
447513 SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_ENABLED);
@@ -458,11 +524,13 @@
458524 {
459525 EnableMenuItem(m_hMenuMain, ID_VIEW_HIGHRES, bHighRes?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
460526 }
527+
461528 ///////////////////////////////////////////////////////////////
462529 void CCmdBands::SetEnableFocusMove(BOOL bShowFolder)
463530 {
464531 EnableMenuItem(m_hMenuMain, ID_FOCUS_MOVE, bShowFolder?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
465532 }
533+
466534 ///////////////////////////////////////////////////////////////
467535 void CCmdBands::SetModeFocusMove(BOOL bFocus)
468536 {
@@ -479,40 +547,41 @@
479547 SetMenuItemInfo(m_hMenuMain, ID_FOCUS_MOVE, FALSE, &mii);
480548 delete lpszItemName;
481549 }
550+
482551 //ADD END
483552 ///////////////////////////////////////////////////////////////
484-//MOD START GORIPON
485553 void CCmdBands::SaveSettings()
486554 {
487- HKEY hKey;
555+ HKEY hKey; //MOD GORIPON
488556 DWORD dwDisposition;
489557
490558 //キー設定
491- if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_CMDBANDS,
559+ if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_CMDBANDS, //MOD GORIPON
492560 0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition)==ERROR_SUCCESS)
493561 {
562+//MOD START GORIPON
494563 //m_Settings.bShowToolBar
495564 RegSetValueEx(hKey, _T("ShowToolBar"), 0, REG_DWORD, (LPBYTE)&m_Settings.bShowToolBar, sizeof(m_Settings.bShowToolBar));
496565
497566 //m_Settings.bShowAddressBar
498567 RegSetValueEx(hKey, _T("ShowAddressBar"), 0, REG_DWORD, (LPBYTE)&m_Settings.bShowAddressBar, sizeof(m_Settings.bShowAddressBar));
568+//MOD END
499569
500570 RegCloseKey(hKey);
501571 }
502572 }
503-//MOD END
504573
505574 ///////////////////////////////////////////////////////////////
506-//MOD START GORIPON
507575 void CCmdBands::GetSettings()
508576 {
509- HKEY hKey;
577+ HKEY hKey; //MOD GORIPON
510578 DWORD dwDisposition;
511579
512580 //キー取得
513- if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_CMDBANDS,
581+ if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_CMDBANDS, //MOD GORIPON
514582 0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition)==ERROR_SUCCESS)
515583 {
584+//MOD START GORIPON
516585 DWORD dwDataSize;
517586 DWORD dwValue;
518587
@@ -527,11 +596,11 @@
527596 dwValue = 0;
528597 if (RegQueryValueEx(hKey, _T("ShowAddressBar"), 0, NULL, (LPBYTE)&dwValue, &dwDataSize) == ERROR_SUCCESS)
529598 m_Settings.bShowAddressBar = dwValue;
599+//MOD END
530600
531601 RegCloseKey(hKey);
532602 }
533603 }
534-//MOD END
535604
536605 ///////////////////////////////////////////////////////////////
537606 void CCmdBands::CreateMenuBar(HWND hwndParent, BOOL bNumShortcut, BOOL bSwapMenu) //MOD GORIPON
@@ -558,6 +627,7 @@
558627 //ADD END
559628 }
560629 //ADD START GORIPON
630+
561631 ///////////////////////////////////////////////////////////////
562632 void CCmdBands::SetTypeMenuBar(BOOL bNumShortcut, BOOL bSwapMenu)
563633 {
@@ -565,8 +635,8 @@
565635 SendMessage(m_hWnd, WM_CLOSE, 0, 0);
566636 CreateMenuBar(hwp, bNumShortcut, bSwapMenu);
567637 }
638+
568639 //ADD END
569-
570640 ///////////////////////////////////////////////////////////////
571641 void CCmdBands::CreateToolBar(HWND hwndParent)
572642 {
@@ -608,9 +678,11 @@
608678 m_hComboBox = CommandBar_InsertComboBox(m_hAddressbar, g_hInst, GetSystemMetrics(SM_CXSCREEN) - 2, CBS_AUTOHSCROLL|CBS_DROPDOWN|WS_VSCROLL, 0, NULL);
609679 SendMessage(m_hComboBox, CB_SETEXTENDEDUI, TRUE, 0);
610680
611- HWND hwndEdit = GetWindow(m_hComboBox, GW_CHILD);
612- Org_CmbEditProc = (WNDPROC)GetWindowLong(hwndEdit, GWL_WNDPROC);
613- SetWindowLong(hwndEdit, GWL_WNDPROC, (DWORD)CmbEditProc);
681+//MOD START GORIPON (アドレスバーでのコンテキストメニュー対応)
682+ m_hEditBox = GetWindow(m_hComboBox, GW_CHILD);
683+ Org_CmbEditProc = (WNDPROC)GetWindowLong(m_hEditBox, GWL_WNDPROC);
684+ SetWindowLong(m_hEditBox, GWL_WNDPROC, (DWORD)CmbEditProc);
685+//MOD END
614686
615687 MoveWindow(m_hAddressbar, 0, 0, GetSystemMetrics(SM_CXSCREEN), (int)(22 * g_MainWnd.m_fpHighResolutionScale), TRUE); //MOD GORIPON
616688 }
@@ -644,11 +716,11 @@
644716 {
645717 //MOD START GORIPON
646718 EnableMenuItem(m_hMenuMain, ID_EDIT_PASTE, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
719+//MOD END
647720 //MOD START TODA
648721 if(bShortCut)
649- EnableMenuItem(m_hMenuMain, ID_EDIT_PASTE_SHORTCUT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
722+ EnableMenuItem(m_hMenuMain, ID_EDIT_PASTE_SHORTCUT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED); //MOD GORIPON
650723 //MOD END
651-//MOD END
652724 SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_PASTE, bEnable ? TBSTATE_ENABLED : TBSTATE_INDETERMINATE);
653725 }
654726 ///////////////////////////////////////////////////////////////
@@ -716,3 +788,32 @@
716788
717789 g_MainWnd.RecalcLayout();
718790 }
791+//ADD START GORIPON (アドレスバーでのコンテキストメニュー対応)
792+
793+///////////////////////////////////////////////////////////////
794+void CCmdBands::OnTapAndHold(NMRGINFO* pnmri)
795+{
796+ OnRClick(pnmri->ptAction.x, pnmri->ptAction.y);
797+}
798+
799+////////////////////////////////////////////////////////////////
800+void CCmdBands::OnRClick(int cx, int cy)
801+{
802+ TCHAR szPath[MAX_PATH];
803+
804+ //右クリックメニュー作成
805+ HMENU hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, ID_POPUP_ADDRESSBAR);
806+ UINT uEnable = IsClipboardFormatAvailable(CF_UNICODETEXT)? MF_BYCOMMAND|MF_ENABLED: MF_BYCOMMAND|MF_GRAYED;
807+ EnableMenuItem(hMenu, ID_EDIT_PASTE, uEnable);
808+ GetWindowText(m_hComboBox, szPath, MAX_PATH);
809+
810+ //右クリックメニュー表示
811+ TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_TOPALIGN, cx, cy, 0, g_MainWnd.m_hWnd, NULL);
812+}
813+
814+////////////////////////////////////////////////////////////////
815+void CCmdBands::OnEditClearFilePath()
816+{
817+ SetWindowText(m_hComboBox, _T(""));
818+}
819+//ADD END
\ No newline at end of file
--- trunk/body/Compress.cpp (revision 60)
+++ trunk/body/Compress.cpp (revision 61)
@@ -91,8 +91,8 @@
9191 ::FreeLibrary(hDLL);
9292 }
9393
94+//DEL START GORIPON
9495 ////////////////////////////////////////////////////////////////
95-//DEL START GORIPON
9696 //int CCompress::ExLha(LPTSTR lpszCmdLine)
9797 //{
9898 // //プログラムパスからカレントパスの取得
@@ -129,8 +129,8 @@
129129 // //実行不可の場合
130130 // return 0;
131131 //}
132+//
132133 //DEL END
133-
134134 ////////////////////////////////////////////////////////////////
135135 BOOL CCompress::RunCompress(
136136 LPTSTR lpszCurrentFolder,
@@ -163,7 +163,7 @@
163163 ofn.lpstrTitle = DupStringTable(IDS_TITLE_COMPDLG);
164164 ofn.lpstrFilter = DupStringTable(nCompDLL==COMPDLL_MODE_LHA?IDS_FILTER_COMPDLG1:IDS_FILTER_COMPDLG2);
165165 //'/'を'\0'に置き換え
166- while (TCHAR *lptcSl = wcsrchr(ofn.lpstrFilter, _T('/')))
166+ while (TCHAR *lptcSl = _tcsrchr(ofn.lpstrFilter, _T('/')))
167167 *lptcSl = _T('\0');
168168 //MOD END
169169
@@ -222,7 +222,9 @@
222222
223223 if(ret != 0)
224224 {
225- MessageBox(g_MainWnd.m_hWnd, szOutBuf, NULL, MB_OK|MB_ICONSTOP); //MOD GORIPON
225+//MOD START GORIPON
226+ MessageBox(g_MainWnd.m_hWnd, szOutBuf, NULL, MB_OK|MB_ICONSTOP);
227+//MOD END
226228 return FALSE;
227229 }
228230 }
--- trunk/body/resource.h (revision 60)
+++ trunk/body/resource.h (revision 61)
@@ -157,9 +157,13 @@
157157 #define IDS_MSG_DELFILETYPE 127
158158 #define IDI_COPY 127
159159 #define IDI_DELETEMSG 128
160+#define IDS_NEW_SHORTCUT_NAME 128
160161 #define IDI_EXECUTE 129
162+#define IDS_FMT_SHELLNEW_NAME1 129
161163 #define IDI_FILE_M 130
164+#define IDS_FMT_SHELLNEW_NAME2 130
162165 #define IDI_FILE_MULTI 131
166+#define IDS_TITLE_SELECTFOLDER 131
163167 #define IDI_FILE_S 132
164168 #define IDI_FOLDER_M 133
165169 #define IDI_FOLDER_S 134
@@ -333,6 +337,10 @@
333337 #define IDC_CHECK_XCRAWL_PAGEMOVE 1120
334338 #define IDC_CHECK_EDGE_LOOP 1121
335339 #define IDC_BUTTON1 1122
340+#define IDC_BTN_SHELLNEW 1122
341+#define IDC_EDIT_SHELLNEW 1123
342+#define IDC_BUTTON2 1124
343+#define IDC_BTN_NETWORK 1124
336344 #define ID_VIEW_REPORTLINE 4075
337345 #define ID_EDIT_DRAGDROP 4076
338346 #define ID_TOOLS_TEST 4078
@@ -409,11 +417,14 @@
409417 #define ID_FILE_MAIL_SEND 40074
410418 #define ID_VIEW_HIGHRES 40076
411419 #define ID_FOCUS_MOVE 40077
420+#define ID_FILE_CREATE_NEWSHORTCUT 40078
412421 #define IDS_MENU_FILE 0xA000
413422 #define IDS_MENU_EDIT 0xA001
414423 #define IDS_MENU_CANCEL 0xA002
424+#define IDS_MENU_OK 40963
415425 #define ID_FILE_OPEN_APP 50000
416426 #define ID_TOOL_USERPATH_MENU 50100
427+#define ID_FILE_SHELL_NEW_MENU 50200
417428 #define ID_TOOL_FAVORITES_LNK 51000
418429 #define ID_VIEW_SMALLICON 0xE810
419430 #define ID_VIEW_LARGEICON 0xE811
@@ -429,8 +440,8 @@
429440 #ifdef APSTUDIO_INVOKED
430441 #ifndef APSTUDIO_READONLY_SYMBOLS
431442 #define _APS_NEXT_RESOURCE_VALUE 197
432-#define _APS_NEXT_COMMAND_VALUE 40078
433-#define _APS_NEXT_CONTROL_VALUE 1123
443+#define _APS_NEXT_COMMAND_VALUE 40079
444+#define _APS_NEXT_CONTROL_VALUE 1125
434445 #define _APS_NEXT_SYMED_VALUE 1
435446 #endif
436447 #endif
--- trunk/body/OptionDlg.cpp (revision 60)
+++ trunk/body/OptionDlg.cpp (revision 61)
@@ -46,12 +46,30 @@
4646 NMHDR* pnmh = (NMHDR*)lParam;
4747 if (pnmh->code == PSN_APPLY)
4848 {
49- GetWindowText(GetDlgItem(hDlg, IDC_EDIT_PATH), g_MainWnd.m_szSendAppPath, MAX_PATH);
49+//MOD START GORIPON
50+ TCHAR szPath[MAX_PATH]={_T('\0')};
51+ GetWindowText(GetDlgItem(hDlg, IDC_EDIT_PATH), szPath, MAX_PATH);
52+ if (_tcsicmp(szPath, g_MainWnd.m_szSendAppPath) != 0)
53+ {
54+ _tcscpy(g_MainWnd.m_szSendAppPath, szPath);
55+ g_MainWnd.m_ListView.InitOpenAppMenu();
56+ }
57+//MOD END
5058 g_MainWnd.m_bCheckQAdd = SendMessage(GetDlgItem(hDlg, IDC_CHK_QADD), BM_GETCHECK, 0, 0)?TRUE:FALSE;
5159 return TRUE;
5260 }
5361 break;
5462 }
63+//ADD START GORIPON
64+ case WM_COMMAND:
65+ switch (LOWORD(wParam))
66+ {
67+ case IDC_BTN_BROWSE:
68+ OnDlgPathBrowse(hDlg, IDC_EDIT_PATH);
69+ break;
70+ }
71+ break;
72+//ADD END
5573 case WM_PAINT:
5674 return DefDlgPaintProc(hDlg, wParam, lParam);
5775 case WM_CTLCOLORSTATIC:
@@ -109,7 +127,6 @@
109127 g_MainWnd.m_CmdBands.SetCheckSort(g_MainWnd.m_ListView.m_Settings.nSort, g_MainWnd.m_ListView.m_Settings.bSortRaise);
110128 DestroyMenu(g_MainWnd.m_ListView.m_hMenuPopup);
111129 g_MainWnd.m_ListView.m_hMenuPopup = LoadMenu(g_hInst, (LPCTSTR)(g_MainWnd.m_bNumberShortcut? IDR_POPUP1:IDR_POPUP));
112- g_MainWnd.m_ListView.InitOpenAppMenu();
113130 g_MainWnd.m_ListView.InitUserPathMenu();
114131 g_MainWnd.m_ListView.InitFavoritesMenu();
115132 //ADD END
@@ -256,6 +273,7 @@
256273 SetWindowLong(GetDlgItem(hDlg,IDC_CHK_DBLCLICK), GWL_STYLE,
257274 GetWindowLong(GetDlgItem(hDlg,IDC_CHK_DBLCLICK), GWL_STYLE)|WS_DISABLED);
258275 EnableWindow(GetDlgItem(hDlg,IDC_EDIT_PATH), FALSE);
276+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_BROWSE), FALSE); //ADD GORIPON
259277 }
260278 return TRUE;
261279 }
@@ -279,6 +297,16 @@
279297 }
280298 break;
281299 }
300+//ADD START GORIPON
301+ case WM_COMMAND:
302+ switch (LOWORD(wParam))
303+ {
304+ case IDC_BTN_BROWSE:
305+ OnDlgPathBrowse(hDlg, IDC_EDIT_PATH);
306+ break;
307+ }
308+ break;
309+//ADD END
282310 case WM_PAINT:
283311 return DefDlgPaintProc(hDlg, wParam, lParam);
284312 case WM_CTLCOLORSTATIC:
@@ -298,6 +326,7 @@
298326 //SetWindowText(GetDlgItem(hDlg, IDC_EDIT_FAVORITES), g_MainWnd.m_szFavoritesPath);
299327 //DEL END
300328 SetWindowText(GetDlgItem(hDlg, IDC_EDIT_NETWORK), g_MainWnd.m_szNetworkPath);
329+ SetWindowText(GetDlgItem(hDlg, IDC_EDIT_SHELLNEW), g_MainWnd.m_szShellNewPath); //ADD GORIPON (新規作成メニュー対応)
301330 return TRUE;
302331 }
303332 case WM_NOTIFY:
@@ -320,6 +349,19 @@
320349 if(wcslen(szPath)!=0)
321350 wcscpy(g_MainWnd.m_szNetworkPath, szPath);
322351
352+//ADD START GORIPON (新規作成メニュー対応)
353+ //新規作成メニュー参照
354+ GetWindowText(GetDlgItem(hDlg, IDC_EDIT_SHELLNEW), szPath, sizeof(szPath));
355+ if(_tcslen(szPath) != 0)
356+ {
357+ if (_tcsicmp(szPath, g_MainWnd.m_szShellNewPath) != 0)
358+ {
359+ _tcscpy(g_MainWnd.m_szShellNewPath, szPath);
360+ g_MainWnd.m_ListView.InitShellNewMenu();
361+ }
362+ }
363+
364+//ADD END
323365 //DEL START GORIPON
324366 ////お気に入り
325367 //GetWindowText(GetDlgItem(hDlg, IDC_EDIT_FAVORITES), szPath, sizeof(szPath));
@@ -334,6 +376,17 @@
334376 }
335377 break;
336378 }
379+ case WM_COMMAND:
380+ switch(LOWORD(wParam))
381+ {
382+ case IDC_BTN_NETWORK:
383+ OnDlgPathBrowse(hDlg, IDC_EDIT_NETWORK);
384+ break;
385+ case IDC_BTN_SHELLNEW:
386+ OnDlgPathBrowse(hDlg, IDC_EDIT_SHELLNEW);
387+ break;
388+ }
389+ break;
337390 case WM_PAINT:
338391 return DefDlgPaintProc(hDlg, wParam, lParam);
339392 case WM_CTLCOLORSTATIC:
@@ -520,6 +573,7 @@
520573 if (nRet==IDOK)
521574 {
522575 g_MainWnd.m_ListView.InitOpenAppMenu();
576+ g_MainWnd.m_ListView.InitShellNewMenu();
523577
524578 //詳細表示の場合のみ表示形式再設定
525579 if (g_MainWnd.m_ListView.m_Settings.dwListStyle == LVS_REPORT)
--- trunk/body/GSFinder.cpp (revision 60)
+++ trunk/body/GSFinder.cpp (revision 61)
@@ -5,6 +5,7 @@
55 #include "GSFinder.h"
66 #include "MainWnd.h"
77 #include "OptionDlg.h"
8+#include "FolderDlgPPC.h"
89
910 HINSTANCE g_hInst; // 現在のインスタンス
1011 CMainWnd g_MainWnd; //メインウインドウ
@@ -150,6 +151,13 @@
150151 g_MainWnd.m_ListView.OnToolFavoritesLnk(wmId - ID_TOOL_FAVORITES_LNK);
151152 break;
152153 }
154+//ADD START GORIPON (新規作成メニュー対応)
155+ if (wmId >= ID_FILE_SHELL_NEW_MENU && wmId < (ID_FILE_SHELL_NEW_MENU+MAX_OPENAPP))
156+ {
157+ g_MainWnd.m_ListView.OnFileShellNew(wmId-ID_FILE_SHELL_NEW_MENU);
158+ break;
159+ }
160+//ADD END
153161
154162 //DEL START GORIPON
155163 ////タップ&ホールド用前処理
@@ -358,15 +366,15 @@
358366 case ID_VIEW_FOLDER:
359367 g_MainWnd.OnViewFolder();
360368 break;
369+//MOD START GORIPON
361370 //左右に並べる
362371 case ID_VIEW_SIDE:
363-//MOD START GORIPON
364372 if (g_MainWnd.m_bLandscapeMode)
365373 g_MainWnd.OnViewSideL();
366374 else
367375 g_MainWnd.OnViewSide();
376+ break;
368377 //MOD END
369- break;
370378 //ADD START GORIPON
371379 //ハイレゾ表示
372380 case ID_VIEW_HIGHRES:
@@ -411,6 +419,13 @@
411419 g_MainWnd.m_TreeView.OnFileCreateShortcut();
412420 break;
413421 }
422+//ADD START GORIPON
423+ //新規ショートカット作成
424+ case ID_FILE_CREATE_NEWSHORTCUT:
425+ SetFocus(g_MainWnd.m_ListView.m_hWnd);
426+ g_MainWnd.m_ListView.OnFileCreateNewShortcut();
427+ break;
428+//ADD END
414429 //削除
415430 case ID_FILE_DELETE:
416431 {
@@ -531,7 +546,14 @@
531546 //全て選択
532547 case ID_EDIT_SELECTALL:
533548 //SetFocus(g_MainWnd.m_ListView.m_hWnd); //DEL GORIPON
534- ListView_SetItemState(g_MainWnd.m_ListView.m_hWnd, -1, LVIS_SELECTED, LVIS_SELECTED);
549+//ADD START GORIPON (アドレスバーでのコンテキストメニュー対応)
550+ if (hFocus == g_MainWnd.m_CmdBands.m_hEditBox)
551+ SendMessage(g_MainWnd.m_CmdBands.m_hEditBox, EM_SETSEL, 0, -1);
552+ else
553+//ADD END
554+ {
555+ ListView_SetItemState(g_MainWnd.m_ListView.m_hWnd, -1, LVIS_SELECTED, LVIS_SELECTED);
556+ }
535557 break;
536558 //選択解除
537559 case ID_EDIT_NOTSEL_ALL:
@@ -556,10 +578,12 @@
556578 case ID_TOOL_ACTIVESYNC:
557579 g_MainWnd.OnToolActivesync();
558580 break;
559- //PCリンク
560- case ID_TOOL_PCLINK:
561- g_MainWnd.OnToolPclink();
562- break;
581+//DEL START GORIPON
582+ ////PCリンク
583+ //case ID_TOOL_PCLINK:
584+ // g_MainWnd.OnToolPclink();
585+ // break;
586+//DEL END
563587 //赤外線受信
564588 case ID_FILE_IRRECEIVE:
565589 g_MainWnd.OnToolIRRecive();
@@ -653,7 +677,7 @@
653677 }
654678 break;
655679 }
656- //ツリービュー/リストビュー発生イベント
680+ //ツリービュー/リストビュー/アドレスバー発生イベント
657681 case WM_NOTIFY:
658682 {
659683 //MOD START TODA (from GSFinder ver.1.99)
@@ -678,8 +702,14 @@
678702 }
679703 else
680704 //ADD END
681- g_MainWnd.m_TreeView.OnTapAndHold();
705+ g_MainWnd.m_TreeView.OnTapAndHold();
682706 }
707+//ADD START GORIPON (アドレスバーでのコンテキストメニュー対応)
708+ else if (hFocus == g_MainWnd.m_CmdBands.m_hEditBox)
709+ {
710+ g_MainWnd.m_CmdBands.OnTapAndHold((NMRGINFO*)lParam);
711+ }
712+//ADD END
683713 return TRUE;
684714 //リストをダブルクリック
685715 case NM_DBLCLK:
@@ -693,7 +723,7 @@
693723 ////タップ&ホールド解除
694724 //g_MainWnd.m_TreeView.OnTapHoldCancel();
695725 //g_MainWnd.m_ListView.OnTapHoldCancel();
696-
726+ //
697727 ////タップ&ホールド処理中の場合は何もしない
698728 //if(g_MainWnd.m_ListView.m_bHolding ||
699729 // g_MainWnd.m_TreeView.m_bHolding) break;
@@ -964,7 +994,7 @@
964994 if (g_bMoving)
965995 g_MainWnd.OnMouseMove(lParam, g_nStartPos, g_nLastWidth, g_nLastHeight);
966996 if(g_bDraging) {
967- POINT pt={GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)}; //MOD GORIPON
997+ POINT pt = {GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)}; //MOD GORIPON
968998 g_MainWnd.OnMouseMove(pt);
969999 }
9701000 break;
@@ -1000,17 +1030,13 @@
10001030 }
10011031 break;
10021032 //ADD END
1033+//MOD START GORIPON
10031034 //ポップアップメニュークローズ
10041035 case WM_EXITMENULOOP:
1005-//DEL START GORIPON
1006- //g_MainWnd.m_ListView.OnExitMenuLoop();
1007- //g_MainWnd.m_TreeView.OnExitMenuLoop();
1008-//DEL END
1009-//ADD START GORIPON
10101036 if (g_MainWnd.m_bNumberShortcut)
10111037 g_MainWnd.RestoreInputMode();
1012-//ADD END
10131038 break;
1039+//MOD END
10141040 //ADD START TODA (ファイル変更通知 from Y.Nagamidori)
10151041 case WM_UPDATENOTIFY:
10161042 {
@@ -1047,6 +1073,7 @@
10471073 shidi.hDlg = hDlg;
10481074 SHINITDIALOG(&shidi); //MOD GORIPON
10491075
1076+//ADD START GORIPON
10501077 //バージョン番号文字列の設定
10511078 DWORD size;
10521079 TCHAR szTemp[1024];
@@ -1066,6 +1093,7 @@
10661093 }
10671094 delete pv;
10681095 }
1096+//ADD END
10691097 //DEL START GORIPON (PocketPC/WindowsMobile版のAboutに「メモリ使用状況」は無い)
10701098 ////サイズ調整 (Edit)
10711099 //RECT rc;
@@ -1204,8 +1232,8 @@
12041232 // //VGA以外の場合
12051233 // return FALSE;
12061234 //}
1235+//
12071236 //DEL END
1208-
12091237 ///////////////////////////////////////////////////////////////
12101238 void CenterWindow(HWND hWnd)
12111239 {
@@ -1523,12 +1551,12 @@
15231551
15241552 //ADD START TODA
15251553 //////////////////////////////////////////////////////////////////////////////////////
1526-#define KEY_MYCOMPUTER _T("{000214A0-0000-0000-C000-000000000046}")
1554+//#define KEY_MYCOMPUTER _T("{000214A0-0000-0000-C000-000000000046}") //DEL GORIPON
15271555 LPCTSTR GetRootName()
15281556 {
15291557 //MOD START GORIPON
1530- if (!wcslen(g_szRootName))
1531- wcscpy(g_szRootName, GetStringTable(IDS_ROOT_FOLDER_NAME));
1558+ if (!_tcslen(g_szRootName))
1559+ _tcscpy(g_szRootName, GetStringTable(IDS_ROOT_FOLDER_NAME));
15321560 //MOD END
15331561 return g_szRootName;
15341562 }
@@ -1537,7 +1565,7 @@
15371565 int AddRootIcon(HIMAGELIST hImageList)
15381566 {
15391567 //MOD START GORIPON (ハイレゾ対応)
1540- int in = (g_MainWnd.m_bHighRresolutionMode||!g_MainWnd.m_bHighDpiHardware)? IDI_ROOT_S:IDI_ROOT_M;
1568+ int in = (g_MainWnd.m_bHighRresolutionMode || !g_MainWnd.m_bHighDpiHardware)? IDI_ROOT_S: IDI_ROOT_M;
15411569 HICON hIcon = LoadIcon(g_hInst, (LPCTSTR)in);
15421570 int nRet = ImageList_AddIcon(hImageList, hIcon);
15431571 //MOD END
@@ -1678,7 +1706,7 @@
16781706 //ADD END
16791707 //ADD START GORIPON
16801708 ////////////////////////////////////////////////////////////////
1681-LPWSTR GetStringTable(int ids)
1709+LPTSTR GetStringTable(int ids)
16821710 {
16831711 if (!LoadString(g_hInst, ids, s_szStrBuf, MAX_PATH*2))
16841712 wcscpy(s_szStrBuf, _T(""));
@@ -1685,14 +1713,38 @@
16851713 return s_szStrBuf;
16861714 }
16871715 ////////////////////////////////////////////////////////////////
1688-LPWSTR DupStringTable(int ids)
1716+LPTSTR DupStringTable(int ids)
16891717 {
16901718 return _wcsdup(GetStringTable(ids));
16911719 }
16921720 ////////////////////////////////////////////////////////////////
1693-VOID FreeStringTable(LPWSTR lpszStr)
1721+VOID FreeStringTable(LPTSTR lpszStr)
16941722 {
16951723 if (lpszStr != s_szStrBuf)
16961724 free(lpszStr);
16971725 }
1698-//ADD END
\ No newline at end of file
1726+//ADD END
1727+//ADD START GORIPON
1728+///////////////////////////////////////////////////////////////
1729+void OnDlgPathBrowse(HWND hDlg, int nEditId, int nTitleId)
1730+{
1731+ TCHAR szFolderTo[MAX_PATH] = _T("");
1732+
1733+ //検索場所取得
1734+ GetWindowText(GetDlgItem(hDlg, nEditId), szFolderTo, sizeof(szFolderTo));
1735+
1736+ //ディレクトリ有無確認
1737+ DWORD dwAttr = GetFileAttributes(szFolderTo);
1738+ if (!(dwAttr&FILE_ATTRIBUTE_DIRECTORY) && dwAttr != 0xFFFFFFFF)
1739+ szFolderTo[0] = _T('\0');
1740+
1741+ //フォルダ指定ダイアログオープン
1742+ CFolderDlg fd;
1743+ LPTSTR lpszTitle = DupStringTable(nTitleId);
1744+ int nRet = fd.ShowFolderDlg(lpszTitle, szFolderTo, sizeof(szFolderTo));
1745+ FreeStringTable(lpszTitle);
1746+ if (nRet == IDOK)
1747+ SetWindowText(GetDlgItem(hDlg, nEditId), szFolderTo);
1748+ SetFocus(hDlg);
1749+}
1750+//ADD END
--- trunk/body/MainWnd.h (revision 60)
+++ trunk/body/MainWnd.h (revision 61)
@@ -94,6 +94,7 @@
9494 //ADD END
9595
9696 TCHAR m_szSendAppPath[MAX_PATH];
97+ TCHAR m_szShellNewPath[MAX_PATH]; //ADD GORIPON (新規作成メニュー対応)
9798 BOOL m_bCheckQAdd;
9899 HIMAGELIST m_hDragImg; //ADD TODA
99100 HWND m_hDragWnd; //ADD TODA
@@ -137,7 +138,7 @@
137138 void OnNetworkDriveConnect(); //ADD TODA
138139 void OnNetworkDriveDisconnect(); //ADD TODA
139140 void OnToolActivesync();
140- void OnToolPclink();
141+ //void OnToolPclink(); //DEL GORIPON
141142 void OnToolIRRecive();
142143
143144 void SaveModulePath();
--- trunk/body/FileSearch.cpp (revision 60)
+++ trunk/body/FileSearch.cpp (revision 61)
@@ -28,9 +28,6 @@
2828 wcscpy(szDataTemp, lpszDataPos);
2929 wcsupr(szDataTemp);
3030 lpszDataPos = szDataTemp;
31- //wcscpy(szWordTemp, lpszWordPos);
32- //wcsupr(szWordTemp);
33- //lpszWordPos = szWordTemp;
3431 }
3532
3633 //文字検索開始(検索文字がなくなるまで)
@@ -251,7 +248,7 @@
251248 break;
252249 //参照ボタン押下
253250 case IDC_BTN_BROWSE:
254- ((CFileSearch*)GetWindowLong(hDlg,GWL_USERDATA))->OnBrowse(); //MOD GORIPON
251+ OnDlgPathBrowse(hDlg, IDC_EDIT_PATH, IDS_TITLE_FILESEARCH); //MOD GORIPON
255252 break;
256253 //OKボタン押下
257254 case IDOK:
@@ -342,8 +339,8 @@
342339 // bSetSip = TRUE;
343340 // }
344341 //DEL END
342+//MOD START GORIPON
345343 //ウィンドウ作成
346-//MOD START GORIPON
347344 int rtn = DialogBoxParam(m_hInst, (LPCTSTR)IDD_SEARCH_DLG,
348345 m_hparWnd, (DLGPROC)FileSearchProc, LPARAM(this));
349346 //MOD END
@@ -357,7 +354,7 @@
357354 void CFileSearch::SetEditPath(LPTSTR lpszPath)
358355 {
359356 //検索パスの場合、ルートを設定する
360- if((!wcslen(lpszPath)) || (wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath)==0)) //MOD GORIPON
357+ if((!_tcslen(lpszPath)) || (_tcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath) == 0)) //MOD GORIPON
361358 {
362359 SetWindowText(GetDlgItem(m_hWnd, IDC_EDIT_PATH), GetRootName());
363360 }
@@ -641,8 +638,10 @@
641638 //サイズ初期値設定
642639 SetWindowText(GetDlgItem(m_hWnd, IDC_EDIT_SIZE), _T("0"));
643640
641+//MOD START GORIPON (標準OFF化)
644642 //大小文字区別をOFF
645- SendMessage(GetDlgItem(m_hWnd, IDC_CHK_UPR), BM_SETCHECK, 0, 0); //MOD GORIPON (標準OFF)
643+ SendMessage(GetDlgItem(m_hWnd, IDC_CHK_UPR), BM_SETCHECK, 0, 0);
644+//MOD END
646645
647646 //サブフォルダ検索をON
648647 SendMessage(GetDlgItem(m_hWnd, IDC_CHK_SUBFOLDER), BM_SETCHECK, 1, 0);
@@ -651,38 +650,40 @@
651650 SetFocus(GetDlgItem(m_hWnd, IDC_EDIT_NAME));
652651 }
653652
653+//DEL START GORIPON (汎用化してGSFinder.cppに移動)
654+/////////////////////////////////////////////////////////////////
655+////参照ボタン押下
656+//void CFileSearch::OnBrowse()
657+//{
658+// TCHAR szFolderTo[MAX_PATH] = _T("");
659+//
660+// //検索場所取得
661+// GetWindowText(GetDlgItem(m_hWnd, IDC_EDIT_PATH),
662+// szFolderTo, sizeof(szFolderTo));
663+//
664+// //ディレクトリ有無確認
665+// DWORD dwAttr = GetFileAttributes(szFolderTo);
666+// if(!(FILE_ATTRIBUTE_DIRECTORY == (dwAttr & FILE_ATTRIBUTE_DIRECTORY) && dwAttr != 0xFFFFFFFF))
667+// {
668+// //無効の場合は空白とする
669+// szFolderTo[0] = 0x00;
670+// }
671+//
672+// //フォルダ指定ダイアログオープン
673+// CFolderDlg fd;
674+////MOD START GORIPON
675+// LPTSTR lpszTitle = DupStringTable(IDS_TITLE_FILESEARCH);
676+// int nRet = fd.ShowFolderDlg(lpszTitle, szFolderTo, sizeof(szFolderTo));
677+// FreeStringTable(lpszTitle);
678+// if (nRet == IDOK)
679+////MOD END
680+// {
681+// SetEditPath(szFolderTo);
682+// }
683+//}
684+//
685+//DEL END
654686 ///////////////////////////////////////////////////////////////
655-//参照ボタン押下
656-void CFileSearch::OnBrowse()
657-{
658- TCHAR szFolderTo[MAX_PATH] = _T("");
659-
660- //検索場所取得
661- GetWindowText(GetDlgItem(m_hWnd, IDC_EDIT_PATH),
662- szFolderTo, sizeof(szFolderTo));
663-
664- //ディレクトリ有無確認
665- DWORD dwAttr = GetFileAttributes(szFolderTo);
666- if(!(FILE_ATTRIBUTE_DIRECTORY == (dwAttr & FILE_ATTRIBUTE_DIRECTORY) && dwAttr != 0xFFFFFFFF))
667- {
668- //無効の場合は空白とする
669- szFolderTo[0] = 0x00;
670- }
671-
672- //フォルダ指定ダイアログオープン
673- CFolderDlg fd;
674-//MOD START GORIPON
675- LPTSTR lpszTitle = DupStringTable(IDS_TITLE_FILESEARCH);
676- int nRet = fd.ShowFolderDlg(lpszTitle, szFolderTo, sizeof(szFolderTo));
677- FreeStringTable(lpszTitle);
678- if (nRet == IDOK)
679-//MOD END
680- {
681- SetEditPath(szFolderTo);
682- }
683-}
684-
685-///////////////////////////////////////////////////////////////
686687 //日付チェックボックス押下
687688 void CFileSearch::OnChkDateChange()
688689 {
--- trunk/body/ListView.cpp (revision 60)
+++ trunk/body/ListView.cpp (revision 61)
@@ -18,7 +18,6 @@
1818 ///////////////////////////////////////////////////////////////
1919 #define ID_LISTVIEW 0
2020
21-//MOD START GORIPON
2221 #define DEF_LIST_STYLE (WS_BORDER | WS_TABSTOP | WS_VISIBLE | WS_CHILD | \
2322 LVS_SHAREIMAGELISTS | \
2423 LVS_ALIGNTOP | LVS_EDITLABELS | \
@@ -61,19 +60,12 @@
6160 g_MainWnd.m_ListView.m_bThroughContextMenu = FALSE;
6261 switch (wParam)
6362 {
64-//DEL START GORIPON
65- //case VK_HOME:
66- // //HOMEキー押下
67- // g_MainWnd.m_ListView.OnGoBack();
68- // return 0;
69- //case VK_END:
70- // //ENDキー押下
71- // g_MainWnd.m_ListView.OnGoFront();
72- // return 0;
73-//DEL END
7463 case VK_RETURN:
7564 //ENTERキー押下
76- g_MainWnd.m_ListView.m_bOwnKeyup = TRUE;
65+ if (GET_KEYSTATE(VK_CONTROL)&0x8000)
66+ wParam = VK_SPACE; //CTRL+ENTERならCTRL+SPACEに挿げ替え
67+ else
68+ g_MainWnd.m_ListView.m_bOwnKeyup = TRUE;
7769 break;
7870 case VK_BACK:
7971 return 0;
@@ -168,6 +160,8 @@
168160 g_MainWnd.m_ListView.OnFileOpen();
169161 }
170162 }
163+ else
164+ wParam = VK_SPACE; //CTRL+ENTERならCTRL+SPACEに挿げ替え
171165 }
172166 }
173167 break;
@@ -208,9 +202,14 @@
208202 }
209203 g_MainWnd.m_ListView.m_bThroughContextMenu = FALSE;
210204 break;
211- //コンテクストメニューのオープン
212205 case WM_CONTEXTMENU:
206+ //コンテクストメニューのオープン
213207 g_MainWnd.m_ListView.m_bThroughContextMenu = TRUE;
208+ //SHIFT/CTRLキー処理
209+ if (g_MainWnd.m_bShiftKey)
210+ g_MainWnd.OnEditShiftOn();
211+ if (g_MainWnd.m_bControlKey)
212+ g_MainWnd.OnEditCtrlOn();
214213 break;
215214 case WM_LBUTTONDOWN:
216215 //タップ開始時
@@ -464,6 +463,7 @@
464463 m_bOwnKeyup = FALSE;
465464 m_bArrowPageMove = FALSE;
466465 memset(m_szFowardFindName, 0, MAX_PATH*sizeof(TCHAR));
466+ memset(m_szLastCreateName, 0, MAX_PATH*sizeof(TCHAR)); //ADD GORIPON (新規作成メニュー対応)
467467 m_bScrollbarMove = FALSE;
468468 //ADD END
469469
@@ -593,6 +593,7 @@
593593 InitOpenAppMenu();
594594 InitUserPathMenu(); //ADD TODA
595595 InitFavoritesMenu(); //ADD TODA
596+ InitShellNewMenu(); //ADD GORIPON (新規作成メニュー対応)
596597
597598 //表示形式設定
598599 OnChangeListStyle(0); //ADD TODA
@@ -624,6 +625,19 @@
624625 }
625626
626627 m_nOpenAppInfoCount = NULL;
628+//ADD START GORIPON (新規作成メニュー対応)
629+ for (i = 0; i < m_nShellNewInfoCount; i++)
630+ {
631+ OPENAPPINFO* pcn= m_lpShellNewInfo[i];
632+ if (pcn)
633+ {
634+ delete pcn->lpszPath;
635+ delete pcn;
636+ m_lpShellNewInfo[i] = NULL;
637+ }
638+ }
639+ m_nShellNewInfoCount = 0;
640+//ADD END
627641
628642 DeleteAllItem();
629643 DeleteUserPathMenu(); //ADD TODA
@@ -896,12 +910,10 @@
896910 m_ImageListSettings.bStuffingIcons = dwValue;
897911 }
898912 }
899-//MOD END
900913
901914 ///////////////////////////////////////////////////////////////
902915 void CListView::SaveSettings()
903916 {
904-//MOD START GORIPON
905917 //保存前にカラムサイズを取得
906918 if (m_Settings.dwListStyle==LVS_REPORT)
907919 {
@@ -1090,7 +1102,7 @@
10901102 TCHAR szItemCount[64];
10911103 TCHAR szAllSize[64];
10921104 //MOD START GORIPON
1093- wsprintf(szTemp, _T("%d"), (m_dwUpperParam && wcslen(lpszPath) && wcsicmp(GetStringTable(IDS_SEARCH_FOLDER_NAME),lpszPath)!=0) ?
1105+ wsprintf(szTemp, _T("%d"), (m_dwUpperParam && wcslen(lpszPath) && wcsicmp(GetStringTable(IDS_SEARCH_FOLDER_NAME),lpszPath) != 0) ?
10941106 ListView_GetItemCount(m_hWnd) - 1 : ListView_GetItemCount(m_hWnd));
10951107 //MOD END
10961108
@@ -1107,17 +1119,17 @@
11071119 TCHAR szItemCount[64];
11081120 TCHAR szAllSize[64];
11091121 TCHAR szFolder[64];
1110-//MOD START GORIPON
1111- wsprintf(szTemp, _T("%d"), (m_dwUpperParam && wcslen(lpszPath) && wcsicmp(GetStringTable(IDS_SEARCH_FOLDER_NAME),lpszPath)!=0) ?
1122+ wsprintf(szTemp, _T("%d"), (m_dwUpperParam && wcslen(lpszPath) && wcsicmp(GetStringTable(IDS_SEARCH_FOLDER_NAME),lpszPath)!=0) ? //MOD GORIPON
11121123 ListView_GetItemCount(m_hWnd) - 1 : ListView_GetItemCount(m_hWnd));
1113-//MOD END
11141124
11151125 SetFormatInteger(szTemp, 64);
1116- wsprintf(szItemCount, GetStringTable(IDS_FMT_OBJECTSCOUNT_S), szTemp); //MOD GORIPON
1126+//MOD START GORIPON
1127+ wsprintf(szItemCount, GetStringTable(IDS_FMT_OBJECTSCOUNT_S), szTemp);
11171128 TCHAR szFmtKB[256], szFmtMB[256];
11181129 wcscpy(szFmtKB, GetStringTable(IDS_FMT_TOTALBYTES_SKB));
11191130 wcscpy(szFmtMB, GetStringTable(IDS_FMT_TOTALBYTES_SMB));
11201131 SetFormatSize(nAllSize, szAllSize, szFmtKB, szFmtMB);
1132+//MOD END
11211133 LPTSTR lpszFolderName = wcsrchr(m_szCurrentFolder, _T('\\'));
11221134 if (lpszFolderName)
11231135 wcscpy(szFolder, ++lpszFolderName);
@@ -1157,9 +1169,9 @@
11571169 //アイテムがファイルの場合のみ
11581170 //MOD START GORIPON
11591171 if(!(finddata.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
1172+//MOD END
11601173 //サイズをカウント
11611174 nAllSize += finddata.nFileSizeLow;
1162-//MOD END
11631175 }
11641176 while (FindNextFile(hFind, &finddata));
11651177 FindClose(hFind);
@@ -1228,8 +1240,8 @@
12281240
12291241 } //End of while
12301242
1243+//MOD START GORIPON (仮想リストビュー対応)
12311244 // ソート
1232-//MOD START GORIPON (仮想リストビュー対応)
12331245 if (g_MainWnd.m_bVirtualListView)
12341246 {
12351247 if (m_ItemStruct.GetCount())
@@ -1240,13 +1252,12 @@
12401252 if (ListView_GetItemCount(m_hWnd))
12411253 SortList();
12421254 }
1243-//MOD END
12441255
12451256 //画面再構築
12461257 MainWindowReset(lpszPath, nAllSize);
12471258 m_nFileSize = nAllSize;
1259+//MOD END
12481260
1249-//MOD START GORIPON
12501261 //ツリービュー更新
12511262 g_MainWnd.m_TreeView.SetCurrentFolder(lpszPath, FALSE, TRUE);
12521263
@@ -1254,6 +1265,7 @@
12541265 ListView_SetItemState(m_hWnd, 0, LVIS_SELECTED, LVIS_SELECTED);
12551266 ListView_SetItemState(m_hWnd, 0, LVIS_FOCUSED, LVIS_FOCUSED);
12561267
1268+//MOD START GORIPON
12571269 //カーソルを元に戻す
12581270 SetCursor(hCursor);
12591271 //MOD END
@@ -1311,8 +1323,8 @@
13111323 //フォルダ非表示の場合フォルダを無視
13121324 //MOD START GORIPON
13131325 if(m_bHideFolder && (finddata.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
1326+//MOD END
13141327 continue;
1315-//MOD END
13161328
13171329 //DEL START GORIPON
13181330 ////アイテム選択
@@ -1372,8 +1384,7 @@
13721384 if (nItem < 0)
13731385 nItem = 0;
13741386 ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED);
1375- ListView_SetItemState(m_hWnd, nItem, LVIS_SELECTED, LVIS_SELECTED);
1376- ListView_SetItemState(m_hWnd, nItem, LVIS_FOCUSED, LVIS_FOCUSED);
1387+ ListView_SetItemState(m_hWnd, nItem, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED);
13771388 ListView_EnsureVisible(m_hWnd, nItem, FALSE);
13781389
13791390 //カーソルを元に戻す
@@ -1396,7 +1407,7 @@
13961407 SendMessage(m_hWnd, WM_SETREDRAW, (WPARAM)0, (LPARAM)0);
13971408
13981409 //検索処理の場合
1399- if(0 == wcscmp(lpszPath, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
1410+ if(0 == _tcscmp(lpszPath, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
14001411 LoadFolderSearch(lpszPath);
14011412 else
14021413 LoadFolderFiles(lpszPath, bTVUpdate);
@@ -1409,8 +1420,8 @@
14091420 EnableUpdateNotify();
14101421 //ADD END
14111422 }
1423+//ADD START GORIPON
14121424
1413-//ADD START GORIPON
14141425 ///////////////////////////////////////////////////////////////
14151426 void CListView::InitFolderItem(LPCTSTR lpszPath)
14161427 {
@@ -1426,8 +1437,8 @@
14261437 SetUpdateNotify(lpszPath);
14271438 EnableUpdateNotify();
14281439 }
1440+
14291441 //ADD END
1430-
14311442 ///////////////////////////////////////////////////////////////
14321443 void CListView::LoadFolderItemSub(LPCTSTR lpszPath)
14331444 {
@@ -1836,7 +1847,6 @@
18361847
18371848 //画面更新
18381849 InvalidateRect(g_MainWnd.m_hWnd, NULL, FALSE);
1839- InvalidateRect(m_hWnd, NULL, FALSE);
18401850 }
18411851 ///////////////////////////////////////////////////////////////
18421852 //リストの並べ替え
@@ -1873,7 +1883,7 @@
18731883 {
18741884 //ADD START TODA
18751885 //仮想パスの場合チェックをしない
1876- if(0 == wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), szTemp)) //MOD GORIPON
1886+ if(0 == _tcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), szTemp)) //MOD GORIPON
18771887 {
18781888 LoadFolderItem(szTemp);
18791889 return;
@@ -1920,7 +1930,7 @@
19201930 // TCHAR szPath[MAX_PATH] = _T(""); //DEL TODA (from GSFinder ver.1.99)
19211931
19221932 //ADD START GORIPON
1923- if (wcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME)) == 0)
1933+ if (_tcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME)) == 0)
19241934 {
19251935 *m_szOldFolder = _T('\0');
19261936 LoadFolderItem(_T(""));
@@ -1982,7 +1992,7 @@
19821992 ///////////////////////////////////////////////////////////////
19831993 void CListView::OnItemChanged(LPNMLISTVIEW lpnmlv) //MOD GORIPON (パラメータ追加)
19841994 {
1985- if (!(lpnmlv->uOldState&LVIS_SELECTED) && (lpnmlv->uNewState&LVIS_SELECTED))
1995+ if (!(lpnmlv->uOldState&LVIS_SELECTED) && (lpnmlv->uNewState&LVIS_SELECTED)) //ADD GORIPON
19861996 g_MainWnd.m_CmdBands.SetEnableItemSelected();
19871997 }
19881998
@@ -1994,6 +2004,7 @@
19942004 TCHAR szFolderName[MAX_PATH];
19952005 BOOL bRet = FALSE;
19962006 DisableUpdateNotify(); //ADD TODA (ファイル変更通知 from Y.Nagamidori)
2007+ _tcscpy(m_szLastCreateName, _T("")); //ADD START GORIPON (新規作成メニュー対応)
19972008 while(!bRet)
19982009 {
19992010 if (nCount==1)
@@ -2020,6 +2031,7 @@
20202031 }
20212032 }
20222033 LoadFolderItem(m_szCurrentFolder, TRUE); //MOD TODA
2034+ _tcscpy(m_szLastCreateName, szFolderName); //ADD GORIPON (新規作成メニュー対応)
20232035
20242036 //SipShowIM(SIPF_ON); //DEL GORIPON
20252037 SetFocus(m_hWnd); //ADD TODA
@@ -2056,9 +2068,9 @@
20562068 {
20572069 LISTITEMCOMP* plic = GetListItemStruct(nIndex);
20582070 TCHAR szOldName[MAX_PATH];
2059- TCHAR szNewName[MAX_PATH];
2071+ TCHAR szTo[MAX_PATH];
20602072 wcscpy(szOldName, plic->lpszName);
2061- wcscpy(szNewName, pDispInfo->item.pszText);
2073+ wcscpy(szTo, pDispInfo->item.pszText);
20622074
20632075 if (plic->nItem == LIST_ITEM_UPPER)
20642076 return FALSE;
@@ -2065,7 +2077,7 @@
20652077
20662078 //拡張子を表示しない設定では拡張子をつける
20672079 if (m_Settings.bNotShowExt && plic->nItem == LIST_ITEM_FILE)
2068- SetExtFromFileName(szNewName, szOldName);
2080+ SetExtFromFileName(szTo, szOldName);
20692081 if (wcslen(pDispInfo->item.pszText))
20702082 {
20712083 TCHAR szNewPath[MAX_PATH];
@@ -2073,9 +2085,9 @@
20732085
20742086 //MOD START TODA
20752087 // wsprintf(szOldPath, _T("%s\\%s"), m_szCurrentFolder, szOldName);
2076-// wsprintf(szNewPath, _T("%s\\%s"), m_szCurrentFolder, szNewName);
2088+// wsprintf(szNewPath, _T("%s\\%s"), m_szCurrentFolder, szTo);
20772089 wsprintf(szOldPath, _T("%s\\%s"), plic->lpszPath, szOldName);
2078- wsprintf(szNewPath, _T("%s\\%s"), plic->lpszPath, szNewName);
2090+ wsprintf(szNewPath, _T("%s\\%s"), plic->lpszPath, szTo);
20792091 //MOD END
20802092 DisableUpdateNotify(); //ADD TODA (ファイル変更通知 from Y.Nagamidori)
20812093 if (MoveFile(szOldPath, szNewPath)!=0)
@@ -2092,14 +2104,14 @@
20922104 plic->lpszDispSize = NULL;
20932105 plic->lpszDispType = NULL;
20942106 plic->lpszDispTime = NULL;
2095- plic->lpszName = new TCHAR[wcslen(szNewName)+1];
2096- wcscpy(plic->lpszName, szNewName);
2107+ plic->lpszName = new TCHAR[wcslen(szTo)+1];
2108+ wcscpy(plic->lpszName, szTo);
20972109 if (plic->nItem != LIST_ITEM_FOLDER)
20982110 plic->nIcon = -1;
20992111
21002112 //ADD START TODA (検索結果フォルダ時)
2101- if(0 == wcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
2102- EditSearch(plic->lpszPath, szOldName, plic->lpszPath, szNewName);
2113+ if(0 == _tcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
2114+ EditSearch(plic->lpszPath, szOldName, plic->lpszPath, szTo);
21032115 //ADD END
21042116
21052117 //DEL START TODA (高速化の為)
@@ -2145,13 +2157,6 @@
21452157 int CListView::GetSelectedItemIndex(int nStart)
21462158 {
21472159 //MOD START TODA (高速化の為)
2148- //int nItemCount = ListView_GetItemCount(m_hWnd);
2149- //for (int i= nStart; i<nItemCount; i++)
2150- //{
2151- // if (ListView_GetItemState(m_hWnd, i, LVIS_SELECTED)==LVIS_SELECTED)
2152- // return i;
2153- //}
2154- //return -1;
21552160 return ListView_GetNextItem(m_hWnd, (nStart-1), LVNI_SELECTED);
21562161 //MOD END
21572162 }
@@ -2179,10 +2184,11 @@
21792184 ////////////////////////////////////////////////////////////////
21802185 LISTITEMCOMP* CListView::GetListItemStruct(int nIndex)
21812186 {
2182-//MOD START GORIPON (仮想リストビュー対応)
2187+//ADD START GORIPON (仮想リストビュー対応)
21832188 if (g_MainWnd.m_bVirtualListView)
21842189 return (LISTITEMCOMP*)m_ItemStruct.GetAt(nIndex);
21852190 else
2191+//ADD END
21862192 {
21872193 LVITEM li;
21882194 li.iItem = nIndex;
@@ -2191,7 +2197,6 @@
21912197 ListView_GetItem(m_hWnd, &li);
21922198 return (LISTITEMCOMP*)li.lParam;
21932199 }
2194-//MOD END
21952200 }
21962201
21972202 ////////////////////////////////////////////////////////////////
@@ -2280,7 +2285,7 @@
22802285 while(nIndex != -1)
22812286 {
22822287 LISTITEMCOMP* plic = GetListItemStruct(nIndex);
2283- CreateShortcut(m_szCurrentFolder, plic->lpszPath, plic->lpszName); //MOD TODA
2288+ CreateShortcut(m_szCurrentFolder, plic->lpszPath, plic->lpszName, m_Settings.bNotShortcutName); //MOD GORIPON
22842289 nIndex = GetSelectedItemIndex(nIndex+1);
22852290 }
22862291 LoadFolderItem(m_szCurrentFolder, FALSE); //MOD TODA
@@ -2321,7 +2326,7 @@
23212326 while(nIndex != -1)
23222327 {
23232328 LISTITEMCOMP* plic = GetListItemStruct(nIndex);
2324- CreateShortcut(szFolder, plic->lpszPath, plic->lpszName);
2329+ CreateShortcut(szFolder, plic->lpszPath, plic->lpszName, m_Settings.bNotShortcutName); //MOD GORIPON
23252330 nIndex = GetSelectedItemIndex(nIndex + 1);
23262331 }
23272332 SetCursor(hCursor);
@@ -2333,7 +2338,46 @@
23332338 //ADD END
23342339 }
23352340 //MOD END
2341+//ADD START GORIPON (新規作成メニュー対応)
2342+
23362343 ////////////////////////////////////////////////////////////////
2344+void CListView::OnFileCreateNewShortcut()
2345+{
2346+ HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
2347+ TCHAR szCreateName[MAX_PATH];
2348+
2349+ //ショートカットの作成
2350+ LPTSTR lpszName = DupStringTable(IDS_NEW_SHORTCUT_NAME);
2351+ CreateShortcut(m_szCurrentFolder, NULL, lpszName, TRUE);
2352+ FreeStringTable(lpszName);
2353+ LoadFolderItem(m_szCurrentFolder, FALSE);
2354+ _tcscpy(szCreateName, m_szLastCreateName);
2355+
2356+ int nItem;
2357+//ADD START GORIPON (仮想リストビュー対応)
2358+ if (g_MainWnd.m_bVirtualListView)
2359+ nItem = m_ItemStruct.Find((LPFINDFUNC)SeekFolder, 0, (DWORD)szCreateName);
2360+ else
2361+//ADD END
2362+ {
2363+ LVFINDINFO lvfi;
2364+ lvfi.flags = LVFI_STRING;
2365+ lvfi.psz = szCreateName;
2366+ nItem = ListView_FindItem(m_hWnd, -1, &lvfi);
2367+ }
2368+ if (nItem < 0)
2369+ nItem = 0;
2370+ ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED);
2371+ ListView_SetItemState(m_hWnd, nItem, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED);
2372+ ListView_EnsureVisible(m_hWnd, nItem, FALSE);
2373+ SetCursor(hCursor);
2374+
2375+ //プロパティ画面を開く
2376+ SendMessage(g_MainWnd.m_hWnd, WM_COMMAND, (WPARAM)ID_FILE_PROPERTY, 0);
2377+}
2378+
2379+//ADD END
2380+////////////////////////////////////////////////////////////////
23372381 void CListView::OnViewFolder()
23382382 {
23392383 TCHAR szPath[MAX_PATH];
@@ -2375,7 +2419,7 @@
23752419
23762420 delete[] pliinfo;
23772421 }
2378- else if (wcslen(m_szCurrentFolder) && (ListView_GetSelectedCount(m_hWnd) == 0 || nCount ==0)) { //MOD GORIPON
2422+ else if (_tcslen(m_szCurrentFolder) && (ListView_GetSelectedCount(m_hWnd) == 0 || nCount ==0)) { //MOD GORIPON
23792423 LISTITEMINFO liinfo;
23802424 TCHAR szParent[MAX_PATH];
23812425 wcscpy(szParent, m_szCurrentFolder);
@@ -2674,7 +2718,9 @@
26742718
26752719 g_MainWnd.m_CmdBands.SetEnableEditPaste(TRUE);
26762720
2677- ListView_SetItemState(m_hWnd, -1, 0, LVIS_CUT); //MOD GORIPON
2721+//MOD START GORIPON
2722+ ListView_SetItemState(m_hWnd, -1, 0, LVIS_CUT);
2723+//MOD END
26782724 }
26792725 }
26802726 ////////////////////////////////////////////////////////////////
@@ -3018,13 +3064,25 @@
30183064 //追加
30193065 //MOD START TODA (szFileName -> szPath)
30203066 TCHAR szPath[MAX_PATH];
3021- wcscpy(szPath, finddata.cFileName);
3022- SetKickExt(szPath);
3023-//ADD START GORIPON
3024- int t = g_MainWnd.m_bNumberShortcut? (nCount+7):(nCount+1);
3025- if (t < 11)
3026- wsprintf(wcsrchr(szPath, '\0'), _T("(&%1d)"), t%10);
3027-//ADD END
3067+//MOD START GORIPON
3068+ if (g_MainWnd.m_bNumberShortcut)
3069+ {
3070+ int t = nCount+7;
3071+ if (t < 11)
3072+ wsprintf(szPath, _T("&%1d %s"), t%10, finddata.cFileName);
3073+ else
3074+ wsprintf(szPath, _T("%s"), finddata.cFileName);
3075+ SetKickExt(szPath);
3076+ }
3077+ else
3078+ {
3079+ int t = nCount+1;
3080+ wcscpy(szPath, finddata.cFileName);
3081+ SetKickExt(szPath);
3082+ if (t < 11)
3083+ wsprintf(wcsrchr(szPath, '\0'), _T("(&%1d)"), t%10);
3084+ }
3085+//MOD END
30283086 //メニュー作成
30293087 AppendMenu(hSubMenu1, MF_STRING|MF_ENABLED, ID_FILE_OPEN_APP + nCount, szPath);
30303088 AppendMenu(hSubMenu2, MF_STRING|MF_ENABLED, ID_FILE_OPEN_APP + nCount, szPath);
@@ -3133,7 +3191,7 @@
31333191 ////////////////////////////////////////////////////////////////
31343192 void CListView::DeleteUserPathMenuSep(HMENU hSubMenu)
31353193 {
3136- DeleteMenu(hSubMenu, 5, MF_BYPOSITION); //MOD GORIPON
3194+ DeleteMenu(hSubMenu, 7, MF_BYPOSITION); //MOD GORIPON
31373195 }
31383196
31393197 ////////////////////////////////////////////////////////////////
@@ -3172,6 +3230,7 @@
31723230 HMENU hSubMenu1 = GetUserPathSubMenu1();//mod by kawa
31733231 HMENU hSubMenu2 = GetUserPathSubMenu2();//add by kawa
31743232
3233+//MOD START GORIPON
31753234 //登録されているパスをメニュー登録
31763235 for (int i = 0; i < m_nOpenPthInfoCount; i++)
31773236 {
@@ -3178,20 +3237,29 @@
31783237 TCHAR szMenu[MAX_PATH+7];
31793238 LPTSTR lpszTemp = wcsrchr(m_lpOpenPthInfo[i]->lpszPath, _T('\\'));
31803239
3181-//MOD START GORIPON
3182- int t = g_MainWnd.m_bNumberShortcut? (i+6):i+1;
3183- wsprintf(szMenu, (t<11?_T("%s(&%1d)"):_T("%s")),
3184- (lpszTemp?lpszTemp+1:m_lpOpenPthInfo[i]->lpszPath), t%10);
3240+ if (!i)
3241+ {
3242+ AppendMenu(hSubMenu1, MF_SEPARATOR, 0, NULL);
3243+ AppendMenu(hSubMenu2, MF_SEPARATOR, 0, NULL);
3244+ }
3245+ lpszTemp = lpszTemp? lpszTemp+1: m_lpOpenPthInfo[i]->lpszPath;
3246+ if (g_MainWnd.m_bNumberShortcut)
3247+ {
3248+ int t = i+6;
3249+ if (t < 11)
3250+ wsprintf(szMenu, _T("&%1d %s"), t%10, lpszTemp);
3251+ else
3252+ wsprintf(szMenu, _T("%s"), lpszTemp);
3253+ }
3254+ else
3255+ {
3256+ int t = i+1;
3257+ wsprintf(szMenu, t<11? _T("%s(&%1d)"): _T("%s"), lpszTemp, t%10);
3258+ }
3259+ AppendMenu(hSubMenu1, MF_STRING|MF_ENABLED, ID_TOOL_USERPATH_MENU+i, szMenu);
3260+ AppendMenu(hSubMenu2, MF_STRING|MF_ENABLED, ID_TOOL_USERPATH_MENU+i, szMenu);
3261+ }
31853262 //MOD END
3186- InsertMenu(hSubMenu1, ID_TOOL_USERPATH, MF_STRING|MF_ENABLED,
3187- (ID_TOOL_USERPATH_MENU+i), szMenu); //mod by kawa
3188- InsertMenu(hSubMenu2, ID_TOOL_USERPATH, MF_STRING|MF_ENABLED,
3189- (ID_TOOL_USERPATH_MENU+i), szMenu); //add by kawa
3190- } //End of for
3191-
3192- //セパレータの追加
3193- InsertMenu(hSubMenu1, ID_TOOL_USERPATH, MF_SEPARATOR, NULL, NULL); //mod by kawa
3194- InsertMenu(hSubMenu2, ID_TOOL_USERPATH, MF_SEPARATOR, NULL, NULL); //add by kawa
31953263 }
31963264
31973265 ////////////////////////////////////////////////////////////////
@@ -3434,20 +3502,206 @@
34343502 }
34353503 //ADD END
34363504
3505+//ADD START GORIPON
3506+
34373507 ////////////////////////////////////////////////////////////////
3508+HMENU CListView::GetShellNewSubMenu1()
3509+{
3510+ return GetSubMenu(GetSubMenu(m_hMenuPopup, ID_POPUP_FILEVIEW_NOSELECT), 3);
3511+}
3512+
3513+////////////////////////////////////////////////////////////////
3514+HMENU CListView::GetShellNewSubMenu2()
3515+{
3516+ return GetSubMenu(g_MainWnd.m_CmdBands.m_hMenuFile, 8);
3517+}
3518+
3519+////////////////////////////////////////////////////////////////
3520+void CListView::DeleteShellNewSubMenuSep(HMENU hMenu)
3521+{
3522+ DeleteMenu(hMenu, 2, MF_BYPOSITION);
3523+}
3524+
3525+////////////////////////////////////////////////////////////////
3526+void CListView::InitShellNewMenu()
3527+{
3528+ HMENU hSubMenu1 = GetShellNewSubMenu1();
3529+ HMENU hSubMenu2 = GetShellNewSubMenu2();
3530+
3531+ if (m_nShellNewInfoCount)
3532+ {
3533+ DeleteShellNewSubMenuSep(hSubMenu1);
3534+ DeleteShellNewSubMenuSep(hSubMenu2);
3535+ }
3536+ for (int i = 0; i < m_nShellNewInfoCount; i++)
3537+ {
3538+ OPENAPPINFO* pcn=m_lpShellNewInfo[i];
3539+ if (pcn)
3540+ {
3541+ delete pcn->lpszPath;
3542+ delete pcn;
3543+ m_lpShellNewInfo[i] = NULL;
3544+ }
3545+ DeleteMenu(hSubMenu1, ID_FILE_SHELL_NEW_MENU+i, MF_BYCOMMAND);
3546+ DeleteMenu(hSubMenu2, ID_FILE_SHELL_NEW_MENU+i, MF_BYCOMMAND);
3547+ }
3548+ m_nShellNewInfoCount = 0;
3549+
3550+ TCHAR szTemp[MAX_PATH+4];
3551+ int nCount = 0;
3552+
3553+ wsprintf(szTemp, _T("%s\\*.*"), g_MainWnd.m_szShellNewPath);
3554+ WIN32_FIND_DATA finddata;
3555+ HANDLE hFind = FindFirstFile(szTemp, &finddata);
3556+ if (hFind != INVALID_HANDLE_VALUE)
3557+ {
3558+ do
3559+ {
3560+ if (!(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
3561+ {
3562+ nCount++;
3563+ if (nCount >= MAX_OPENAPP)
3564+ break;
3565+ }
3566+ }
3567+ while (FindNextFile(hFind, &finddata));
3568+ FindClose(hFind);
3569+ }
3570+
3571+ m_nShellNewInfoCount = nCount;
3572+ if (nCount == 0) return;
3573+
3574+ hFind = FindFirstFile(szTemp, &finddata);
3575+ if (hFind != INVALID_HANDLE_VALUE)
3576+ {
3577+ nCount = 0;
3578+ AppendMenu(hSubMenu1, MF_SEPARATOR, NULL, NULL);
3579+ AppendMenu(hSubMenu2, MF_SEPARATOR, NULL, NULL);
3580+ do
3581+ {
3582+ if (!(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
3583+ {
3584+ TCHAR szPath[MAX_PATH];
3585+
3586+ if (g_MainWnd.m_bNumberShortcut)
3587+ {
3588+ int t = nCount+3;
3589+ if (t < 11)
3590+ wsprintf(szPath, _T("&%1d %s"), t%10, finddata.cFileName);
3591+ else
3592+ wsprintf(szPath, _T("%s"), finddata.cFileName);
3593+ SetKickExt(szPath);
3594+ }
3595+ else
3596+ {
3597+ int t = nCount+1;
3598+ wcscpy(szPath, finddata.cFileName);
3599+ SetKickExt(szPath);
3600+ if (t < 11)
3601+ wsprintf(wcsrchr(szPath, '\0'), _T("(&%1d)"), t%10);
3602+ }
3603+ //メニュー作成
3604+ AppendMenu(hSubMenu1, MF_STRING|MF_ENABLED, ID_FILE_SHELL_NEW_MENU+nCount, szPath);
3605+ AppendMenu(hSubMenu2, MF_STRING|MF_ENABLED, ID_FILE_SHELL_NEW_MENU+nCount, szPath);
3606+
3607+ //パス保存
3608+ wsprintf(szPath, _T("%s\\%s"), g_MainWnd.m_szShellNewPath, finddata.cFileName);
3609+ OPENAPPINFO* pcn = new OPENAPPINFO;
3610+ pcn->lpszPath = new TCHAR[wcslen(szPath)+1];
3611+ wcscpy(pcn->lpszPath, szPath);
3612+ m_lpShellNewInfo[nCount] = pcn;
3613+ if (++nCount >= MAX_OPENAPP)
3614+ break;
3615+ }
3616+ }
3617+ while (FindNextFile(hFind, &finddata));
3618+ FindClose(hFind);
3619+ }
3620+}
3621+
3622+////////////////////////////////////////////////////////////////
3623+void CListView::OnFileShellNew(int nMenuIndex)
3624+{
3625+ if (nMenuIndex >= m_nShellNewInfoCount)
3626+ return;
3627+ _tcscpy(m_szLastCreateName, _T(""));
3628+
3629+ //ウェイトカーソルの表示
3630+ HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
3631+
3632+ TCHAR szTo[MAX_PATH], szName[MAX_PATH], szExt[MAX_PATH];
3633+ LPTSTR lpszTemp;
3634+
3635+ //新規ファイルのファイル名作成
3636+ _tcscpy(szExt, _T(""));
3637+ _tcscpy(szName, _tcsrchr(m_lpShellNewInfo[nMenuIndex]->lpszPath, _T('\\'))+1);
3638+ lpszTemp = _tcsrchr(szName, _T('.'));
3639+ if (lpszTemp)
3640+ {
3641+ _tcscpy(szExt, lpszTemp);
3642+ *lpszTemp = _T('\0');
3643+ }
3644+ wsprintf(szTo, GetStringTable(IDS_FMT_SHELLNEW_NAME1), m_szCurrentFolder, szName);
3645+ _tcscat(szTo, szExt);
3646+ if (GetFileAttributes(szTo) != 0xFFFFFFFF)
3647+ {
3648+ for (int n = 2; n < 512; n++)
3649+ {
3650+ wsprintf(szTo, GetStringTable(IDS_FMT_SHELLNEW_NAME2), m_szCurrentFolder, szName, n);
3651+ _tcscat(szTo, szExt);
3652+ if (GetFileAttributes(szTo) == 0xFFFFFFFF)
3653+ break;
3654+ }
3655+ }
3656+
3657+ //ShellNewフォルダからカレントフォルダへの新規ファイルのコピー
3658+ CopyFile(m_lpShellNewInfo[nMenuIndex]->lpszPath, szTo, FALSE);
3659+ LoadFolderItem(m_szCurrentFolder);
3660+
3661+ //アイテム選択
3662+ int nItem = 0;
3663+ _tcscpy(szName, _tcsrchr(szTo, _T('\\'))+1);
3664+ if (m_Settings.bNotShowExt)
3665+ {
3666+ lpszTemp = _tcsrchr(szName, _T('.'));
3667+ if (lpszTemp)
3668+ *lpszTemp = _T('\0');
3669+ }
3670+ _tcscpy(m_szLastCreateName, szName);
3671+
3672+//ADD START GORIPON (仮想リストビュー)
3673+ if (g_MainWnd.m_bVirtualListView)
3674+ nItem = m_ItemStruct.Find((LPFINDFUNC)SeekFolder, 0, (DWORD)szName);
3675+ else
3676+//ADD END
3677+ {
3678+ LVFINDINFO lvfi;
3679+ lvfi.flags = LVFI_STRING;
3680+ lvfi.psz = szName;
3681+ nItem = ListView_FindItem(m_hWnd, -1, &lvfi);
3682+ }
3683+ if (nItem < 0)
3684+ nItem = 0;
3685+ ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED);
3686+ ListView_SetItemState(m_hWnd, nItem, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED);
3687+ ListView_EnsureVisible(m_hWnd, nItem, FALSE);
3688+
3689+ //カーソルを元に戻す
3690+ SetCursor(hCursor);
3691+}
3692+
3693+//ADD END
3694+////////////////////////////////////////////////////////////////
34383695 void CListView::OnColumnClick(NMLISTVIEW* lpnmlv)
34393696 {
3440-//MOD START GORIPON
3441- int nSort;
3697+ int nSort; //MOD GORIPON
34423698 switch (lpnmlv->iSubItem)
34433699 {
3700+ default: nSort = LIST_SORT_NAME; break; //MOD GORIPON
34443701 case 1: nSort = LIST_SORT_SIZE; break;
34453702 case 2: nSort = LIST_SORT_EXT; break;
34463703 case 3: nSort = LIST_SORT_TIME; break;
3447- //case 0:
3448- default: nSort = LIST_SORT_NAME; break;
34493704 }
3450-//MOD END
34513705
34523706 if (nSort == m_Settings.nSort)
34533707 m_Settings.bSortRaise = !m_Settings.bSortRaise;
@@ -3559,6 +3813,7 @@
35593813 //MOD END
35603814 }
35613815 //ADD START GORIPON
3816+
35623817 ////////////////////////////////////////////////////////////////
35633818 BOOL CListView::OnKeydownArrow(WPARAM wParam, LPARAM lParam)
35643819 {
@@ -3651,6 +3906,7 @@
36513906 }
36523907 return FALSE;
36533908 }
3909+
36543910 ////////////////////////////////////////////////////////////////
36553911 BOOL CListView::OnKeydownMoveTop(WPARAM wParam, LPARAM lParam)
36563912 {
@@ -3676,6 +3932,7 @@
36763932 }
36773933 return FALSE;
36783934 }
3935+
36793936 ////////////////////////////////////////////////////////////////
36803937 BOOL CListView::OnKeydownMoveTail(WPARAM wParam, LPARAM lParam)
36813938 {
@@ -3712,14 +3969,14 @@
37123969 keybd_event(VK_CONTROL, 0x32, KEYEVENTF_KEYUP, 0);
37133970 return FALSE;
37143971 }
3972+
37153973 //ADD END
3716-
37173974 //ADD START TODA
37183975 ////////////////////////////////////////////////////////////////
37193976 int CListView::CheckMessageID(int dwWID)
37203977 {
37213978 //検索中以外は無視
3722- if(wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), m_szCurrentFolder)!=0) //MOD GORIPON
3979+ if(wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), m_szCurrentFolder) != 0) //MOD GORIPON
37233980 {
37243981 return dwWID;
37253982 }
@@ -3750,6 +4007,12 @@
37504007 case ID_FILE_CREATE_SHORTCUT:
37514008 wID = 0;
37524009 break;
4010+//ADD START GORIPON (新規作成メニュー対応)
4011+ //新規ショートカット作成
4012+ case ID_FILE_CREATE_NEWSHORTCUT:
4013+ wID = 0;
4014+ break;
4015+//ADD END
37534016 //圧縮
37544017 case ID_FILE_COMPRESS:
37554018 wID = 0;
@@ -3844,10 +4107,10 @@
38444107 }
38454108 }
38464109 }
3847-//MOD START GORIPON (仮想リストビュー対応)
38484110 ////////////////////////////////////////////////////////////////
38494111 void CListView::SortList()
38504112 {
4113+//ADD START GORIPON (仮想リストビュー対応)
38514114 if (g_MainWnd.m_bVirtualListView)
38524115 {
38534116 switch (m_Settings.nSort)
@@ -3868,6 +4131,7 @@
38684131 }
38694132 }
38704133 else
4134+//ADD END
38714135 {
38724136 switch (m_Settings.nSort)
38734137 {
@@ -3888,9 +4152,8 @@
38884152 break;
38894153 }
38904154 }
3891- ListView_Update(m_hWnd, -1);
4155+ ListView_Update(m_hWnd, -1); //ADD GORIPON
38924156 }
3893-//MOD END
38944157
38954158 ///////////////////////////////////////////////////////////////
38964159 void CListView::OnGetDispInfo(NMLVDISPINFO* lpnmdi)
@@ -4240,7 +4503,7 @@
42404503 HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
42414504 for (int i = 0; i < m_nCount; i++)
42424505 {
4243- CreateShortcut(m_szCurrentFolder, m_lpliinfo[i].szPath, m_lpliinfo[i].szName); //MOD TODA
4506+ CreateShortcut(m_szCurrentFolder, m_lpliinfo[i].szPath, m_lpliinfo[i].szName, m_Settings.bNotShortcutName); //MOD GORIPON
42444507 }
42454508 SetCursor(hCursor);
42464509 //MOD START TODA (フラグ判定追加)
@@ -4344,8 +4607,8 @@
43444607 DWORD dwPos = GetMessagePos();
43454608 LVHITTESTINFO lv_ht;
43464609 memset(&lv_ht, 0x00, sizeof(lv_ht));
4610+//MOD START GORIPON
43474611 lv_ht.flags = LVHT_ONITEM;
4348-//MOD START GORIPON
43494612 lv_ht.pt.x = GET_X_LPARAM(dwPos);
43504613 lv_ht.pt.y = GET_Y_LPARAM(dwPos);
43514614 //MOD END
@@ -4499,8 +4762,13 @@
44994762 //お気に入りのディレクトリへ移動
45004763 wcscpy(m_szCurrentFolder, g_MainWnd.m_szFavoritesPath);
45014764
4502- //ショートカットの貼り付け
4765+//MOD START GORIPON
4766+ //ショートカットの貼り付け(設定に関係なく"〜へのショートカット"は付けない)
4767+ BOOL bTemp = m_Settings.bNotShortcutName;
4768+ m_Settings.bNotShortcutName = TRUE;
45034769 OnEditPasteShortcut(FALSE);
4770+ m_Settings.bNotShortcutName = bTemp;
4771+//MOD END
45044772
45054773 //選択の解除
45064774 ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED);
@@ -4507,7 +4775,7 @@
45074775 wcscpy(m_szCurrentFolder, szFromFolder);
45084776
45094777 //お気に入りメニューの再作成
4510- //DeleteFavoritesMenu(); //DEL GORIPON InitFavoritesMenu()内に移動
4778+ //DeleteFavoritesMenu(); //DEL GORIPON (InitFavoritesMenu()内に移動)
45114779 InitFavoritesMenu();
45124780 }
45134781
@@ -4594,7 +4862,7 @@
45944862 void CListView::OnGoFront()
45954863 {
45964864 //仮想パス以外の場合のみ
4597- if(0 != wcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
4865+ if(0 != _tcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
45984866 {
45994867 //次がない場合は移動しない
46004868 if(!m_lpHistoryCurrent->lpNext) return;
@@ -4609,7 +4877,7 @@
46094877 void CListView::OnGoBack()
46104878 {
46114879 //仮想パス以外の場合のみ
4612- if(0 != wcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
4880+ if(0 != _tcscmp(m_szCurrentFolder, GetStringTable(IDS_SEARCH_FOLDER_NAME))) //MOD GORIPON
46134881 {
46144882 //前がない場合は移動しない
46154883 if(!m_lpHistoryCurrent->lpPrev) return;
@@ -4681,7 +4949,7 @@
46814949 } //End of while
46824950 }
46834951 ///////////////////////////////////////////////////////////////
4684-void CListView::EditSearch(LPTSTR lpszOldPath, LPTSTR lpszOldName, LPTSTR lpszNewPath, LPTSTR lpszNewName, BOOL bDelete)
4952+void CListView::EditSearch(LPTSTR lpszOldPath, LPTSTR lpszOldName, LPTSTR lpszNewPath, LPTSTR lpszTo, BOOL bDelete)
46854953 {
46864954 SEARCHDATA *pCurrent = m_lpSearchData;
46874955 for(int i=0; pCurrent; i++)
@@ -4709,8 +4977,8 @@
47094977 {
47104978 pCurrent->lpszPath = new TCHAR[wcslen(lpszNewPath)+1];
47114979 wcscpy(pCurrent->lpszPath, lpszNewPath);
4712- pCurrent->lpszName = new TCHAR[wcslen(lpszNewName)+1];
4713- wcscpy(pCurrent->lpszName, lpszNewName);
4980+ pCurrent->lpszName = new TCHAR[wcslen(lpszTo)+1];
4981+ wcscpy(pCurrent->lpszName, lpszTo);
47144982 }
47154983 break;
47164984 }
@@ -4770,7 +5038,7 @@
47705038 return plic->nItem == LIST_ITEM_FILE ? TRUE : FALSE;
47715039 }
47725040 ///////////////////////////////////////////////////////////////
4773-BOOL CListView::CreateShortcut(LPTSTR szDir, LPTSTR szTargetDir, LPTSTR szTargetFile)
5041+BOOL CListView::CreateShortcut(LPTSTR szDir, LPTSTR szTargetDir, LPTSTR szTargetFile, BOOL bNotName) //MOD GORIPON (引数追加)
47745042 {
47755043 int n = 0;
47765044 TCHAR szTarget[MAX_PATH];
@@ -4778,7 +5046,13 @@
47785046 TCHAR szFileName[MAX_PATH];
47795047
47805048 DisableUpdateNotify();
4781- wsprintf(szTarget, _T("\"%s\\%s\""), szTargetDir, szTargetFile);
5049+//MOD START GORIPON (新規作成メニュー対応)
5050+ _tcscpy(m_szLastCreateName, _T(""));
5051+ if (szTargetDir)
5052+ wsprintf(szTarget, _T("\"%s\\%s\""), szTargetDir, szTargetFile);
5053+ else
5054+ _tcscpy(szTarget, _T(""));
5055+//MOD END
47825056 wcscpy(szFileName, szTargetFile);
47835057 if (m_Settings.bNotShowExt || m_bNoExtShortcut) { //MOD TODA
47845058 LPTSTR p = wcsrchr(szFileName, _T('.'));
@@ -4786,20 +5060,27 @@
47865060 }
47875061
47885062 for (int i = 1; i < 512; i++) {
4789- if (m_Settings.bNotShortcutName) {
5063+//MOD START GORIPON
5064+ if (bNotName)
5065+ {
47905066 //〜へのショートカットをつけない
4791-//MOD START GORIPON
4792- wsprintf(szPath, GetStringTable(i==1?IDS_FMT_NEWSHORTCUT3:IDS_FMT_NEWSHORTCUT4), szDir, szFileName, i); //MOD GORIPON
4793-//MOD END
5067+ wsprintf(szPath, GetStringTable(i==1?IDS_FMT_NEWSHORTCUT3:IDS_FMT_NEWSHORTCUT4), szDir, szFileName, i);
47945068 }
4795- else {
5069+ else
5070+ {
47965071 //〜へのショートカットをつける
4797-//MOD START GORIPON
4798- wsprintf(szPath, GetStringTable(i==1?IDS_FMT_NEWSHORTCUT1:IDS_FMT_NEWSHORTCUT2), szDir, szFileName, i); //MOD GORIPON
5072+ wsprintf(szPath, GetStringTable(i==1?IDS_FMT_NEWSHORTCUT1:IDS_FMT_NEWSHORTCUT2), szDir, szFileName, i);
5073+ }
47995074 //MOD END
4800- }
48015075 if (SHCreateShortcut(szPath, szTarget))
5076+ {
5077+//ADD START GORIPON (新規作成メニュー対応)
5078+ _tcscpy(m_szLastCreateName, _tcsrchr(szPath, _T('\\'))+1);
5079+ if (m_Settings.bNotShowExt)
5080+ *_tcsrchr(m_szLastCreateName, _T('.')) = _T('\0');
5081+//ADD END
48025082 break;
5083+ }
48035084 }
48045085 EnableUpdateNotify();
48055086 return TRUE;
@@ -4806,6 +5087,7 @@
48065087 }
48075088 //ADD END
48085089 //ADD START GORIPON
5090+
48095091 ///////////////////////////////////////////////////////////////
48105092 void CListView::OnSetFocus()
48115093 {
--- trunk/body/Association.cpp (revision 60)
+++ trunk/body/Association.cpp (revision 61)
@@ -295,12 +295,21 @@
295295 {
296296 }
297297 ///////////////////////////////////////////////////////////////
298-//MOD START HOUMING
299298 void CAssociation::CreateAppList()
300299 {
301300 //前回作成したリストの削除
302301 DeleteAppList();
303302
303+//DEL START HOUMING
304+ //HKEY hKey;
305+ //DWORD dwDisposition;
306+ ////レジストリーキーのオープン
307+ ////HKEY_CLASSES_ROOT
308+ //if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT,_T(""),0,KEY_ALL_ACCESS, &hKey))
309+ // return;
310+ //
311+ //BYTE* lpData = new BYTE[MAX_PATH];
312+//DEL END
304313 CApplicationList* lpList = NULL; //MOD GORIPON
305314 for(int i=0; ;i++)
306315 {
@@ -309,12 +318,16 @@
309318 TCHAR szAppName[MAX_PATH];
310319 TCHAR szAppPath[MAX_PATH];
311320 TCHAR szCommand[MAX_PATH];
321+ //DWORD dwType; //DEL GORIPON
312322 DWORD dwDataSize;
323+ //FILETIME ftime; //DEL HOUMING
313324
325+//MOD START HOUMING
314326 //キーの取得
315327 dwDataSize = sizeof(szSubKey)/sizeof(TCHAR);
316- if(ERROR_SUCCESS!=RegEnumKeyEx(HKEY_CLASSES_ROOT, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
328+ if(ERROR_SUCCESS != RegEnumKeyEx(HKEY_CLASSES_ROOT, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
317329 break;
330+//MOD END
318331
319332 HKEY hKeyWk = 0;
320333 //キーが拡張子の場合
@@ -325,17 +338,23 @@
325338
326339 //関連付けアプリケーション(種類)取得
327340 //HKEY_CLASSES_ROOT-拡張子-(空白)
328- if(ERROR_SUCCESS!=RegOpenKeyExW(HKEY_CLASSES_ROOT, szSubKey, 0,0,&hKeyWk))
341+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk)) //MOD HOUMING
329342 continue;
330343
331- m_szExtType[0]=0;
344+//MOD START HOUMING
345+ m_szExtType[0] = _T('\0');
332346 dwDataSize = sizeof(m_szExtType);
333- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(m_szExtType), &dwDataSize))
347+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(m_szExtType), &dwDataSize))
348+//MOD END
334349 {
335350 RegCloseKey(hKeyWk);
336351 continue;
337352 }
338353 RegCloseKey(hKeyWk);
354+//DEL START HOUMING
355+ //memset(m_szExtType, 0x00, sizeof(m_szExtType));
356+ //memcpy(m_szExtType, lpData, dwDataSize);
357+//DEL END
339358 }
340359
341360 //キー値の取得
@@ -344,31 +363,44 @@
344363
345364 //コマンドライン取得
346365 //HKEY_CLASSES_ROOT-アプリケーション名-Shell-Open-Command-(空白)
347- if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk))
366+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk)) //MOD HOUMING
348367 continue;
349368
369+//MOD START HOUMING
350370 dwDataSize = sizeof(szTemp);
351- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szTemp), &dwDataSize))
371+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szTemp), &dwDataSize))
372+//MOD END
352373 {
353374 RegCloseKey(hKeyWk);
354375 continue;
355376 }
356377 RegCloseKey(hKeyWk);
378+//DEL START HOUMING
379+ //memset(szTemp, 0x00, sizeof(szTemp));
380+ //memcpy(szTemp, lpData, dwDataSize);
381+//DEL END
357382
358383 //アプリケーション名
359384 //HKEY_CLASSES_ROOT-アプリケーション名-(空白)
360385 hKeyWk = 0;
361- if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk))
386+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk)) //MOD HOUMING
362387 continue;
363388
389+//MOD START HOUMING
364390 dwDataSize = sizeof(szAppName);
365- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szAppName), &dwDataSize))
391+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szAppName), &dwDataSize))
392+//MOD END
366393 {
367394 RegCloseKey(hKeyWk);
368395 continue;
369396 }
370397 RegCloseKey(hKeyWk);
398+//DEL START HOUMING
399+ //memset(szAppName, 0x00, sizeof(szAppName));
400+ //memcpy(szAppName, lpData, dwDataSize);
401+//DEL END
371402
403+//MOD START HOUMING
372404 //登録判定
373405 LPTSTR lpszStart = szTemp;
374406 LPTSTR lpszEnd;
@@ -396,12 +428,13 @@
396428 } //End of while
397429 _tcscpy(szCommand, lpszEnd);
398430 _tcscpy(szAppPath, lpszStart);
431+//MOD END
399432
400433 //パスがない場合は"\Windows"フォルダとする
401- if(0!=_tcslen(szAppPath) && !_tcschr(szAppPath, _T('\\')))
434+ if(0 != _tcslen(szAppPath) && !_tcschr(szAppPath, _T('\\'))) //MOD HOUMING
402435 {
403436 TCHAR szAppBuf[MAX_PATH];
404- _tcscpy(szAppBuf, szAppPath);
437+ _tcscpy(szAppBuf, szAppPath); //MOD HOUMING
405438 wsprintf(szAppPath, _T("%s\\%s"), g_MainWnd.m_szWindowsPath, szAppBuf);
406439 }
407440 //アプリケーションがない場合は無視
@@ -417,17 +450,32 @@
417450 //MOD END
418451 } //End of for
419452
453+//DEL START HOUMING
454+ //delete[] lpData;
455+ //
456+ ////レジストリキーのクローズ
457+ //RegCloseKey(hKey);
458+//DEL END
459+
420460 return;
421461 }
422-//MOD END
423462
424463 ///////////////////////////////////////////////////////////////
425-//MOD START HOUMING
426464 void CAssociation::CreateAppList2()
427465 {
428466 //前回作成したリストの削除
429467 DeleteAppList();
430468
469+//DEL START HOUMING
470+ //HKEY hKey;
471+ //DWORD dwDisposition;
472+ ////レジストリーキーのオープン
473+ ////HKEY_CLASSES_ROOT
474+ //if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT,_T(""),0,KEY_ALL_ACCESS, &hKey))
475+ // return;
476+ //
477+ //BYTE* lpData = new BYTE[MAX_PATH];
478+//DEL END
431479 CApplicationList* lpList = NULL; //MOD GORIPON
432480 for(int i=0; ;i++)
433481 {
@@ -438,13 +486,17 @@
438486 TCHAR szAppPath[MAX_PATH];
439487 TCHAR szCommand[MAX_PATH];
440488 TCHAR szIconPath[MAX_PATH];
489+ //DWORD dwType; //DEL GORIPON
441490 DWORD dwDataSize;
442491 int nIconID;
492+ //FILETIME ftime; //DEL HOUMING
443493
494+//MOD START HOUMING
444495 //キーの取得
445496 dwDataSize = sizeof(szSubKey)/sizeof(TCHAR);
446- if(ERROR_SUCCESS!=RegEnumKeyEx(HKEY_CLASSES_ROOT, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
497+ if(ERROR_SUCCESS != RegEnumKeyEx(HKEY_CLASSES_ROOT, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
447498 break;
499+//MOD END
448500
449501 //キーが拡張子以外の場合は無視
450502 if(szSubKey[0]!=_T('.')) continue;
@@ -452,17 +504,25 @@
452504 HKEY hKeyWk = 0;
453505 //関連付けアプリケーション(種類)取得
454506 //HKEY_CLASSES_ROOT-拡張子-(空白)
455- if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk))
507+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk)) //MOD HOUMING
456508 continue;
457- _tcscpy(szExt, szSubKey);
509+ _tcscpy(szExt, szSubKey); //ADD HOUMING
458510
511+//MOD START HOUMING
459512 dwDataSize = sizeof(szSubKey);
460- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szSubKey), &dwDataSize))
513+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szSubKey), &dwDataSize))
514+//MOD END
461515 {
462516 RegCloseKey(hKeyWk);
463517 continue;
464518 }
465519 RegCloseKey(hKeyWk);
520+//DEL START HOUMING
521+ //memset(szExt, 0x00, sizeof(szExt));
522+ //wcscpy(szExt, szSubKey);
523+ //memset(szSubKey, 0x00, sizeof(szSubKey));
524+ //memcpy(szSubKey, lpData, dwDataSize);
525+//DEL END
466526
467527 //キー値の取得
468528 TCHAR szBuf[MAX_PATH];
@@ -470,47 +530,60 @@
470530
471531 //コマンドライン取得
472532 //HKEY_CLASSES_ROOT-アプリケーション名-Shell-Open-Command-(空白)
473- if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk))
533+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk)) //MOD HOUMING
474534 continue;
475535
536+//MOD START HOUMING
476537 dwDataSize = sizeof(szTemp);
477- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szTemp), &dwDataSize))
538+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szTemp), &dwDataSize))
539+//MOD END
478540 {
479541 RegCloseKey(hKeyWk);
480542 continue;
481543 }
482544 RegCloseKey(hKeyWk);
545+//DEL START HOUMING
546+ //memset(szTemp, 0x00, sizeof(szTemp));
547+ //memcpy(szTemp, lpData, dwDataSize);
548+//DEL END
483549
484550 //アプリケーション名
485551 //HKEY_CLASSES_ROOT-アプリケーション名-(空白)
486552 hKeyWk = 0;
487- if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk))
553+ if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, szSubKey, 0, 0, &hKeyWk)) //MOD HOUMING
488554 continue;
489555
556+//MOD START HOUMING
490557 dwDataSize = sizeof(szAppName);
491- if (ERROR_SUCCESS!=RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szAppName), &dwDataSize))
558+ if (ERROR_SUCCESS != RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szAppName), &dwDataSize))
559+//MOD END
492560 {
493561 RegCloseKey(hKeyWk);
494562 continue;
495563 }
496564 RegCloseKey(hKeyWk);
565+//DEL START HOUMING
566+ //memset(szAppName, 0x00, sizeof(szAppName));
567+ //memcpy(szAppName, lpData, dwDataSize);
568+//DEL END
497569
498570 //アイコンID(リソースID)
499571 //HKEY_CLASSES_ROOT-アプリケーション名-DefaultIcon
500572 wsprintf(szBuf, _T("%s\\DefaultIcon"), szSubKey);
501573 hKeyWk = 0;
502- szIconPath[0]=0;
574+//MOD START HOUMING
575+ szIconPath[0] = _T('\0');
503576 nIconID = 0;
504- if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk))
577+ if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, szBuf, 0, 0, &hKeyWk))
505578 {
506579 TCHAR szIconBuf[MAX_PATH];
507580 dwDataSize = sizeof(szIconBuf);
508- if (ERROR_SUCCESS==RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szIconBuf), &dwDataSize))
581+ if (ERROR_SUCCESS == RegQueryValueEx(hKeyWk, _T(""), 0, NULL, LPBYTE(szIconBuf), &dwDataSize))
509582 {
510583 LPTSTR lpszTemp = _tcsrchr(szIconBuf, _T(','));
511584 if(lpszTemp)
512585 {
513- *lpszTemp = 0x00;
586+ *lpszTemp = _T('\0');
514587 _tcscpy(szIconPath, szIconBuf);
515588 nIconID = _tcstol((lpszTemp+1), 0, 10);
516589 }
@@ -524,40 +597,41 @@
524597 if(lpszStart[0] == _T('\"'))
525598 {
526599 lpszStart++;
527- lpszEnd=_tcschr(lpszStart, _T('\"'));
600+ lpszEnd = _tcschr(lpszStart, _T('\"'));
528601 if(!lpszEnd)
529602 continue;
530603 }
531604 else
532- lpszEnd=_tcschr(lpszStart, _T(' '));
605+ lpszEnd = _tcschr(lpszStart, _T(' '));
533606 if(lpszEnd)
534607 {
535- *lpszEnd=0;
608+ *lpszEnd = _T('\0');
536609 lpszEnd++;
537610 }
538611 else
539- lpszEnd=_T("");
612+ lpszEnd = _T("");
540613
541614
542615 //余分な空白を削除
543- while(*lpszEnd==_T(' '))
616+ while(*lpszEnd == _T(' '))
544617 {
545618 lpszEnd++;
546619 } //End of while
547620 _tcscpy(szCommand, lpszEnd);
548621 _tcscpy(szAppPath, lpszStart);
622+//MOD END
549623
550624 //パスがない場合は"\Windows"フォルダとする
551- if(0!=_tcslen(szAppPath) && !_tcschr(szAppPath, _T('\\')))
625+ if(0 != _tcslen(szAppPath) && !_tcschr(szAppPath, _T('\\'))) //MOD HOUMING
552626 {
553627 TCHAR szAppBuf[MAX_PATH];
554- _tcscpy(szAppBuf, szAppPath);
628+ _tcscpy(szAppBuf, szAppPath); //MOD HOUMING
555629 wsprintf(szAppPath, _T("%s\\%s"), g_MainWnd.m_szWindowsPath, szAppBuf);
556630 }
557- if(0!=_tcslen(szIconPath) && !_tcschr(szIconPath, _T('\\')))
631+ if(0 != _tcslen(szIconPath) && !_tcschr(szIconPath, _T('\\'))) //MOD HOUMING
558632 {
559633 TCHAR szAppBuf[MAX_PATH];
560- _tcscpy(szAppBuf, szIconPath);
634+ _tcscpy(szAppBuf, szIconPath); //MOD HOUMING
561635 wsprintf(szIconPath, _T("%s\\%s"), g_MainWnd.m_szWindowsPath, szAppBuf);
562636 }
563637 //アプリケーションがない場合は無視
@@ -574,6 +648,12 @@
574648 //MOD END GORIPON
575649 } //End of for
576650
651+//DEL START HOUMING
652+ //delete[] lpData;
653+ //
654+ ////レジストリキーのクローズ
655+ //RegCloseKey(hKey);
656+//DEL END
577657
578658 return;
579659 }
@@ -735,12 +815,12 @@
735815 TCHAR szSubKey[MAX_PATH];
736816 TCHAR szTemp[MAX_PATH];
737817
818+//MOD START HOUMING
738819 //サブキーの取得
739-//MOD START HOUMING
740820 DWORD dwDataSize = sizeof(szSubKey)/sizeof(TCHAR);
741- if(ERROR_SUCCESS!=RegEnumKeyEx(hKey, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
821+ if(ERROR_SUCCESS != RegEnumKeyEx(hKey, i, szSubKey, &dwDataSize, NULL, NULL, NULL, NULL))
822+ break;
742823 //MOD END
743- break;
744824
745825 //再起呼び出し(サブキーのサブキー削除)
746826 wsprintf(szTemp, _T("%s\\%s"), lpszSubKey, szSubKey);
@@ -789,8 +869,10 @@
789869 {
790870 //イメージリストへ追加
791871 SHFILEINFO shfi;
792- SHGetFileInfo(lpList->getAppPath(), NULL, &shfi, sizeof(shfi), SHGFI_SMALLICON | SHGFI_ICON); //MOD GORIPON
793- lpList->setImageIndex(ImageList_AddIcon(m_hImageList, shfi.hIcon)); //MOD GORIPON
872+//MOD START GORIPON
873+ SHGetFileInfo(lpList->getAppPath(), NULL, &shfi, sizeof(shfi), SHGFI_SMALLICON|SHGFI_ICON);
874+ lpList->setImageIndex(ImageList_AddIcon(m_hImageList, shfi.hIcon));
875+//MOD END
794876 DestroyIcon(shfi.hIcon);
795877
796878 lpList = lpList->getNext(); //MOD GORIPON
@@ -833,8 +915,8 @@
833915 int nIndex = ListView_InsertItem(m_hListView, &lvitem);
834916
835917 //MOD START GORIPON
836- if((szSelectAppPath && 0==wcsicmp(szSelectAppPath, lpList->getAppPath())) ||
837- (!szSelectAppPath && 0==wcsicmp(m_szExtType, lpList->getKeyName())))
918+ if((szSelectAppPath && 0 == _tcsicmp(szSelectAppPath, lpList->getAppPath())) ||
919+ (!szSelectAppPath && 0 == _tcsicmp(m_szExtType, lpList->getKeyName())))
838920 //MOD END
839921 ListView_SetItemState(m_hListView, nIndex, LVIS_SELECTED, LVIS_SELECTED);
840922
@@ -905,13 +987,13 @@
905987 for(int i=0; lpList; i++)
906988 {
907989 if(nType == FINDTYPE_APPNAME &&
908- 0==wcscmp(szBuf, lpList->getAppName())) //MOD GORIPON
990+ 0 == _tcscmp(szBuf, lpList->getAppName())) //MOD GORIPON
909991 {
910992 nItem = i;
911993 break;
912994 }
913995 if(nType == FINDTYPE_EXT &&
914- 0==wcscmp(szBuf, lpList->getExt())) //MOD GORIPON
996+ 0 == _tcscmp(szBuf, lpList->getExt())) //MOD GORIPON
915997 {
916998 nItem = i;
917999 break;
@@ -949,7 +1031,7 @@
9491031 //ウィンドウ作成
9501032 //MOD START HOUMING
9511033 int rtn = DialogBoxParam(m_hInst, (LPCTSTR)IDD_CHOOSE_DLG,
952- m_hparWnd, (DLGPROC)ChooseProc,LPARAM(this));
1034+ m_hparWnd, (DLGPROC)ChooseProc, LPARAM(this));
9531035 //MOD END
9541036 return rtn;
9551037 }
@@ -1045,7 +1127,7 @@
10451127 ofn.lpstrTitle = DupStringTable(IDS_OPEN_APP);
10461128 ofn.lpstrFilter = DupStringTable(IDS_OPEN_APP_FILTER);
10471129 //'/'を'\0'に置き換え
1048- while (TCHAR *lptcSl = wcsrchr(ofn.lpstrFilter, _T('/')))
1130+ while (TCHAR *lptcSl = _tcsrchr(ofn.lpstrFilter, _T('/')))
10491131 *lptcSl = _T('\0');
10501132 //MOD END
10511133 ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
@@ -1118,11 +1200,9 @@
11181200
11191201 //アプリケーションの起動
11201202 //MOD START HOUMING
1121-//MOD START GORIPON
11221203 SHELLEXECUTEINFO sei;
1123- ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
1204+ ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); //ADD GORIPON
11241205 sei.cbSize = sizeof(SHELLEXECUTEINFO);
1125-//MOD END
11261206 sei.hwnd = g_MainWnd.m_hWnd;
11271207 sei.lpVerb = _T("open");
11281208 sei.lpFile = lpList->getAppPath(); //MOD GORIPON
@@ -1165,7 +1245,7 @@
11651245 lvclm.cchTextMax = 1;
11661246 lvclm.iSubItem = 1;
11671247 ListView_InsertColumn(m_hListView2, 1, &lvclm);
1168- FreeStringTable(lvclm.pszText); //ADD GORIPON
1248+ FreeStringTable(lvclm.pszText);
11691249 //MOD END
11701250
11711251 //サイズ調整
@@ -1290,6 +1370,7 @@
12901370 pt.x -= RECT_WIDTH(&rc)+(int)(3*g_MainWnd.m_fpHighResolutionScale);
12911371 MoveWindow(hdi, pt.x, pt.y, RECT_WIDTH(&rc), RECT_HEIGHT(&rc), TRUE);
12921372 }
1373+
12931374 //ADD END
12941375 ////////////////////////////////////////////////////////////////
12951376 void CAssociation::OnColumnClick(NMLISTVIEW* lpnmlv)
@@ -1394,8 +1475,8 @@
13941475 MoveWindow(hdi, pt.x, pt.y, RECT_WIDTH(&rcw)-pt.x, RECT_HEIGHT(&rc), TRUE);
13951476 }
13961477 //MOD END
1478+
13971479 //ADD END
1398-
13991480 ///////////////////////////////////////////////////////////////
14001481 void CAssociation::OpenDeleteFiletype()
14011482 {
@@ -1513,7 +1594,7 @@
15131594 while (lpList)
15141595 //MOD END
15151596 {
1516- if(0==wcsicmp((szExt+1), lpList->getExt())) //MOD GORIPON
1597+ if(0 == _tcsicmp((szExt+1), lpList->getExt())) //MOD GORIPON
15171598 {
15181599 m_lpActiveList = lpList;
15191600 break;
@@ -1559,8 +1640,8 @@
15591640
15601641 //パラメータの変更がある場合
15611642 //MOD START GORIPON
1562- if((0!=wcscmp(szAppName, m_lpActiveList->getAppName())) ||
1563- (0!=wcscmp(szCommand, m_lpActiveList->getCommand())))
1643+ if((0 != _tcscmp(szAppName, m_lpActiveList->getAppName())) ||
1644+ (0 != _tcscmp(szCommand, m_lpActiveList->getCommand())))
15641645 //レジストリ変更
15651646 SetApplication(m_lpActiveList->getAppPath(), m_lpActiveList->getKeyName(), szAppName, szCommand, m_lpActiveList->getIconPath(), m_lpActiveList->getIconID());
15661647 //MOD END
--- trunk/body/TreeView2.cpp (revision 60)
+++ trunk/body/TreeView2.cpp (revision 61)
@@ -243,7 +243,7 @@
243243 m_bLoadReq = FALSE;
244244
245245 //検索ディレクトリ指定の場合
246- if(0 == wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath)) //MOD GORIPON
246+ if(0 == _tcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), lpszPath)) //MOD GORIPON
247247 {
248248 //ルートを展開
249249 TreeView_Expand(m_hWnd, m_hRootItem, TVE_EXPAND);
@@ -292,7 +292,7 @@
292292 TreeView_GetItem(m_hWnd, &tvi);
293293
294294 //対象のディレクトリの場合
295- if (wcscmp(szName, szChildName) == 0)
295+ if (wcsicmp(szName, szChildName) == 0) //MOD GORIPON
296296 {
297297 hSelectItem = hParent = hChild;
298298 lpszStart = wcschr(lpszStart, _T('\\'));
@@ -328,7 +328,7 @@
328328 TreeExpand(m_hWnd, hParent);
329329
330330 //更新前に子ノードがあり、ノードが展開していた場合
331- if(hChild && (tvi.state&TVIS_EXPANDED)) //MOD GORIPON
331+ if (hChild && (tvi.state&TVIS_EXPANDED)) //MOD GORIPON
332332 //ノードを開く
333333 TreeView_Expand(m_hWnd, hParent, TVE_EXPAND);
334334 else
@@ -728,8 +728,8 @@
728728 return;
729729 }
730730
731+//MOD START GORIPON
731732 //右クリックメニュー作成
732-//MOD START GORIPON
733733 HMENU hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, ID_POPUP_FOLDERVIEW);
734734 UINT uEnable = g_MainWnd.m_ListView.m_nCount? MF_BYCOMMAND|MF_ENABLED: MF_BYCOMMAND|MF_GRAYED;
735735 EnableMenuItem(hMenu, ID_EDIT_PASTE, uEnable);
@@ -853,7 +853,7 @@
853853 DWORD dwCnt = 0;
854854
855855 //ADD START TODA (検索フォルダの場合)
856- if (wcscmp(pszPath, GetStringTable(IDS_SEARCH_FOLDER_NAME)) == 0) //MOD GORIPON
856+ if (_tcscmp(pszPath, GetStringTable(IDS_SEARCH_FOLDER_NAME)) == 0) //MOD GORIPON
857857 return 0;
858858 //ADD END
859859
@@ -1059,7 +1059,7 @@
10591059 TreeView_GetItem(m_hWnd, &tvi);
10601060
10611061 //検索フォルダ以外の場合
1062- if (wcscmp(szChildName, GetStringTable(IDS_SEARCH_FOLDER_NAME)) != 0) //MOD GORIPON
1062+ if (_tcscmp(szChildName, GetStringTable(IDS_SEARCH_FOLDER_NAME)) != 0) //MOD GORIPON
10631063 TreeView_SelectDropTarget(m_hWnd, hItem);
10641064 else
10651065 TreeView_SelectDropTarget(m_hWnd, NULL);
@@ -1097,7 +1097,7 @@
10971097 TreeView_GetItem(m_hWnd, &tvi);
10981098
10991099 //検索フォルダ以外の場合
1100- if (wcscmp(szChildName, GetStringTable(IDS_SEARCH_FOLDER_NAME)) != 0) //MOD GORIPON
1100+ if (_tcscmp(szChildName, GetStringTable(IDS_SEARCH_FOLDER_NAME)) != 0) //MOD GORIPON
11011101 {
11021102 OnDropEnter(hWnd, hItem);
11031103 return TRUE;
@@ -1259,8 +1259,8 @@
12591259 GetCurrentFolder(szPath);
12601260 g_MainWnd.m_ListView.SelectFile(szPath);
12611261
1262+//MOD START GORIPON
12621263 //コピー処理を実行
1263-//MOD START GORIPON
12641264 WCHAR szFromPath[MAX_PATH], *ptr;
12651265 wcscpy(szFromPath, szPath);
12661266 if (ptr = wcsrchr(szFromPath, _T('\\'))) //フォルダ表示での「コピー元フォルダ」は、カレントフォルダの1階層上を指定
@@ -1280,8 +1280,8 @@
12801280 GetCurrentFolder(szPath);
12811281 g_MainWnd.m_ListView.SelectFile(szPath);
12821282
1283+//MOD START GORIPON
12831284 //切り取り処理を実行
1284-//MOD START GORIPON
12851285 WCHAR szFromPath[MAX_PATH], *ptr;
12861286 wcscpy(szFromPath, szPath);
12871287 if (ptr = wcsrchr(szFromPath, _T('\\'))) //フォルダ表示での「コピー元フォルダ」は、カレントフォルダの1階層上を指定
@@ -1374,8 +1374,8 @@
13741374 // //元のディレクトリへ戻る
13751375 // g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE);
13761376 //}
1377+//
13771378 //DEL END
1378-
13791379 ///////////////////////////////////////////////////////////////
13801380 void CTreeView::OnFileShortcutFolder()
13811381 {
@@ -1494,11 +1494,21 @@
14941494 //お気に入りのディレクトリへ移動
14951495 wcscpy(g_MainWnd.m_ListView.m_szCurrentFolder, g_MainWnd.m_szFavoritesPath);
14961496
1497- //ショートカットの貼り付け
1497+//MOD START GORIPON
1498+ //ショートカットの貼り付け(設定に関係なく"〜へのショートカット"は付けない)
1499+ BOOL bTemp = g_MainWnd.m_ListView.m_Settings.bNotShortcutName;
1500+ g_MainWnd.m_ListView.m_Settings.bNotShortcutName = TRUE;
14981501 g_MainWnd.m_ListView.OnEditPasteShortcut(FALSE);
1502+ g_MainWnd.m_ListView.m_Settings.bNotShortcutName = bTemp;
1503+//MOD END
14991504
15001505 //元のディレクトリへ戻る
15011506 g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE);
1507+//ADD START GORIPON
1508+
1509+ //お気に入りメニューの再作成
1510+ g_MainWnd.m_ListView.InitFavoritesMenu();
1511+//ADD END
15021512 }
15031513 ///////////////////////////////////////////////////////////////
15041514 void CTreeView::OnTapAndHold()
@@ -1507,13 +1517,14 @@
15071517 OnRClick(GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), TRUE); //MOD GORIPON
15081518 }
15091519 //ADD START GORIPON
1520+
15101521 ///////////////////////////////////////////////////////////////
15111522 void CTreeView::OnTapAndHold(NMRGINFO* pnmri)
15121523 {
15131524 OnRClick(pnmri->ptAction.x, pnmri->ptAction.y, TRUE);
15141525 }
1526+
15151527 //ADD END
1516-
15171528 ///////////////////////////////////////////////////////////////
15181529 void CTreeView::OnTapHoldBegin(DWORD dwPos)
15191530 {
@@ -1630,6 +1641,5 @@
16301641 // m_bHolding = !m_bHolding;
16311642 // }
16321643 //}
1633-//DEL END
1634-//ADD END
16351644 ///////////////////////////////////////////////////////////////
1645+//DEL END
\ No newline at end of file
--- trunk/body/UserPathDlg.cpp (revision 60)
+++ trunk/body/UserPathDlg.cpp (revision 61)
@@ -90,8 +90,8 @@
9090 OnSize();
9191 //ADD END
9292
93+//MOD START GORIPON
9394 //ウィンドウタイトル
94-//MOD START GORIPON
9595 LPTSTR lpszText = DupStringTable(IDS_TITLE_USERPATHDLG);
9696 SetWindowText(m_hWnd, lpszText);
9797 FreeStringTable(lpszText);
@@ -130,8 +130,8 @@
130130 //フォーカスをリストへ設定
131131 SetFocus(m_hList);
132132 }
133+//ADD START GORIPON
133134
134-//ADD START GORIPON
135135 ///////////////////////////////////////////////////////////////
136136 void CUserPathDlg::OnSize()
137137 {
@@ -174,8 +174,8 @@
174174 pt.x -= RECT_WIDTH(&rc)+(int)(3*g_MainWnd.m_fpHighResolutionScale);
175175 MoveWindow(hlv, pt.x, pt.y, RECT_WIDTH(&rc), RECT_HEIGHT(&rc), TRUE);
176176 }
177+
177178 //ADD END
178-
179179 ///////////////////////////////////////////////////////////////
180180 void CUserPathDlg::SetButton()
181181 {
@@ -239,10 +239,7 @@
239239 {
240240 TCHAR szPath[MAX_PATH];
241241 wcscpy(szPath, g_MainWnd.m_ListView.m_szCurrentFolder);
242-//MOD START GORIPON
243- //if((!wcslen(szPath)) || (wcscmp(IDS_SEARCH_FOLDER_NAME, szPath)==0))
244- if((!wcslen(szPath)) || (wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), szPath)==0))
245-//MOD END
242+ if((!wcslen(szPath)) || (wcscmp(GetStringTable(IDS_SEARCH_FOLDER_NAME), szPath)==0)) //MOD GORIPON
246243 wcscpy(szPath, GetRootName());
247244
248245 //アイテムの追加
@@ -282,8 +279,8 @@
282279 //ボタンの設定
283280 SetButton();
284281 }
282+//ADD START GORIPON
285283
286-//ADD START GORIPON
287284 ///////////////////////////////////////////////////////////////
288285 void CUserPathDlg::OnUpMove()
289286 {
@@ -335,8 +332,8 @@
335332 //テーブルのパスを移動
336333 MovPath(nItem, +1);
337334 }
335+
338336 //ADD END
339-
340337 ///////////////////////////////////////////////////////////////
341338 void CUserPathDlg::OnEdit()
342339 {
@@ -362,10 +359,7 @@
362359 if (wcschr(pDispInfo->item.pszText, _T('/'))!=NULL || wcschr(pDispInfo->item.pszText, _T(':'))!=NULL || wcschr(pDispInfo->item.pszText, _T(','))!=NULL || wcschr(pDispInfo->item.pszText, _T(';'))!=NULL || wcschr(pDispInfo->item.pszText, _T('*'))!=NULL || wcschr(pDispInfo->item.pszText, _T('?'))!=NULL || wcschr(pDispInfo->item.pszText, _T('<'))!=NULL || wcschr(pDispInfo->item.pszText, _T('>'))!=NULL || wcschr(pDispInfo->item.pszText, _T('|'))!=NULL)
363360 {
364361 //エラーの場合
365-//MOD START GORIPON
366- //MessageBox(g_MainWnd.m_hWnd, IDS_MSG_CANNOTUSECHAR, NULL, MB_OK|MB_ICONSTOP);
367- MessageBox(g_MainWnd.m_hWnd, GetStringTable(IDS_MSG_CANNOTUSECHAR), NULL, MB_OK|MB_ICONSTOP);
368-//MOD END
362+ MessageBox(g_MainWnd.m_hWnd, GetStringTable(IDS_MSG_CANNOTUSECHAR), NULL, MB_OK|MB_ICONSTOP); //MOD GORIPON
369363 SetFocus(m_hList);
370364 ListView_EditLabel(m_hList, nIndex);
371365 return FALSE;
@@ -380,10 +374,7 @@
380374 //存在するかの確認
381375 DWORD dwAttr = GetFileAttributes(szPath);
382376 if (dwAttr == 0xFFFFFFFF || !(dwAttr & FILE_ATTRIBUTE_DIRECTORY)) {
383-//MOD START GORIPON
384- //MessageBox(g_MainWnd.m_hWnd, IDS_MSG_NOTFOUND_PATH, NULL, MB_OK|MB_ICONSTOP);
385- MessageBox(g_MainWnd.m_hWnd, GetStringTable(IDS_MSG_NOTFOUND_PATH), NULL, MB_OK|MB_ICONSTOP);
386-//MOD END
377+ MessageBox(g_MainWnd.m_hWnd, GetStringTable(IDS_MSG_NOTFOUND_PATH), NULL, MB_OK|MB_ICONSTOP); //MOD GORIPON
387378 SetFocus(m_hList);
388379 ListView_EditLabel(m_hList, nIndex);
389380 return FALSE;
@@ -459,8 +450,8 @@
459450 g_MainWnd.m_ListView.m_nOpenPthInfoCount--;
460451 return TRUE;
461452 }
453+//ADD START GORIPON
462454
463-//ADD START GORIPON
464455 ///////////////////////////////////////////////////////////////
465456 BOOL CUserPathDlg::MovPath(int nIndex, int nDirection)
466457 {
@@ -490,8 +481,8 @@
490481 }
491482 return FALSE;
492483 }
484+
493485 //ADD END
494-
495486 ///////////////////////////////////////////////////////////////
496487 LRESULT CALLBACK UserPathDlgProc(
497488 HWND hDlg,
--- trunk/body/ListSort.cpp (revision 60)
+++ trunk/body/ListSort.cpp (revision 61)
@@ -26,9 +26,9 @@
2626 LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
2727 BOOL bRaise = (BOOL)lParamSort;
2828
29-//MOD START GORIPON
3029 if (pList1->nItem < pList2->nItem)
3130 return -1;
31+//MOD START GORIPON
3232 else if (pList1->nItem > pList2->nItem)
3333 return 1;
3434 else
@@ -69,9 +69,9 @@
6969 LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
7070 BOOL bRaise = (BOOL)lParamSort;
7171
72-//MOD START GORIPON
7372 if (pList1->nItem < pList2->nItem)
7473 return -1;
74+//MOD START GORIPON
7575 else if (pList1->nItem > pList2->nItem)
7676 return 1;
7777 else
@@ -112,9 +112,9 @@
112112 LISTITEMCOMP* pList2 = (LISTITEMCOMP*)lParam2;
113113 BOOL bRaise = (BOOL)lParamSort;
114114
115-//MOD START GORIPON
116115 if (pList1->nItem < pList2->nItem)
117116 return -1;
117+//MOD START GORIPON
118118 else if (pList1->nItem > pList2->nItem)
119119 return 1;
120120 else
--- trunk/body/readme.txt (revision 60)
+++ trunk/body/readme.txt (revision 61)
@@ -12,6 +12,8 @@
1212
1313  名称については、私がW-ZERO3で使うために改造しているのと、動作確認を
1414 W-ZERO3シリーズでしか行っていないことから付けています。
15+ カスタマイズの方向性としてW-ZERO3シリーズが優先されるというだけで、他機
16+種で動作しないというわけではありません。
1517
1618
1719 ●動作環境
@@ -98,19 +100,19 @@
98100 取り扱いには注意してください。
99101
100102 ホーミン氏
101-「PPC2SPLIB Part2」
102-http://geocities.yahoo.co.jp/gl/hou_ming_2/view/20071215/1197721424
103+「PPC2SPLIB PartIII」
104+http://geocities.yahoo.co.jp/gl/hou_ming_2/view/20080110/1199972682
103105
104106
105107 ●既知の問題
106108  頑張って修正したのですが、力及ばず修正に至っていない不具合や仕様がまだ
107-残っています。ここに記載されている問題については、こちらで状況を把握して
108-いますので、報告していただく必要はありません。
109+残っている場合があります。ここに記載されている問題については、こちらで状
110+況を把握していますので、報告していただく必要はありません。
109111  以前のバージョンではここに記載されていて、ここから消えているものは、こ
110112 ちらでは「修正した」と認識しています。もし「直っていないぞ」という項目が
111113 ありましたらお知らせください。
112114
113-(現在認識している既知の問題はありません)
115+・ハイレゾモード時に表示形式を切り替えるとファイル表示にゴミが残る
114116
115117
116118 ●連絡先
@@ -316,3 +318,21 @@
316318 ・オプション画面の「ファイルの種類」で処理に時間が掛かる場合にはウェイトカーソルを表示するよう修正
317319 ・ファイル名の変更中にSIPを開くとファイル名が隠れてしまう場合があったのを修正
318320
321+2008/1/14 1.7.0.0 (1.6.3.37)
322+・コンテキストメニューが開いた時点で「範囲選択」「複数選択」が解除されるように変更
323+・アドレスバーでEM・ONEのスクロールホイールが上下カーソルキー相当で動作するように修正
324+・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正
325+・アドレスバーへのパス入力時に行われていた不要なファイル/フォルダ表示の更新を削減
326+・Smartphone/Standardで編集メニューの「複数選択」が使えなかったのを修正
327+・アドレスバーでもタップ&ホールドおよびプレス&ホールドが使えるように修正
328+・使用されていなかった不要コード(PCリンク呼び出し)を削除
329+・メニューの数字ショートカットキーをSmartphone/Standardに近くなるように変更
330+・PPC2SPLIBをPartIII/1月12日版にに更新
331+・ファイルメニューの「新規フォルダ作成」に換えて「新規作成」メニューを新設
332+・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正
333+・「お気に入りに追加」を行うと追加した項目に"〜へのショートカット"が付く場合があったのを修正
334+・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正
335+・ファイル表示でのメニューの有効無効を切り替える処理を簡略化
336+・フォルダ表示で「すべて選択」が動作していなかったのを修正
337+・オプション画面のフォルダ指定にフォルダの参照ボタンを追加
338+
--- trunk/body/MainWnd.cpp (revision 60)
+++ trunk/body/MainWnd.cpp (revision 61)
@@ -35,6 +35,7 @@
3535 m_szFontName[0]=0x00; //ADD TODA
3636
3737 wcscpy(m_szSendAppPath, _T("\\Windows\\SendTo"));
38+ wcscpy(m_szShellNewPath, _T("\\Windows\\ShellNew")); //ADD GORIPON (新規作成メニュー対応)
3839 m_bCheckQAdd = TRUE;
3940
4041 m_bShowFolder = FALSE; //ADD TODA
@@ -287,7 +288,7 @@
287288 {
288289 //MOD START TODA (from GSFinder ver.1.99)
289290 //サイズを調整
290-//MOD START GORIPON
291+//MOD START GORIPON (画面縦横切り替え時のアドレスバー/ステータスバーの幅の不具合修正)
291292 RECT rctSB, rctTB, rctAB, rctCB;
292293 if (m_StatusWnd.m_hWnd)
293294 GetWindowRect(m_StatusWnd.m_hWnd, &rctSB);
@@ -562,6 +563,11 @@
562563 //m_szSendAppPath
563564 RegSetValueEx(hKey, _T("SendAppPath"), 0, REG_SZ, (LPBYTE)m_szSendAppPath, ((wcslen(m_szSendAppPath)+1) * sizeof(TCHAR)));
564565
566+//ADD START GORIPON (新規作成メニュー対応)
567+ //m_szShellNewPath
568+ RegSetValueEx(hKey, _T("ShellNewPath"), 0, REG_SZ, (LPBYTE)m_szShellNewPath, ((wcslen(m_szShellNewPath)+1) * sizeof(TCHAR)));
569+//ADD END
570+
565571 RegCloseKey(hKey);
566572 }
567573 //MOD END
@@ -722,12 +728,16 @@
722728
723729 //m_szSendAppPath
724730 dwDataSize = sizeof(bData);
725- if (RegQueryValueEx(hKey, _T("SendAppPath"), 0, NULL, bData, &dwDataSize) == ERROR_SUCCESS) {
731+ if (RegQueryValueEx(hKey, _T("SendAppPath"), 0, NULL, bData, &dwDataSize) == ERROR_SUCCESS)
726732 memcpy(&m_szSendAppPath, bData, dwDataSize);
727- if(wcslen(m_szStartMenuPath)!=0)
728- m_lpszStartMenu = wcsrchr(m_szStartMenuPath, _T('\\'))+1;
729- }
730733
734+//ADD START GORIPON (新規作成メニュー対応)
735+ //m_szShellNewPath
736+ dwDataSize = sizeof(bData);
737+ if (RegQueryValueEx(hKey, _T("ShellNewPath"), 0, NULL, bData, &dwDataSize) == ERROR_SUCCESS)
738+ memcpy(&m_szShellNewPath, bData, dwDataSize);
739+//ADD END
740+
731741 RegCloseKey(hKey);
732742 }
733743 //MOD END
@@ -775,8 +785,9 @@
775785 //表示サイズの調整
776786 RecalcLayout();
777787 }
788+//ADD GORIPON
789+
778790 ///////////////////////////////////////////////////////////////
779-//ADD GORIPON
780791 void CMainWnd::OnViewSideL()
781792 {
782793 m_bViewSideL = !m_bViewSideL;
@@ -787,6 +798,7 @@
787798 //表示サイズの調整
788799 RecalcLayout();
789800 }
801+
790802 ///////////////////////////////////////////////////////////////
791803 void CMainWnd::OnViewHighRes(BOOL bHighRes)
792804 {
@@ -802,8 +814,8 @@
802814 ListView_EnsureVisible(m_ListView.m_hWnd, 0, TRUE);
803815 InvalidateRect(m_hWnd, NULL, FALSE);
804816 }
817+
805818 //ADD END
806-
807819 ///////////////////////////////////////////////////////////////
808820 void CMainWnd::OnViewUpdate(LPCTSTR lpszPath)
809821 {
@@ -819,6 +831,9 @@
819831 //お気に入りメニュー更新
820832 m_ListView.InitFavoritesMenu();
821833
834+ //新規作成メニュー更新
835+ m_ListView.InitShellNewMenu();
836+
822837 //画面更新
823838 InvalidateRect(m_hWnd, NULL, FALSE);
824839 }
@@ -851,9 +866,9 @@
851866 //MOD START GORIPON
852867 TCHAR szText[256];
853868 wcscpy(szText, GetStringTable(IDS_MSG_NETFOLDER_YESNO));
854- if(IDNO==MessageBox(m_hWnd, szText, GetStringTable(IDS_TITLE_NETFOLDER), MB_YESNO|MB_ICONQUESTION))
869+ if (IDNO == MessageBox(m_hWnd, szText, GetStringTable(IDS_TITLE_NETFOLDER), MB_YESNO|MB_ICONQUESTION))
870+ return FALSE;
855871 //MOD END
856- return FALSE;
857872 }
858873
859874 //設定
@@ -915,7 +930,7 @@
915930 {
916931 //ネットワーク切断ダイアログ表示
917932 DWORD dwResult;
918- if(0xFFFFFFFF != (dwResult=WNetDisconnectDialog(m_hWnd, 0)))
933+ if(0xFFFFFFFF != (dwResult=WNetDisconnectDialog(m_hWnd, RESOURCETYPE_ANY)))
919934 {
920935 //エラー時
921936 if(dwResult != ERROR_SUCCESS)
@@ -938,23 +953,25 @@
938953 }
939954 }
940955 //ADD END
956+//DEL START GORIPON
957+/////////////////////////////////////////////////////////////////
958+//void CMainWnd::OnToolPclink()
959+//{
960+// SHELLEXECUTEINFO sei;
961+// ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); //ADD GORIPON
962+// sei.cbSize = sizeof(SHELLEXECUTEINFO);
963+// sei.fMask = 0;
964+// sei.hwnd = m_hWnd;
965+// sei.lpVerb = _T("open");
966+// sei.lpFile = _T("repllog.exe");
967+// sei.lpParameters = NULL;
968+// sei.lpDirectory = m_szWindowsPath;
969+// sei.nShow = SW_SHOW;
970+// sei.hInstApp = g_hInst;
971+// ShellExecuteEx(&sei);
972+//}
973+//DEL END
941974 ///////////////////////////////////////////////////////////////
942-void CMainWnd::OnToolPclink()
943-{
944- SHELLEXECUTEINFO sei;
945- ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); //ADD GORIPON
946- sei.cbSize = sizeof(SHELLEXECUTEINFO);
947- sei.fMask = 0;
948- sei.hwnd = m_hWnd;
949- sei.lpVerb = _T("open");
950- sei.lpFile = _T("repllog.exe");
951- sei.lpParameters = NULL;
952- sei.lpDirectory = m_szWindowsPath;
953- sei.nShow = SW_SHOW;
954- sei.hInstApp = g_hInst;
955- ShellExecuteEx(&sei);
956-}
957-///////////////////////////////////////////////////////////////
958975 void CMainWnd::OnToolActivesync()
959976 {
960977 SHELLEXECUTEINFO sei;
@@ -1018,8 +1035,10 @@
10181035 if (nActive == WA_INACTIVE) {
10191036 m_hwndPrev = GetFocus();
10201037 m_dwLastSipInfo = GetIMStatus();
1021- SaveInputMode(); //ADD GORIPON
1022- SetInputMode(m_dwInitialInputMode); //ADD GORIPON
1038+//ADD START GORIPON
1039+ SaveInputMode();
1040+ SetInputMode(m_dwInitialInputMode);
1041+//ADD END
10231042 }
10241043 else if (nActive == WA_ACTIVE) {
10251044 SetFocus(m_hwndPrev);
@@ -1028,8 +1047,10 @@
10281047 //if (m_dwLastSipInfo != dwStatus)
10291048 //DEL END
10301049 RecalcLayout();
1031- m_dwInitialInputMode = GetInputMode(); //ADD GORIPON
1032- RestoreInputMode(); //ADD GORIPON
1050+//ADD START GORIPON
1051+ m_dwInitialInputMode = GetInputMode();
1052+ RestoreInputMode();
1053+//ADD END
10331054 }
10341055 }
10351056 ///////////////////////////////////////////////////////////////
@@ -1314,17 +1335,19 @@
13141335 ///////////////////////////////////////////////////////////////
13151336 void CMainWnd::OnSetFocus(HWND hWnd)
13161337 {
1317- static HWND hfcsWnd = 0;
1338+ //static HWND hfcsWnd = 0; //DEL GORIPON
13181339
13191340 //フォーカスウィンドウが変わった場合のみ
13201341 // if(hWnd != hfcsWnd) {
13211342 if (hWnd == m_TreeView.m_hWnd)
13221343 m_TreeView.OnSetFocus();
1323- else
1344+ else if (hWnd == m_ListView.m_hWnd) //MOD GORIPON
13241345 m_ListView.OnSetFocus();
13251346
1326- //新しいハンドルを保存
1327- hfcsWnd = hWnd;
1347+//DEL START GORIPON
1348+ ////新しいハンドルを保存
1349+ //hfcsWnd = hWnd;
1350+//DEL END
13281351 // }
13291352 }
13301353
@@ -1440,6 +1463,7 @@
14401463 }
14411464 //ADD END
14421465 //ADD START GORIPON
1466+
14431467 ///////////////////////////////////////////////////////////////
14441468 void CMainWnd::SetInputMode(int Mode)
14451469 {
@@ -1453,6 +1477,7 @@
14531477 RegCloseKey(hKeyPs);
14541478 }
14551479 }
1480+
14561481 ///////////////////////////////////////////////////////////////
14571482 DWORD CMainWnd::GetInputMode()
14581483 {
@@ -1470,11 +1495,13 @@
14701495 }
14711496 return INPUTMODE_HAN_NUMERIC; //ERROR
14721497 }
1498+
14731499 ///////////////////////////////////////////////////////////////
14741500 void CMainWnd::SaveInputMode()
14751501 {
14761502 m_dwInputMode = GetInputMode();
14771503 }
1504+
14781505 ///////////////////////////////////////////////////////////////
14791506 void CMainWnd::RestoreInputMode()
14801507 {
Show on old repository browser