Commit abadf9a3 authored by Ricardo Filipe's avatar Ricardo Filipe Committed by Alexandre Julliard

commdlg: Implemented notifications are only sent with OFN_EXPLORER flag set.

parent 4c29105c
...@@ -1160,9 +1160,12 @@ INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l ...@@ -1160,9 +1160,12 @@ INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER); 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER);
} }
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
{
SendCustomDlgNotificationMessage(hwnd,CDN_INITDONE); SendCustomDlgNotificationMessage(hwnd,CDN_INITDONE);
SendCustomDlgNotificationMessage(hwnd,CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd,CDN_FOLDERCHANGE);
SendCustomDlgNotificationMessage(hwnd,CDN_SELCHANGE); SendCustomDlgNotificationMessage(hwnd,CDN_SELCHANGE);
}
return 0; return 0;
} }
case WM_SIZE: case WM_SIZE:
...@@ -1749,10 +1752,11 @@ static BOOL FILEDLG95_SendFileOK( HWND hwnd, FileOpenDlgInfos *fodInfos ) ...@@ -1749,10 +1752,11 @@ 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; LRESULT retval = 0;
TRACE("---\n"); TRACE("---\n");
/* First send CDN_FILEOK as MSDN doc says */ /* First send CDN_FILEOK as MSDN doc says */
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
retval = SendCustomDlgNotificationMessage(hwnd,CDN_FILEOK); retval = SendCustomDlgNotificationMessage(hwnd,CDN_FILEOK);
if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT)) if (GetWindowLongPtrW(fodInfos->DlgInfos.hwndCustomDlg, DWLP_MSGRESULT))
{ {
...@@ -2148,7 +2152,8 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) ...@@ -2148,7 +2152,8 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
IPersistFolder2_Release(ppf2); IPersistFolder2_Release(ppf2);
if( ! COMDLG32_PIDL_ILIsEqual(pidlCurrent, fodInfos->ShellInfos.pidlAbsCurrent)) if( ! COMDLG32_PIDL_ILIsEqual(pidlCurrent, fodInfos->ShellInfos.pidlAbsCurrent))
{ {
if (SUCCEEDED(IShellBrowser_BrowseObject(fodInfos->Shell.FOIShellBrowser, pidlCurrent, SBSP_ABSOLUTE))) if (SUCCEEDED(IShellBrowser_BrowseObject(fodInfos->Shell.FOIShellBrowser, pidlCurrent, SBSP_ABSOLUTE))
&& fodInfos->ofnInfos->Flags & OFN_EXPLORER)
{ {
SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE);
} }
...@@ -2451,6 +2456,7 @@ static BOOL FILEDLG95_SHELL_UpFolder(HWND hwnd) ...@@ -2451,6 +2456,7 @@ static BOOL FILEDLG95_SHELL_UpFolder(HWND hwnd)
NULL, NULL,
SBSP_PARENT))) SBSP_PARENT)))
{ {
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE);
return TRUE; return TRUE;
} }
...@@ -2473,6 +2479,7 @@ static BOOL FILEDLG95_SHELL_BrowseToDesktop(HWND hwnd) ...@@ -2473,6 +2479,7 @@ static BOOL FILEDLG95_SHELL_BrowseToDesktop(HWND hwnd)
SHGetSpecialFolderLocation(0,CSIDL_DESKTOP,&pidl); SHGetSpecialFolderLocation(0,CSIDL_DESKTOP,&pidl);
hres = IShellBrowser_BrowseObject(fodInfos->Shell.FOIShellBrowser, pidl, SBSP_ABSOLUTE); hres = IShellBrowser_BrowseObject(fodInfos->Shell.FOIShellBrowser, pidl, SBSP_ABSOLUTE);
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE);
COMDLG32_SHFree(pidl); COMDLG32_SHFree(pidl);
return SUCCEEDED(hres); return SUCCEEDED(hres);
...@@ -2651,6 +2658,7 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode) ...@@ -2651,6 +2658,7 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode)
len = lstrlenW(lpstrFilter)+1; len = lstrlenW(lpstrFilter)+1;
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) ); fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) );
lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter); lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter);
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE); SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE);
} }
...@@ -2955,6 +2963,7 @@ static BOOL FILEDLG95_LOOKIN_OnCommand(HWND hwnd, WORD wNotifyCode) ...@@ -2955,6 +2963,7 @@ static BOOL FILEDLG95_LOOKIN_OnCommand(HWND hwnd, WORD wNotifyCode)
tmpFolder->pidlItem, tmpFolder->pidlItem,
SBSP_ABSOLUTE))) SBSP_ABSOLUTE)))
{ {
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd, CDN_FOLDERCHANGE);
return TRUE; return TRUE;
} }
...@@ -3629,6 +3638,7 @@ static BOOL BrowseSelectedFolder(HWND hwnd) ...@@ -3629,6 +3638,7 @@ static BOOL BrowseSelectedFolder(HWND hwnd)
MessageBoxW( hwnd, notexist, fodInfos->title, MB_OK | MB_ICONEXCLAMATION ); MessageBoxW( hwnd, notexist, fodInfos->title, MB_OK | MB_ICONEXCLAMATION );
} }
bBrowseSelFolder = TRUE; bBrowseSelFolder = TRUE;
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(hwnd,CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(hwnd,CDN_FOLDERCHANGE);
} }
COMDLG32_SHFree( pidlSelection ); COMDLG32_SHFree( pidlSelection );
......
...@@ -785,6 +785,7 @@ static HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDl ...@@ -785,6 +785,7 @@ static HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDl
if (ulAttr & (SFGAO_FOLDER | SFGAO_HASSUBFOLDER) ) if (ulAttr & (SFGAO_FOLDER | SFGAO_HASSUBFOLDER) )
{ {
hRes = IShellBrowser_BrowseObject((IShellBrowser *)This,pidl,SBSP_RELATIVE); hRes = IShellBrowser_BrowseObject((IShellBrowser *)This,pidl,SBSP_RELATIVE);
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(This->hwndOwner, CDN_FOLDERCHANGE); SendCustomDlgNotificationMessage(This->hwndOwner, CDN_FOLDERCHANGE);
} }
else else
...@@ -960,6 +961,7 @@ static HRESULT IShellBrowserImpl_ICommDlgBrowser_OnSelChange(ICommDlgBrowser *if ...@@ -960,6 +961,7 @@ static HRESULT IShellBrowserImpl_ICommDlgBrowser_OnSelChange(ICommDlgBrowser *if
FILEDLG95_FILENAME_FillFromSelection(This->hwndOwner); FILEDLG95_FILENAME_FillFromSelection(This->hwndOwner);
if(fodInfos->ofnInfos->Flags & OFN_EXPLORER)
SendCustomDlgNotificationMessage(This->hwndOwner, CDN_SELCHANGE); SendCustomDlgNotificationMessage(This->hwndOwner, CDN_SELCHANGE);
return S_OK; return S_OK;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment