summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-06-15 21:35:02 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-06-15 21:35:02 +0000
commitc2025a23b1921c2112298d71c42e1aa741e029f6 (patch)
tree78a30eaa53e524e61ef83d25c600cdd00a2ce962
parent7dff82fea29945f8625ecf3df9f2428dd1ab38d0 (diff)
fix for dropping files into Scriver
git-svn-id: http://svn.miranda-ng.org/main/trunk@4968 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--plugins/Scriver/src/msgdialog.cpp8
-rw-r--r--plugins/Scriver/src/msgs.cpp10
-rw-r--r--plugins/Scriver/src/msgs.h5
3 files changed, 19 insertions, 4 deletions
diff --git a/plugins/Scriver/src/msgdialog.cpp b/plugins/Scriver/src/msgdialog.cpp
index cf769776f9..06124f4f3a 100644
--- a/plugins/Scriver/src/msgdialog.cpp
+++ b/plugins/Scriver/src/msgdialog.cpp
@@ -36,7 +36,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern HCURSOR hCurSplitNS, hCurSplitWE, hCurHyperlinkHand, hDragCursor;
extern HANDLE hHookWinEvt;
extern HANDLE hHookWinPopup;
-extern CREOleCallback reOleCallback, reOleCallback2;
+extern CREOleCallback reOleCallback;
+extern CREOleCallback2 reOleCallback2;
static void UpdateReadChars(HWND hwndDlg, struct SrmmWindowData * dat);
@@ -418,6 +419,7 @@ static LRESULT CALLBACK MessageEditSubclassProc(HWND hwnd, UINT msg, WPARAM wPar
case EM_SUBCLASSED:
dat = (struct MsgEditSubclassData *) mir_alloc(sizeof(struct MsgEditSubclassData));
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR) dat);
+ DragAcceptFiles(hwnd, TRUE);
dat->lastEnterTime = 0;
return 0;
@@ -494,6 +496,7 @@ static LRESULT CALLBACK MessageEditSubclassProc(HWND hwnd, UINT msg, WPARAM wPar
}
static void SubclassMessageEdit(HWND hwnd) {
+ RichUtil_SubClass(hwnd);
mir_subclassWindow(hwnd, MessageEditSubclassProc);
SendMessage(hwnd, EM_SUBCLASSED, 0, 0);
}
@@ -503,6 +506,7 @@ static void UnsubclassMessageEdit(HWND hwnd) {
}
static void SubclassLogEdit(HWND hwnd) {
+ RichUtil_SubClass(hwnd);
mir_subclassWindow(hwnd, LogEditSubclassProc);
SendMessage(hwnd, EM_SUBCLASSED, 0, 0);
}
@@ -858,8 +862,6 @@ INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP
}
/* get around a lame bug in the Windows template resource code where richedits are limited to 0x7FFF */
SendDlgItemMessage(hwndDlg, IDC_LOG, EM_LIMITTEXT, (WPARAM) sizeof(TCHAR) * 0x7FFFFFFF, 0);
- RichUtil_SubClass(GetDlgItem(hwndDlg, IDC_MESSAGE));
- RichUtil_SubClass(GetDlgItem(hwndDlg, IDC_LOG));
SubclassLogEdit(GetDlgItem(hwndDlg, IDC_LOG));
SubclassMessageEdit(GetDlgItem(hwndDlg, IDC_MESSAGE));
dat->infobarData = CreateInfobar(hwndDlg, dat);
diff --git a/plugins/Scriver/src/msgs.cpp b/plugins/Scriver/src/msgs.cpp
index 3e775f2ac6..7acb87ab82 100644
--- a/plugins/Scriver/src/msgs.cpp
+++ b/plugins/Scriver/src/msgs.cpp
@@ -572,7 +572,8 @@ int OnLoadModule(void)
///////////////////////////////////////////////////////////////////////////////////////////////////////
-CREOleCallback reOleCallback, reOleCallback2;
+CREOleCallback reOleCallback;
+CREOleCallback2 reOleCallback2;
STDMETHODIMP CREOleCallback::QueryInterface(REFIID riid, LPVOID * ppvObj)
{
@@ -659,3 +660,10 @@ STDMETHODIMP CREOleCallback::ShowContainerUI(BOOL fShow)
{
return S_OK;
}
+
+STDMETHODIMP CREOleCallback2::QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT * lpcfFormat, DWORD reco, BOOL fReally, HGLOBAL hMetaPict)
+{
+ *lpcfFormat = CF_TEXT;
+ return S_OK;
+}
+
diff --git a/plugins/Scriver/src/msgs.h b/plugins/Scriver/src/msgs.h
index 72d521b69e..f39b3eb115 100644
--- a/plugins/Scriver/src/msgs.h
+++ b/plugins/Scriver/src/msgs.h
@@ -221,6 +221,11 @@ struct CREOleCallback : public IRichEditOleCallback
STDMETHOD(GetContextMenu) (WORD seltype, LPOLEOBJECT lpoleobj, CHARRANGE FAR * lpchrg, HMENU FAR * lphmenu) ;
};
+struct CREOleCallback2 : public CREOleCallback
+{
+ STDMETHOD(QueryAcceptData) (LPDATAOBJECT lpdataobj, CLIPFORMAT FAR * lpcfFormat, DWORD reco, BOOL fReally, HGLOBAL hMetaPict);
+};
+
INT_PTR CALLBACK DlgProcParentWindow(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK ErrorDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);