commdlg: Makes return value of FILEDLG95_SendFileOK dependent of
return value, not of DWL_MSGRESULT.
This commit is contained in:
parent
1be185f76e
commit
324b11f206
|
@ -228,7 +228,7 @@ static void *MemAlloc(UINT size);
|
||||||
static void MemFree(void *mem);
|
static void MemFree(void *mem);
|
||||||
|
|
||||||
INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
void SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode);
|
LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode);
|
||||||
static INT_PTR FILEDLG95_HandleCustomDialogMessages(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
static INT_PTR FILEDLG95_HandleCustomDialogMessages(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
static BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCount, UINT sizeUsed);
|
static BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCount, UINT sizeUsed);
|
||||||
static BOOL BrowseSelectedFolder(HWND hwnd);
|
static BOOL BrowseSelectedFolder(HWND hwnd);
|
||||||
|
@ -811,13 +811,15 @@ static HWND CreateTemplateDialog(FileOpenDlgInfos *fodInfos, HWND hwnd)
|
||||||
* Send CustomDialogNotification (CDN_FIRST -- CDN_LAST) message to the custom template dialog
|
* Send CustomDialogNotification (CDN_FIRST -- CDN_LAST) message to the custom template dialog
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
|
LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
|
||||||
{
|
{
|
||||||
|
LRESULT hook_result = 0;
|
||||||
|
|
||||||
FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwndParentDlg,FileOpenDlgInfosStr);
|
FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwndParentDlg,FileOpenDlgInfosStr);
|
||||||
|
|
||||||
TRACE("%p 0x%04x\n",hwndParentDlg, uCode);
|
TRACE("%p 0x%04x\n",hwndParentDlg, uCode);
|
||||||
|
|
||||||
if(!fodInfos) return;
|
if(!fodInfos) return 0;
|
||||||
|
|
||||||
if(fodInfos->DlgInfos.hwndCustomDlg)
|
if(fodInfos->DlgInfos.hwndCustomDlg)
|
||||||
{
|
{
|
||||||
|
@ -830,7 +832,7 @@ void SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
|
||||||
ofnNotify.hdr.code = uCode;
|
ofnNotify.hdr.code = uCode;
|
||||||
ofnNotify.lpOFN = fodInfos->ofnInfos;
|
ofnNotify.lpOFN = fodInfos->ofnInfos;
|
||||||
ofnNotify.pszFile = NULL;
|
ofnNotify.pszFile = NULL;
|
||||||
SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
|
hook_result = SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -840,10 +842,12 @@ void SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
|
||||||
ofnNotify.hdr.code = uCode;
|
ofnNotify.hdr.code = uCode;
|
||||||
ofnNotify.lpOFN = (LPOPENFILENAMEA)fodInfos->ofnInfos;
|
ofnNotify.lpOFN = (LPOPENFILENAMEA)fodInfos->ofnInfos;
|
||||||
ofnNotify.pszFile = NULL;
|
ofnNotify.pszFile = NULL;
|
||||||
SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
|
hook_result = SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
|
||||||
}
|
}
|
||||||
TRACE("RET NOTIFY\n");
|
TRACE("RET NOTIFY\n");
|
||||||
}
|
}
|
||||||
|
TRACE("Retval: 0x%08lx\n", hook_result);
|
||||||
|
return hook_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer)
|
static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer)
|
||||||
|
@ -1593,22 +1597,24 @@ static BOOL FILEDLG95_SendFileOK( HWND hwnd, FileOpenDlgInfos *fodInfos )
|
||||||
/* ask the hook if we can close */
|
/* ask the hook if we can close */
|
||||||
if(IsHooked(fodInfos))
|
if(IsHooked(fodInfos))
|
||||||
{
|
{
|
||||||
|
LRESULT retval;
|
||||||
|
|
||||||
TRACE("---\n");
|
TRACE("---\n");
|
||||||
/* First send CDN_FILEOK as MSDN doc says */
|
/* First send CDN_FILEOK as MSDN doc says */
|
||||||
SendCustomDlgNotificationMessage(hwnd,CDN_FILEOK);
|
retval = SendCustomDlgNotificationMessage(hwnd,CDN_FILEOK);
|
||||||
if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT))
|
if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT))
|
||||||
{
|
{
|
||||||
TRACE("canceled\n");
|
TRACE("canceled\n");
|
||||||
return FALSE;
|
return (retval == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fodInfos->ofnInfos points to an ASCII or UNICODE structure as appropriate */
|
/* fodInfos->ofnInfos points to an ASCII or UNICODE structure as appropriate */
|
||||||
SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,
|
retval = SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,
|
||||||
fodInfos->HookMsg.fileokstring, 0, (LPARAM)fodInfos->ofnInfos);
|
fodInfos->HookMsg.fileokstring, 0, (LPARAM)fodInfos->ofnInfos);
|
||||||
if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT))
|
if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT))
|
||||||
{
|
{
|
||||||
TRACE("canceled\n");
|
TRACE("canceled\n");
|
||||||
return FALSE;
|
return (retval == 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -88,7 +88,7 @@ extern LPITEMIDLIST GetParentPidl(LPITEMIDLIST pidl);
|
||||||
extern LPITEMIDLIST GetPidlFromName(IShellFolder *psf,LPCSTR lpcstrFileName);
|
extern LPITEMIDLIST GetPidlFromName(IShellFolder *psf,LPCSTR lpcstrFileName);
|
||||||
|
|
||||||
extern int FILEDLG95_LOOKIN_SelectItem(HWND hwnd,LPITEMIDLIST pidl);
|
extern int FILEDLG95_LOOKIN_SelectItem(HWND hwnd,LPITEMIDLIST pidl);
|
||||||
extern void SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode);
|
extern LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue