• R/O
  • SSH
  • HTTPS

alterdnd: Commit


Commit MetaInfo

Revision43 (tree)
Zeit2015-08-19 12:34:43
Autorsh-u

Log Message

開発環境を Visual Studio 2015 に変更
AlterDnDの有効/無効を切り替えるメニューを追加

Ändern Zusammenfassung

Diff

Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
--- trunk/AlterDnD/AlterDnD.cpp (revision 42)
+++ trunk/AlterDnD/AlterDnD.cpp (revision 43)
@@ -193,7 +193,10 @@
193193 mii.fState = (targets & DNDTARGET_DESKTOP) ? MFS_CHECKED : MFS_UNCHECKED;
194194 SetMenuItemInfo(hPopupMenu, IDM_DND_DESKTOP, FALSE, &mii);
195195
196-
196+
197+ mii.fState = IsAlterDnDEnabled() ? MFS_CHECKED : MFS_UNCHECKED;
198+ SetMenuItemInfo(hPopupMenu, IDM_ENABLE_ALTERDND, FALSE, &mii);
199+
197200 return 0;
198201 }
199202 break;
@@ -230,6 +233,10 @@
230233 SaveDnDMode();
231234 return 0;
232235
236+ case IDM_ENABLE_ALTERDND:
237+ EnableAlterDnD(!IsAlterDnDEnabled());
238+ return 0;
239+
233240 case IDM_ABOUT:
234241 DialogBoxLocale(MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
235242 return 0;
--- trunk/AlterDnD_DLL/DropTargetWrapper.cpp (revision 42)
+++ trunk/AlterDnD_DLL/DropTargetWrapper.cpp (revision 43)
@@ -165,6 +165,11 @@
165165 if ((grfKeyState & MK_LBUTTON) == 0) {
166166 return m_pTarget->DragEnter(pDataObj, grfKeyState, pt, pdwEffect);
167167 }
168+ // AlterDnDが無効になっている場合は、通常通りの処理を行う。
169+ DP(_T("IsAlterDnDEnabled=%d"), IsAlterDnDEnabled());
170+ if (!IsAlterDnDEnabled()) {
171+ return m_pTarget->DragEnter(pDataObj, grfKeyState, pt, pdwEffect);
172+ }
168173
169174 // ドラッグ&ドロップ中に設定が変更されるとまずいので、開始時に記憶
170175 GetDnDMode(&m_DnDMode, &m_DnDTargets);
--- trunk/AlterDnD_DLL/AlterDnD_DLL.cpp (revision 42)
+++ trunk/AlterDnD_DLL/AlterDnD_DLL.cpp (revision 43)
@@ -29,6 +29,7 @@
2929 #define ALTERDND_CF_APP_NAME _T("Alter Drag & Drop")
3030 #define ALTERDND_CF_MODE _T("Mode")
3131 #define ALTERDND_CF_TARGETS _T("Targets")
32+#define ALTERDND_CF_ENABLED _T("Enabled")
3233
3334 #define ALTERDND_REG_APP_KEY (_T("Software\\") ALTERDND_CF_PROJECT_NAME _T("\\") ALTERDND_CF_APP_NAME)
3435
@@ -41,6 +42,7 @@
4142 #pragma data_seg(".AlterDnD_shared")
4243 HHOOK wndProcHook = NULL;
4344 DWORD gDnDMode = MAKELONG(DNDMODE_NORMAL, DNDTARGET_NONE);
45+BOOL gEnabled = TRUE;
4446 #pragma data_seg()
4547
4648 HINSTANCE hInst;
@@ -85,7 +87,6 @@
8587
8688 IMPORT void UninstallHook()
8789 {
88- SetDnDMode(DNDMODE_NORMAL, DNDTARGET_NONE);
8990 if (wndProcHook != NULL) {
9091 UnhookWindowsHookEx(wndProcHook);
9192 wndProcHook = NULL;
@@ -121,10 +122,12 @@
121122 if (RegOpenKeyEx(HKEY_CURRENT_USER, ALTERDND_REG_APP_KEY, 0, KEY_READ, &appKey) != ERROR_SUCCESS) {
122123 appKey = NULL;
123124 }
125+ BOOL enabled = ReadBool(appKey, ALTERDND_CF_ENABLED, TRUE);
124126 WORD mode = (WORD)ReadDWord(appKey, ALTERDND_CF_MODE, DNDMODE_ANY_KEYDOWN);
125127 WORD targets = (WORD)ReadDWord(appKey, ALTERDND_CF_TARGETS, DNDTARGET_EXPLORER);
126128
127129 SetDnDMode(mode, targets);
130+ EnableAlterDnD(enabled);
128131
129132 if (appKey) {
130133 RegCloseKey(appKey);
@@ -139,10 +142,12 @@
139142 BOOL error = FALSE;
140143 DWORD disp;
141144
145+ BOOL enabled = IsAlterDnDEnabled();
142146 WORD mode, targets;
143147 GetDnDMode(&mode, &targets);
144148
145149 if (RegCreateKeyEx(HKEY_CURRENT_USER, ALTERDND_REG_APP_KEY, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &appKey, &disp) == ERROR_SUCCESS) {
150+ error |= !WriteBool(appKey, ALTERDND_CF_ENABLED, enabled);
146151 error |= !WriteDWord(appKey, ALTERDND_CF_MODE, mode);
147152 error |= !WriteDWord(appKey, ALTERDND_CF_TARGETS, targets);
148153
@@ -165,9 +170,29 @@
165170 IMPORT void SetDnDMode(WORD mode, WORD targets)
166171 {
167172 gDnDMode = MAKELONG(mode, targets);
168- DP(_T("SetDnDMode=%08x"), mode);
173+ DP(_T("SetDnDMode=%08x"), gDnDMode);
169174 }
170175
176+IMPORT void EnableAlterDnD(BOOL enabled)
177+{
178+ if (enabled) {
179+ if (!gEnabled) {
180+ gEnabled = TRUE;
181+ InstallHook();
182+ }
183+ } else {
184+ if (gEnabled) {
185+ gEnabled = FALSE;
186+ UninstallHook();
187+ }
188+ }
189+}
190+
191+IMPORT BOOL IsAlterDnDEnabled()
192+{
193+ return gEnabled;
194+}
195+
171196 IDropTarget* HookDropTarget(HWND hwnd, WORD targetType)
172197 {
173198 //TCHAR buff[32] = { _T('\0') };
--- trunk/AlterDnD_DLL/AlterDnD_DLL.h (revision 42)
+++ trunk/AlterDnD_DLL/AlterDnD_DLL.h (revision 43)
@@ -43,3 +43,5 @@
4343 IMPORT BOOL SaveDnDMode();
4444 IMPORT void GetDnDMode(WORD *mode, WORD *targets);
4545 IMPORT void SetDnDMode(WORD mode, WORD targets);
46+IMPORT void EnableAlterDnD(BOOL enabled);
47+IMPORT BOOL IsAlterDnDEnabled();
Show on old repository browser