mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
Sync to Wine-20041201
Mike McCormack <mike@codeweavers.com> - CFM_GETSPEC always returns a space-separated list. - Fix ofn.nFileOffset when multiple files are selected. svn path=/trunk/; revision=11960
This commit is contained in:
parent
1d2d1a4b45
commit
cc46c6f887
3 changed files with 16 additions and 14 deletions
|
@ -841,7 +841,7 @@ HRESULT FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer)
|
||||||
|
|
||||||
/* get path and filenames */
|
/* get path and filenames */
|
||||||
SHGetPathFromIDListW(fodInfos->ShellInfos.pidlAbsCurrent,lpstrCurrentDir);
|
SHGetPathFromIDListW(fodInfos->ShellInfos.pidlAbsCurrent,lpstrCurrentDir);
|
||||||
n = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed);
|
n = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, ' ');
|
||||||
|
|
||||||
TRACE("path >%s< filespec >%s< %d files\n",
|
TRACE("path >%s< filespec >%s< %d files\n",
|
||||||
debugstr_w(lpstrCurrentDir),debugstr_w(lpstrFileList),n);
|
debugstr_w(lpstrCurrentDir),debugstr_w(lpstrFileList),n);
|
||||||
|
@ -897,7 +897,7 @@ HRESULT FILEDLG95_Handle_GetFileSpec(HWND hwnd, DWORD size, LPVOID buffer)
|
||||||
|
|
||||||
TRACE("CDM_GETSPEC:\n");
|
TRACE("CDM_GETSPEC:\n");
|
||||||
|
|
||||||
FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed);
|
FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, ' ');
|
||||||
if( fodInfos->unicode )
|
if( fodInfos->unicode )
|
||||||
{
|
{
|
||||||
LPWSTR bufW = buffer;
|
LPWSTR bufW = buffer;
|
||||||
|
@ -1650,7 +1650,7 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
|
||||||
|
|
||||||
if (ofn->lpstrFile != NULL)
|
if (ofn->lpstrFile != NULL)
|
||||||
{
|
{
|
||||||
WideCharToMultiByte(CP_ACP, 0, lpstrPathSpec, -1,
|
nSizePath = WideCharToMultiByte(CP_ACP, 0, lpstrPathSpec, -1,
|
||||||
ofn->lpstrFile, ofn->nMaxFile, NULL, NULL);
|
ofn->lpstrFile, ofn->nMaxFile, NULL, NULL);
|
||||||
if (ofn->nMaxFile > nSizePath)
|
if (ofn->nMaxFile > nSizePath)
|
||||||
{
|
{
|
||||||
|
@ -1661,7 +1661,7 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fodInfos->ofnInfos->nFileOffset = nSizePath + 1;
|
fodInfos->ofnInfos->nFileOffset = nSizePath;
|
||||||
fodInfos->ofnInfos->nFileExtension = 0;
|
fodInfos->ofnInfos->nFileExtension = 0;
|
||||||
|
|
||||||
if ( !FILEDLG95_SendFileOK(hwnd, fodInfos) )
|
if ( !FILEDLG95_SendFileOK(hwnd, fodInfos) )
|
||||||
|
@ -1709,7 +1709,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
|
||||||
TRACE("hwnd=%p\n", hwnd);
|
TRACE("hwnd=%p\n", hwnd);
|
||||||
|
|
||||||
/* get the files from the edit control */
|
/* get the files from the edit control */
|
||||||
nFileCount = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed);
|
nFileCount = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, '\0');
|
||||||
|
|
||||||
/* try if the user selected a folder in the shellview */
|
/* try if the user selected a folder in the shellview */
|
||||||
if(nFileCount == 0)
|
if(nFileCount == 0)
|
||||||
|
@ -3029,9 +3029,11 @@ static HRESULT COMDLG32_StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPI
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* FILEDLG95_FILENAME_GetFileNames
|
* FILEDLG95_FILENAME_GetFileNames
|
||||||
*
|
*
|
||||||
* copies the filenames to a 0-delimited string list (A\0B\0C\0\0)
|
* Copies the filenames to a delimited string list.
|
||||||
|
* The delimiter is specified by the parameter 'separator',
|
||||||
|
* usually either a space or a nul
|
||||||
*/
|
*/
|
||||||
int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed)
|
int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed, char separator)
|
||||||
{
|
{
|
||||||
FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
|
FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
|
||||||
UINT nStrCharCount = 0; /* index in src buffer */
|
UINT nStrCharCount = 0; /* index in src buffer */
|
||||||
|
@ -3054,7 +3056,7 @@ int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * s
|
||||||
*lpstrFileList = MemAlloc( (nStrLen+2)*sizeof(WCHAR) );
|
*lpstrFileList = MemAlloc( (nStrLen+2)*sizeof(WCHAR) );
|
||||||
*sizeUsed = 0;
|
*sizeUsed = 0;
|
||||||
|
|
||||||
/* build 0-delimited file list from filenames */
|
/* build delimited file list from filenames */
|
||||||
while ( nStrCharCount <= nStrLen )
|
while ( nStrCharCount <= nStrLen )
|
||||||
{
|
{
|
||||||
if ( lpstrEdit[nStrCharCount]=='"' )
|
if ( lpstrEdit[nStrCharCount]=='"' )
|
||||||
|
@ -3066,7 +3068,7 @@ int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * s
|
||||||
(*sizeUsed)++;
|
(*sizeUsed)++;
|
||||||
nStrCharCount++;
|
nStrCharCount++;
|
||||||
}
|
}
|
||||||
(*lpstrFileList)[nFileIndex++] = '\0';
|
(*lpstrFileList)[nFileIndex++] = separator;
|
||||||
(*sizeUsed)++;
|
(*sizeUsed)++;
|
||||||
nFileCount++;
|
nFileCount++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,6 +161,6 @@ BOOL IsPidlFolder (LPSHELLFOLDER psf, LPCITEMIDLIST pidl);
|
||||||
|
|
||||||
/* Functions used by the EDIT box */
|
/* Functions used by the EDIT box */
|
||||||
void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
|
void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
|
||||||
int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed);
|
int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed, char separator);
|
||||||
|
|
||||||
#endif /*SHBROWSER_H*/
|
#endif /*SHBROWSER_H*/
|
||||||
|
|
|
@ -1746,7 +1746,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* PrintDlgProcA [internal]
|
* PrintDlgProcA [internal]
|
||||||
*/
|
*/
|
||||||
INT_PTR CALLBACK PrintDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
|
static INT_PTR CALLBACK PrintDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
PRINT_PTRA* PrintStructures;
|
PRINT_PTRA* PrintStructures;
|
||||||
|
@ -1790,7 +1790,7 @@ INT_PTR CALLBACK PrintDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
INT_PTR CALLBACK PrintDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
|
static INT_PTR CALLBACK PrintDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
static const WCHAR propW[] = {'_','_','W','I','N','E','_','P','R','I','N','T','D','L','G','D','A','T','A',0};
|
static const WCHAR propW[] = {'_','_','W','I','N','E','_','P','R','I','N','T','D','L','G','D','A','T','A',0};
|
||||||
|
|
Loading…
Reference in a new issue