diff --git a/src/Helpers.c b/src/Helpers.c index 5ecde541c..e8558f4f7 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -2506,352 +2506,4 @@ void Float2String(float fValue, LPWSTR lpszStrg, int cchSize) StringCchPrintf(lpszStrg, cchSize, L"%i", float2int(fValue)); } - -/////////////////////////////////////////////////////////////////////////////// -// -// Drag N Drop helpers -// -/////////////////////////////////////////////////////////////////////////////// - -static HANDLE g_hHeap = NULL; - -typedef struct tIDROPTARGET { - IDropTarget idt; - LONG lRefCount; - ULONG lNumFormats; - CLIPFORMAT *pFormat; - HWND hWnd; - bool bAllowDrop; - DWORD dwKeyState; - IDataObject *pDataObject; - UINT nMsg; - void *pUserData; - DNDCALLBACK pDropProc; -} -IDROPTARGET, *PIDROPTARGET; - - -typedef struct IDRPTRG_VTBL -{ - BEGIN_INTERFACE - HRESULT(STDMETHODCALLTYPE *QueryInterface)(PIDROPTARGET pThis, REFIID riid, void **ppvObject); - ULONG(STDMETHODCALLTYPE *AddRef)(PIDROPTARGET pThis); - ULONG(STDMETHODCALLTYPE *Release)(PIDROPTARGET pThis); - HRESULT(STDMETHODCALLTYPE *DragEnter)(PIDROPTARGET pThis, IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect); - HRESULT(STDMETHODCALLTYPE *DragOver)(PIDROPTARGET pThis, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect); - HRESULT(STDMETHODCALLTYPE *DragLeave)(PIDROPTARGET pThis); - HRESULT(STDMETHODCALLTYPE *Drop)(PIDROPTARGET pThis, IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect); - END_INTERFACE -} -IDRPTRG_VTBL, *PIDRPTRG_VTBL; - - -//============================================================================= -// -// DragAndDropInit() -// -void DragAndDropInit(HANDLE hHeap) -{ - if (g_hHeap == NULL && hHeap == NULL) - g_hHeap = GetProcessHeap(); - else if (g_hHeap == NULL) - g_hHeap = hHeap; - - //OleInitialize(NULL); // just in case -} - - -//============================================================================= -// -// GetDnDHeap() -// -static HANDLE GetDnDHeap() -{ - if (g_hHeap == NULL) { - g_hHeap = GetProcessHeap(); - } - return g_hHeap; -} - - -//============================================================================= -// -// IDRPTRG_AddRef() -// -static ULONG STDMETHODCALLTYPE IDRPTRG_AddRef(PIDROPTARGET pThis) -{ - return InterlockedIncrement(&pThis->lRefCount); -} - - -//============================================================================= -// -// IDRPTRG_QueryDataObject() -// -static bool IDRPTRG_QueryDataObject(PIDROPTARGET pDropTarget, IDataObject *pDataObject) -{ - ULONG lFmt; - FORMATETC fmtetc = { CF_TEXT, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; - - for (lFmt = 0; lFmt < pDropTarget->lNumFormats; lFmt++) - { - fmtetc.cfFormat = pDropTarget->pFormat[lFmt]; - if (pDataObject->lpVtbl->QueryGetData(pDataObject, &fmtetc) == S_OK) - return true; - } - return false; -} - - -//============================================================================= -// -// IDRPTRG_QueryInterface() -// -static HRESULT STDMETHODCALLTYPE IDRPTRG_QueryInterface(PIDROPTARGET pThis, REFIID riid, - LPVOID *ppvObject) -{ - *ppvObject = NULL; - - if (IsEqualGUID(riid, &IID_IUnknown)) - { - IDRPTRG_AddRef(pThis); - *ppvObject = pThis; - return S_OK; - } - if (IsEqualGUID(riid, &IID_IDropTarget)) - { - IDRPTRG_AddRef(pThis); - *ppvObject = pThis; - return S_OK; - } - return E_NOINTERFACE; -} - - -//============================================================================= -// -// IDRPTRG_Release() -// -static ULONG STDMETHODCALLTYPE IDRPTRG_Release(PIDROPTARGET pThis) -{ - ULONG nCount; - - if ((nCount = InterlockedDecrement(&pThis->lRefCount)) == 0) - { - HeapFree(GetDnDHeap(), 0, pThis); - return 0; - } - return nCount; -} - - - -//============================================================================= -// -// IDRPTRG_DropEffect() -// -static DWORD IDRPTRG_DropEffect(DWORD dwKeyState, POINTL pt, DWORD dwAllowed) -{ - DWORD dwEffect = 0; - - if (dwKeyState & MK_CONTROL) - dwEffect = dwAllowed & DROPEFFECT_COPY; - else if (dwKeyState & MK_SHIFT) - dwEffect = dwAllowed & DROPEFFECT_MOVE; - - if (dwEffect == 0) - { - if (dwAllowed & DROPEFFECT_COPY) - dwEffect = DROPEFFECT_COPY; - if (dwAllowed & DROPEFFECT_MOVE) - dwEffect = DROPEFFECT_MOVE; - } - UNUSED(pt); - return dwEffect; -} - - -//============================================================================= -// -// IDRPTRG_DragEnter() -// -static HRESULT STDMETHODCALLTYPE IDRPTRG_DragEnter(PIDROPTARGET pThis, IDataObject *pDataObject, - DWORD dwKeyState, POINTL pt, DWORD *pdwEffect) -{ - pThis->bAllowDrop = IDRPTRG_QueryDataObject(pThis, pDataObject); - if (pThis->bAllowDrop) - { - *pdwEffect = IDRPTRG_DropEffect(dwKeyState, pt, *pdwEffect); - SetFocus(pThis->hWnd); - } - else - *pdwEffect = DROPEFFECT_NONE; - - return S_OK; -} - - -//============================================================================= -// -// IDRPTRG_DragOver() -// -static HRESULT STDMETHODCALLTYPE IDRPTRG_DragOver(PIDROPTARGET pThis, DWORD dwKeyState, POINTL pt, - DWORD *pdwEffect) -{ - if (pThis->bAllowDrop) - { - pThis->dwKeyState = dwKeyState; - - *pdwEffect = IDRPTRG_DropEffect(dwKeyState, pt, *pdwEffect); - } - else - *pdwEffect = DROPEFFECT_NONE; - - return S_OK; -} - - -//============================================================================= -// -// IDRPTRG_DragLeave() -// -static HRESULT STDMETHODCALLTYPE IDRPTRG_DragLeave(PIDROPTARGET pThis) -{ - UNUSED(pThis); - return S_OK; -} - - -//============================================================================= -// -// IDRPTRG_Drop() -// -static HRESULT STDMETHODCALLTYPE IDRPTRG_Drop(PIDROPTARGET pThis, IDataObject *pDataObject, - DWORD dwKeyState, POINTL pt, DWORD *pdwEffect) -{ - FORMATETC fmtetc = { CF_TEXT, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; - STGMEDIUM medium; - DROPDATA DropData; - - UNUSED(dwKeyState); - UNUSED(pt); - - if (pThis->bAllowDrop) - { - ULONG lFmt; - for (lFmt = 0; lFmt < pThis->lNumFormats; lFmt++) - { - fmtetc.cfFormat = pThis->pFormat[lFmt]; - if (pDataObject->lpVtbl->QueryGetData(pDataObject, &fmtetc) == S_OK) - break; - } - if (lFmt < pThis->lNumFormats) - { - pDataObject->lpVtbl->GetData(pDataObject, &fmtetc, &medium); - *pdwEffect = DROPEFFECT_NONE; - if (pThis->pDropProc != NULL) { - *pdwEffect = (*pThis->pDropProc)(pThis->pFormat[lFmt], medium.hGlobal, pThis->hWnd, pThis->dwKeyState, pt, pThis->pUserData); - } - else if (pThis->nMsg != WM_NULL) - { - DropData.cf = pThis->pFormat[lFmt]; - DropData.dwKeyState = pThis->dwKeyState; - DropData.hData = medium.hGlobal; - DropData.pt = pt; - - *pdwEffect = (DWORD)SendMessage(pThis->hWnd, pThis->nMsg, (WPARAM)&DropData, (LPARAM)pThis->pUserData); - } - if (*pdwEffect != DROPEFFECT_NONE) - ReleaseStgMedium(&medium); - } - } - else - *pdwEffect = DROPEFFECT_NONE; - - return S_OK; -} - - -//============================================================================= -// -// CreateDropTarget() -// -IDropTarget* CreateDropTarget(const CLIPFORMAT *pFormat, ULONG lFmt, HWND hWnd, UINT nMsg, - DWORD(*pDropProc)(CLIPFORMAT cf, HGLOBAL hData, HWND hWnd, DWORD dwKeyState, POINTL pt, void *pUserData), - void *pUserData) -{ - PIDROPTARGET pRet; - static IDRPTRG_VTBL idt_vtbl = { - IDRPTRG_QueryInterface, - IDRPTRG_AddRef, - IDRPTRG_Release, - IDRPTRG_DragEnter, - IDRPTRG_DragOver, - IDRPTRG_DragLeave, - IDRPTRG_Drop }; - - if ((pRet = HeapAlloc(GetDnDHeap(), 0, sizeof(IDROPTARGET) + lFmt * sizeof(CLIPFORMAT))) == NULL) - return NULL; - - pRet->pFormat = (CLIPFORMAT *)(((char *)pRet) + sizeof(IDROPTARGET)); - - pRet->idt.lpVtbl = (IDropTargetVtbl*)&idt_vtbl; - pRet->lRefCount = 1; - pRet->hWnd = hWnd; - pRet->nMsg = nMsg; - pRet->bAllowDrop = false; - pRet->dwKeyState = 0; - pRet->lNumFormats = lFmt; - pRet->pDropProc = pDropProc; - pRet->pUserData = pUserData; - - for (lFmt = 0; lFmt < pRet->lNumFormats; lFmt++) { - pRet->pFormat[lFmt] = pFormat[lFmt]; - } - return (IDropTarget *)pRet; -} - - - -//============================================================================= -// -// RegisterDragAndDrop() -// -PDROPTARGET RegisterDragAndDrop(HWND hWnd, CLIPFORMAT *pFormat, ULONG lFmt, UINT nMsg, DNDCALLBACK pDropProc, void *pUserData) -{ - IDropTarget *pTarget; - - if ((pTarget = CreateDropTarget(pFormat, lFmt, hWnd, nMsg, pDropProc, pUserData)) == NULL) - return NULL; - - if (RegisterDragDrop(hWnd, pTarget) != S_OK) - { - HeapFree(GetDnDHeap(), 0, pTarget); - return NULL; - } - - return (PDROPTARGET)pTarget; -} - - -//============================================================================= -// -// RevokeDragAndDrop() -// -PDROPTARGET RevokeDragAndDrop(PDROPTARGET pTarget) -{ - if (pTarget == NULL) - return NULL; - - if (((PIDROPTARGET)pTarget)->hWnd != NULL) - { - if (GetWindowLongPtr(((PIDROPTARGET)pTarget)->hWnd, GWLP_WNDPROC) != 0) - RevokeDragDrop(((PIDROPTARGET)pTarget)->hWnd); - } - - ((IDropTarget *)pTarget)->lpVtbl->Release((IDropTarget *)pTarget); - - return NULL; -} - /// End of Helpers.c /// diff --git a/src/Helpers.h b/src/Helpers.h index 96d5b21eb..f85937d8c 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -571,30 +571,6 @@ inline HRESULT PathCchCanonicalize(PWSTR p,size_t l,PCWSTR a) { UNUSED(l); re inline HRESULT PathCchRenameExtension(PWSTR p,size_t l,PCWSTR a) { UNUSED(l); return (PathRenameExtension(p,a) ? S_OK : E_FAIL); } inline HRESULT PathCchRemoveFileSpec(PWSTR p,size_t l) { UNUSED(l); return (PathRemoveFileSpec(p) ? S_OK : E_FAIL); } -#define _EXTRA_DRAG_N_DROP_HANDLER_ 1 - -#ifdef _EXTRA_DRAG_N_DROP_HANDLER_ - -// special Drag and Drop Handling - -typedef struct tDROPDATA -{ - CLIPFORMAT cf; - POINTL pt; - DWORD dwKeyState; - HGLOBAL hData; -} -DROPDATA, *PDROPDATA; - -typedef struct tDROPTARGET *PDROPTARGET; -typedef DWORD(*DNDCALLBACK)(CLIPFORMAT cf, HGLOBAL hData, HWND hWnd, DWORD dwKeyState, POINTL pt, void *pUserData); - -void DragAndDropInit(HANDLE hHeap); -PDROPTARGET RegisterDragAndDrop(HWND hWnd, CLIPFORMAT *pFormat, ULONG lFmt, UINT nMsg, DNDCALLBACK pDropProc, void *pUserData); -PDROPTARGET RevokeDragAndDrop(PDROPTARGET pTarget); - -#endif - #endif //_NP3_HELPERS_H_ diff --git a/src/Notepad3.c b/src/Notepad3.c index ee4731816..7b57303b0 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -393,14 +393,6 @@ static void _SplitUndoTransaction(const int iModType); static void _DelayClearZoomCallTip(int delay); static void _DelaySplitUndoTransaction(int delay, int iModType); -#ifdef _EXTRA_DRAG_N_DROP_HANDLER_ -static CLIPFORMAT cfDrpF = CF_HDROP; -static POINTL ptDummy = { 0, 0 }; -static PDROPTARGET pDropTarget = NULL; -static DWORD DropFilesProc(CLIPFORMAT cf, HGLOBAL hData, HWND hWnd, DWORD dwKeyState, POINTL pt, void *pUserData); -#endif - - //#define NP3_VIRTUAL_SPACE_ACCESS_OPTIONS (SCVS_RECTANGULARSELECTION | SCVS_NOWRAPLINESTART | SCVS_USERACCESSIBLE) #define NP3_VIRTUAL_SPACE_ACCESS_OPTIONS (SCVS_RECTANGULARSELECTION) @@ -961,10 +953,6 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, } DrawMenuBar(hwnd); -#ifdef _EXTRA_DRAG_N_DROP_HANDLER_ - DragAndDropInit(NULL); -#endif - HACCEL const hAccMain = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_MAINWND)); HACCEL const hAccFindReplace = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_ACCFINDREPLACE)); HACCEL const hAccCoustomizeSchemes = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCCUSTOMSCHEMES)); @@ -2095,9 +2083,6 @@ LRESULT MsgCreate(HWND hwnd, WPARAM wParam,LPARAM lParam) // Drag & Drop DragAcceptFiles(hwnd,true); -#ifdef _EXTRA_DRAG_N_DROP_HANDLER_ - pDropTarget = RegisterDragAndDrop(hwnd, &cfDrpF, 1, WM_NULL, DropFilesProc, (void*)Globals.hwndEdit); -#endif if (Globals.hwndEdit == NULL || s_hwndEditFrame == NULL || Globals.hwndStatus == NULL || Globals.hwndToolbar == NULL || s_hwndReBar == NULL) { @@ -2517,9 +2502,6 @@ LRESULT MsgEndSession(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) InstallFileWatching(NULL); DragAcceptFiles(hwnd, true); -#ifdef _EXTRA_DRAG_N_DROP_HANDLER_ - RevokeDragAndDrop(pDropTarget); -#endif // Terminate clipboard watching if (s_flagPasteBoard) { @@ -2762,10 +2744,6 @@ LRESULT MsgDropFiles(HWND hwnd, WPARAM wParam, LPARAM lParam) } } else { -#ifndef _EXTRA_DRAG_N_DROP_HANDLER_ - // Windows Bug: wParam (HDROP) pointer is corrupted if dropped from 32-bit App - InfoBoxLng(MB_ICONWARNING, NULL, IDS_MUI_DROP_NO_FILE); -#endif // delegated to SCN_URIDROPPED } diff --git a/uchardet/uchardet/src/nsSBCSGroupProber.cpp b/uchardet/uchardet/src/nsSBCSGroupProber.cpp index 71aed6310..746aa5200 100644 --- a/uchardet/uchardet/src/nsSBCSGroupProber.cpp +++ b/uchardet/uchardet/src/nsSBCSGroupProber.cpp @@ -84,7 +84,6 @@ nsSBCSGroupProber::nsSBCSGroupProber() mProbers[j] = nsnull; } } - mProbers[i++] = new nsSingleByteCharSetProber(&Tis_620ThaiModel); mProbers[i++] = new nsSingleByteCharSetProber(&Windows_1252AfricaansModel); mProbers[i++] = new nsSingleByteCharSetProber(&Iso_8859_1AfricaansModel); @@ -208,7 +207,7 @@ nsSBCSGroupProber::nsSBCSGroupProber() mProbers[i++] = new nsSingleByteCharSetProber(&Windows_1258VietnameseModel); - //mProbers[i++] = new nsSingleByteCharSetProber(&Tis_620ThaiModel); + mProbers[i++] = new nsSingleByteCharSetProber(&Tis_620ThaiModel); mProbers[i++] = new nsSingleByteCharSetProber(&Iso_8859_11ThaiModel); mNumOfProbers = i;