comdlg32: Use unicode Win32 APIs when possible.

This commit is contained in:
Dmitry Timoshkov 2007-03-07 21:18:40 +08:00 committed by Alexandre Julliard
parent 1c2a717b59
commit afd6f64a02

View file

@ -64,7 +64,6 @@
#include "winreg.h"
#include "winternl.h"
#include "winnls.h"
#include "wine/unicode.h"
#include "wingdi.h"
#include "winuser.h"
#include "winreg.h"
@ -72,7 +71,6 @@
#include "dlgs.h"
#include "cdlg.h"
#include "filedlg31.h"
#include "wine/debug.h"
#include "cderr.h"
#include "shellapi.h"
#include "shlguid.h"
@ -80,6 +78,9 @@
#include "filedlgbrowser.h"
#include "shlwapi.h"
#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#define UNIMPLEMENTED_FLAGS \
@ -140,40 +141,38 @@ typedef struct tagFD32_PRIVATE
/* Combo box macros */
#define CBAddString(hwnd,str) \
SendMessageA(hwnd,CB_ADDSTRING,0,(LPARAM)str);
#define CBAddStringW(hwnd,str) \
SendMessageW(hwnd,CB_ADDSTRING,0,(LPARAM)str);
SendMessageW(hwnd, CB_ADDSTRING, 0, (LPARAM)(str));
#define CBInsertString(hwnd,str,pos) \
SendMessageA(hwnd,CB_INSERTSTRING,(WPARAM)pos,(LPARAM)str);
SendMessageW(hwnd, CB_INSERTSTRING, (WPARAM)(pos), (LPARAM)(str));
#define CBDeleteString(hwnd,pos) \
SendMessageA(hwnd,CB_DELETESTRING,(WPARAM)pos,0);
SendMessageW(hwnd, CB_DELETESTRING, (WPARAM)(pos), 0);
#define CBSetItemDataPtr(hwnd,iItemId,dataPtr) \
SendMessageA(hwnd,CB_SETITEMDATA,(WPARAM)iItemId,(LPARAM)dataPtr);
SendMessageW(hwnd, CB_SETITEMDATA, (WPARAM)(iItemId), (LPARAM)(dataPtr));
#define CBGetItemDataPtr(hwnd,iItemId) \
SendMessageA(hwnd,CB_GETITEMDATA,(WPARAM)iItemId,0)
SendMessageW(hwnd, CB_GETITEMDATA, (WPARAM)(iItemId), 0)
#define CBGetLBText(hwnd,iItemId,str) \
SendMessageA(hwnd,CB_GETLBTEXT,(WPARAM)iItemId,(LPARAM)str);
SendMessageW(hwnd, CB_GETLBTEXT, (WPARAM)(iItemId), (LPARAM)(str));
#define CBGetCurSel(hwnd) \
SendMessageA(hwnd,CB_GETCURSEL,0,0);
SendMessageW(hwnd, CB_GETCURSEL, 0, 0);
#define CBSetCurSel(hwnd,pos) \
SendMessageA(hwnd,CB_SETCURSEL,(WPARAM)pos,0);
SendMessageW(hwnd, CB_SETCURSEL, (WPARAM)(pos), 0);
#define CBGetCount(hwnd) \
SendMessageA(hwnd,CB_GETCOUNT,0,0);
SendMessageW(hwnd, CB_GETCOUNT, 0, 0);
#define CBShowDropDown(hwnd,show) \
SendMessageA(hwnd,CB_SHOWDROPDOWN,(WPARAM)show,0);
SendMessageW(hwnd, CB_SHOWDROPDOWN, (WPARAM)(show), 0);
#define CBSetItemHeight(hwnd,index,height) \
SendMessageA(hwnd,CB_SETITEMHEIGHT,(WPARAM)index,(LPARAM)height);
SendMessageW(hwnd, CB_SETITEMHEIGHT, (WPARAM)(index), (LPARAM)(height));
#define CBSetExtendedUI(hwnd,flag) \
SendMessageA(hwnd,CB_SETEXTENDEDUI,(WPARAM)(flag),0)
SendMessageW(hwnd, CB_SETEXTENDEDUI, (WPARAM)(flag), 0)
const char FileOpenDlgInfosStr[] = "FileOpenDlgInfos"; /* windows property description string */
static const char LookInInfosStr[] = "LookInInfos"; /* LOOKIN combo box property */
@ -478,7 +477,7 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
if(ofn->lpstrInitialDir)
{
/* fodInfos.initdir = strdupW(ofn->lpstrInitialDir); */
DWORD len = strlenW(ofn->lpstrInitialDir)+1;
DWORD len = lstrlenW(ofn->lpstrInitialDir)+1;
fodInfos.initdir = MemAlloc(len*sizeof(WCHAR));
memcpy(fodInfos.initdir,ofn->lpstrInitialDir,len*sizeof(WCHAR));
}
@ -877,10 +876,10 @@ static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer
if( fodInfos->unicode )
{
LPWSTR bufW = buffer;
total = strlenW(lpstrCurrentDir) + 1 + sizeUsed;
total = lstrlenW(lpstrCurrentDir) + 1 + sizeUsed;
/* Prepend the current path */
n = strlenW(lpstrCurrentDir) + 1;
n = lstrlenW(lpstrCurrentDir) + 1;
memcpy( bufW, lpstrCurrentDir, min(n,size) * sizeof(WCHAR));
if(n<size)
{
@ -974,7 +973,7 @@ static INT_PTR FILEDLG95_HandleCustomDialogMessages(HWND hwnd, UINT uMsg, WPARAM
WideCharToMultiByte(CP_ACP, 0, lpstrPath, -1,
(LPSTR)lParam, (int)wParam, NULL, NULL);
}
retval = strlenW(lpstrPath);
retval = lstrlenW(lpstrPath);
break;
case CDM_GETSPEC:
@ -1254,13 +1253,13 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
if (result) {
/* nameBit is always shorter than the original filename */
strcpyW(fodInfos->filename,nameBit);
lstrcpyW(fodInfos->filename,nameBit);
*nameBit = 0x00;
if (fodInfos->initdir == NULL)
MemFree(fodInfos->initdir);
fodInfos->initdir = MemAlloc((strlenW(tmpBuf) + 1)*sizeof(WCHAR));
strcpyW(fodInfos->initdir, tmpBuf);
fodInfos->initdir = MemAlloc((lstrlenW(tmpBuf) + 1)*sizeof(WCHAR));
lstrcpyW(fodInfos->initdir, tmpBuf);
handledPath = TRUE;
TRACE("Value in Filename includes path, overriding InitialDir: %s, %s\n",
debugstr_w(fodInfos->filename), debugstr_w(fodInfos->initdir));
@ -1284,22 +1283,22 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
WCHAR *nameBit;
DWORD result;
strcpyW(tmpBuf, fodInfos->initdir);
lstrcpyW(tmpBuf, fodInfos->initdir);
if( PathFileExistsW(tmpBuf) ) {
/* initdir does not have to be a directory. If a file is
* specified, the dir part is taken */
if( PathIsDirectoryW(tmpBuf)) {
if (tmpBuf[strlenW(tmpBuf)-1] != '\\') {
strcatW(tmpBuf, szwSlash);
if (tmpBuf[lstrlenW(tmpBuf)-1] != '\\') {
lstrcatW(tmpBuf, szwSlash);
}
strcatW(tmpBuf, szwStar);
lstrcatW(tmpBuf, szwStar);
}
result = GetFullPathNameW(tmpBuf, MAX_PATH, tmpBuf2, &nameBit);
if (result) {
*nameBit = 0x00;
MemFree(fodInfos->initdir);
fodInfos->initdir = MemAlloc((strlenW(tmpBuf2) + 1)*sizeof(WCHAR));
strcpyW(fodInfos->initdir, tmpBuf2);
fodInfos->initdir = MemAlloc((lstrlenW(tmpBuf2) + 1)*sizeof(WCHAR));
lstrcpyW(fodInfos->initdir, tmpBuf2);
handledPath = TRUE;
TRACE("Value in InitDir changed to %s\n", debugstr_w(fodInfos->initdir));
}
@ -1330,13 +1329,13 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
int len;
/* nameBit is always shorter than the original filename */
strcpyW(fodInfos->filename, nameBit);
lstrcpyW(fodInfos->filename, nameBit);
*nameBit = 0x00;
len = strlenW(tmpBuf);
len = lstrlenW(tmpBuf);
MemFree(fodInfos->initdir);
fodInfos->initdir = MemAlloc((len+1)*sizeof(WCHAR));
strcpyW(fodInfos->initdir, tmpBuf);
lstrcpyW(fodInfos->initdir, tmpBuf);
handledPath = TRUE;
TRACE("Value in Filename includes path, overriding initdir: %s, %s\n",
@ -1361,7 +1360,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
/* Skip the title */
if(! *lpstrPos) break; /* end */
lpstrPos += strlenW(lpstrPos) + 1;
lpstrPos += lstrlenW(lpstrPos) + 1;
/* See if any files exist in the current dir with this extension */
if(! *lpstrPos) break; /* end */
@ -1370,7 +1369,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
if (hFind == INVALID_HANDLE_VALUE) {
/* None found - continue search */
lpstrPos += strlenW(lpstrPos) + 1;
lpstrPos += lstrlenW(lpstrPos) + 1;
} else {
searchMore = FALSE;
@ -1686,23 +1685,23 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
LoadStringW(COMDLG32_hInstance, IDS_FILENOTFOUND, lpstrNotFound, 100);
LoadStringW(COMDLG32_hInstance, IDS_VERIFYFILE, lpstrMsg, 100);
strcpyW(tmp, lpstrTemp);
strcatW(tmp, nl);
strcatW(tmp, lpstrNotFound);
strcatW(tmp, nl);
strcatW(tmp, lpstrMsg);
lstrcpyW(tmp, lpstrTemp);
lstrcatW(tmp, nl);
lstrcatW(tmp, lpstrNotFound);
lstrcatW(tmp, nl);
lstrcatW(tmp, lpstrMsg);
MessageBoxW(hwnd, tmp, fodInfos->title, MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
/* move to the next file in the list of files */
lpstrTemp += strlenW(lpstrTemp) + 1;
lpstrTemp += lstrlenW(lpstrTemp) + 1;
COMDLG32_SHFree(pidl);
}
}
nSizePath = strlenW(lpstrPathSpec) + 1;
nSizePath = lstrlenW(lpstrPathSpec) + 1;
if ( !(fodInfos->ofnInfos->Flags & OFN_EXPLORER) )
{
/* For "oldstyle" dialog the components have to
@ -1713,7 +1712,7 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
if(fodInfos->unicode)
{
LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
strcpyW( ofn->lpstrFile, lpstrPathSpec);
lstrcpyW( ofn->lpstrFile, lpstrPathSpec);
memcpy( ofn->lpstrFile + nSizePath, lpstrFileList, sizeUsed*sizeof(WCHAR) );
}
else
@ -1820,20 +1819,20 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* if the user specifyed a fully qualified path use it */
if(PathIsRelativeW(lpstrFileList))
{
strcatW(lpstrPathAndFile, lpstrFileList);
lstrcatW(lpstrPathAndFile, lpstrFileList);
}
else
{
/* does the path have a drive letter? */
if (PathGetDriveNumberW(lpstrFileList) == -1)
strcpyW(lpstrPathAndFile+2, lpstrFileList);
lstrcpyW(lpstrPathAndFile+2, lpstrFileList);
else
strcpyW(lpstrPathAndFile, lpstrFileList);
lstrcpyW(lpstrPathAndFile, lpstrFileList);
}
/* resolve "." and ".." */
PathCanonicalizeW(lpstrTemp, lpstrPathAndFile );
strcpyW(lpstrPathAndFile, lpstrTemp);
lstrcpyW(lpstrPathAndFile, lpstrTemp);
TRACE("canon=%s\n", debugstr_w(lpstrPathAndFile));
MemFree(lpstrFileList);
@ -1880,13 +1879,13 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
DWORD dwEaten, dwAttributes;
LPWSTR p;
strcpyW(lpwstrTemp, lpszTemp);
lstrcpyW(lpwstrTemp, lpszTemp);
p = PathFindNextComponentW(lpwstrTemp);
if (!p) break; /* end of path */
*p = 0;
lpszTemp = lpszTemp + strlenW(lpwstrTemp);
lpszTemp = lpszTemp + lstrlenW(lpwstrTemp);
/* There are no wildcards when OFN_NOVALIDATE is set */
if(*lpszTemp==0 && !(fodInfos->ofnInfos->Flags & OFN_NOVALIDATE))
@ -1991,9 +1990,9 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* replace the current filter */
MemFree((LPVOID)fodInfos->ShellInfos.lpstrCurrentFilter);
len = strlenW(lpszTemp)+1;
len = lstrlenW(lpszTemp)+1;
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc(len * sizeof(WCHAR));
strcpyW( fodInfos->ShellInfos.lpstrCurrentFilter, lpszTemp);
lstrcpyW( fodInfos->ShellInfos.lpstrCurrentFilter, lpszTemp);
/* set the filter cb to the extension when possible */
if(-1 < (iPos = FILEDLG95_FILETYPE_SearchExt(fodInfos->DlgInfos.hwndFileTypeCB, lpszTemp)))
@ -2047,10 +2046,10 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
WCHAR *filterExt = NULL;
LPWSTR lpstrFilter = NULL;
static const WCHAR szwDot[] = {'.',0};
int PathLength = strlenW(lpstrPathAndFile);
int PathLength = lstrlenW(lpstrPathAndFile);
/* Attach the dot*/
strcatW(lpstrPathAndFile, szwDot);
lstrcatW(lpstrPathAndFile, szwDot);
/*Get the file extension from file type filter*/
lpstrFilter = (LPWSTR) CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB,
@ -2060,9 +2059,9 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
filterExt = PathFindExtensionW(lpstrFilter);
if ( filterExt && *filterExt ) /* attach the file extension from file type filter*/
strcatW(lpstrPathAndFile, filterExt + 1);
lstrcatW(lpstrPathAndFile, filterExt + 1);
else if ( fodInfos->defext ) /* attach the default file extension*/
strcatW(lpstrPathAndFile, fodInfos->defext);
lstrcatW(lpstrPathAndFile, fodInfos->defext);
/* In Open dialog: if file does not exist try without extension */
if (!(fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG) && !PathFileExistsW(lpstrPathAndFile))
@ -2100,7 +2099,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* Check that the size of the file does not exceed buffer size.
(Allow for extra \0 if OFN_MULTISELECT is set.) */
if(strlenW(lpstrPathAndFile) < fodInfos->ofnInfos->nMaxFile -
if(lstrlenW(lpstrPathAndFile) < fodInfos->ofnInfos->nMaxFile -
((fodInfos->ofnInfos->Flags & OFN_ALLOWMULTISELECT) ? 1 : 0))
{
LPWSTR lpszTemp;
@ -2179,7 +2178,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
{
WORD size;
size = strlenW(lpstrPathAndFile) + 1;
size = lstrlenW(lpstrPathAndFile) + 1;
if (fodInfos->ofnInfos->Flags & OFN_ALLOWMULTISELECT)
size += 1;
/* return needed size in first two bytes of lpstrFile */
@ -2349,15 +2348,15 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd)
LPCWSTR lpstrPos = fodInfos->customfilter;
/* Get the title */
lpstrPos += strlenW(fodInfos->customfilter) + 1;
lpstrPos += lstrlenW(fodInfos->customfilter) + 1;
/* Copy the extensions */
if (! *lpstrPos) return E_FAIL; /* malformed filter */
if (!(lpstrExt = MemAlloc((strlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL;
strcpyW(lpstrExt,lpstrPos);
if (!(lpstrExt = MemAlloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL;
lstrcpyW(lpstrExt,lpstrPos);
/* Add the item at the end of the combo */
CBAddStringW(fodInfos->DlgInfos.hwndFileTypeCB, fodInfos->customfilter);
CBAddString(fodInfos->DlgInfos.hwndFileTypeCB, fodInfos->customfilter);
CBSetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB, nFilters, lpstrExt);
nFilters++;
}
@ -2377,16 +2376,16 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd)
/* Get the title */
if(! *lpstrPos) break; /* end */
lpstrDisplay = lpstrPos;
lpstrPos += strlenW(lpstrPos) + 1;
lpstrPos += lstrlenW(lpstrPos) + 1;
CBAddStringW(fodInfos->DlgInfos.hwndFileTypeCB, lpstrDisplay);
CBAddString(fodInfos->DlgInfos.hwndFileTypeCB, lpstrDisplay);
nFilters++;
/* Copy the extensions */
if (!(lpstrExt = MemAlloc((strlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL;
strcpyW(lpstrExt,lpstrPos);
lpstrPos += strlenW(lpstrPos) + 1;
if (!(lpstrExt = MemAlloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL;
lstrcpyW(lpstrExt,lpstrPos);
lpstrPos += lstrlenW(lpstrPos) + 1;
/* Add the item at the end of the combo */
CBSetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB, nFilters-1, lpstrExt);
@ -2432,9 +2431,9 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd)
{
DWORD len;
CharLowerW(lpstrFilter); /* lowercase */
len = strlenW(lpstrFilter)+1;
len = lstrlenW(lpstrFilter)+1;
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) );
strcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter);
lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter);
}
} else
fodInfos->ofnInfos->nFilterIndex = 0;
@ -2473,9 +2472,9 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode)
{
DWORD len;
CharLowerW(lpstrFilter); /* lowercase */
len = strlenW(lpstrFilter)+1;
len = lstrlenW(lpstrFilter)+1;
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) );
strcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter);
lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter);
SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE);
}
@ -2646,10 +2645,10 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
COLORREF crText = GetSysColor(COLOR_WINDOWTEXT);
RECT rectText;
RECT rectIcon;
SHFILEINFOA sfi;
SHFILEINFOW sfi;
HIMAGELIST ilItemImage;
int iIndentation;
TEXTMETRICA tm;
TEXTMETRICW tm;
LPSFOLDER tmpFolder;
@ -2667,20 +2666,20 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
if(pDIStruct->itemID == liInfos->uSelectedItem)
{
ilItemImage = (HIMAGELIST) SHGetFileInfoA ((LPCSTR) tmpFolder->pidlItem,
ilItemImage = (HIMAGELIST) SHGetFileInfoW ((LPCWSTR) tmpFolder->pidlItem,
0,
&sfi,
sizeof (SHFILEINFOA),
sizeof (sfi),
SHGFI_PIDL | SHGFI_SMALLICON |
SHGFI_OPENICON | SHGFI_SYSICONINDEX |
SHGFI_DISPLAYNAME );
}
else
{
ilItemImage = (HIMAGELIST) SHGetFileInfoA ((LPCSTR) tmpFolder->pidlItem,
ilItemImage = (HIMAGELIST) SHGetFileInfoW ((LPCWSTR) tmpFolder->pidlItem,
0,
&sfi,
sizeof (SHFILEINFOA),
sizeof (sfi),
SHGFI_PIDL | SHGFI_SMALLICON |
SHGFI_SYSICONINDEX |
SHGFI_DISPLAYNAME);
@ -2704,10 +2703,10 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
if(pDIStruct->itemState & ODS_COMBOBOXEDIT)
{
iIndentation = 0;
ilItemImage = (HIMAGELIST) SHGetFileInfoA ((LPCSTR) tmpFolder->pidlItem,
ilItemImage = (HIMAGELIST) SHGetFileInfoW ((LPCWSTR) tmpFolder->pidlItem,
0,
&sfi,
sizeof (SHFILEINFOA),
sizeof (sfi),
SHGFI_PIDL | SHGFI_SMALLICON | SHGFI_OPENICON
| SHGFI_SYSICONINDEX | SHGFI_DISPLAYNAME );
@ -2725,7 +2724,7 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
rectIcon.bottom = pDIStruct->rcItem.bottom;
/* Initialise the text display area */
GetTextMetricsA(pDIStruct->hDC, &tm);
GetTextMetricsW(pDIStruct->hDC, &tm);
rectText.left = rectIcon.right;
rectText.top =
(pDIStruct->rcItem.top + pDIStruct->rcItem.bottom - tm.tmHeight) / 2;
@ -2743,7 +2742,7 @@ static LRESULT FILEDLG95_LOOKIN_DrawItem(LPDRAWITEMSTRUCT pDIStruct)
/* Draw the associated text */
if(sfi.szDisplayName)
TextOutA(pDIStruct->hDC,rectText.left,rectText.top,sfi.szDisplayName,strlen(sfi.szDisplayName));
TextOutW(pDIStruct->hDC,rectText.left,rectText.top,sfi.szDisplayName,lstrlenW(sfi.szDisplayName));
return NOERROR;
@ -2798,7 +2797,7 @@ static BOOL FILEDLG95_LOOKIN_OnCommand(HWND hwnd, WORD wNotifyCode)
static int FILEDLG95_LOOKIN_AddItem(HWND hwnd,LPITEMIDLIST pidl, int iInsertId)
{
LPITEMIDLIST pidlNext;
SHFILEINFOA sfi;
SHFILEINFOW sfi;
SFOLDER *tmpFolder;
LookInInfos *liInfos;
@ -2826,20 +2825,20 @@ static int FILEDLG95_LOOKIN_AddItem(HWND hwnd,LPITEMIDLIST pidl, int iInsertId)
liInfos->iMaxIndentation = tmpFolder->m_iIndent;
sfi.dwAttributes = SFGAO_FILESYSANCESTOR | SFGAO_FILESYSTEM;
SHGetFileInfoA((LPSTR)pidl,
SHGetFileInfoW((LPCWSTR)pidl,
0,
&sfi,
sizeof(sfi),
SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX
| SHGFI_PIDL | SHGFI_SMALLICON | SHGFI_ATTRIBUTES | SHGFI_ATTR_SPECIFIED);
TRACE("-- Add %s attr=%08x\n", sfi.szDisplayName, sfi.dwAttributes);
TRACE("-- Add %s attr=%08x\n", debugstr_w(sfi.szDisplayName), sfi.dwAttributes);
if((sfi.dwAttributes & SFGAO_FILESYSANCESTOR) || (sfi.dwAttributes & SFGAO_FILESYSTEM))
{
int iItemID;
TRACE("-- Add %s at %u\n", sfi.szDisplayName, tmpFolder->m_iIndent);
TRACE("-- Add %s at %u\n", debugstr_w(sfi.szDisplayName), tmpFolder->m_iIndent);
/* Add the item at the end of the list */
if(iInsertId < 0)
@ -3192,8 +3191,8 @@ static int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, U
/* single, unquoted string */
if ((nStrLen > 0) && (*sizeUsed == 0) )
{
strcpyW(*lpstrFileList, lpstrEdit);
nFileIndex = strlenW(lpstrEdit) + 1;
lstrcpyW(*lpstrFileList, lpstrEdit);
nFileIndex = lstrlenW(lpstrEdit) + 1;
(*sizeUsed) = nFileIndex;
nFileCount = 1;
}
@ -3959,7 +3958,7 @@ short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, WORD cbBuf)
if(lpFile == NULL || lpTitle == NULL)
return -1;
len = strlenW(lpFile);
len = lstrlenW(lpFile);
if (len == 0)
return -1;
@ -3986,10 +3985,10 @@ short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, WORD cbBuf)
TRACE("---> %s\n", debugstr_w(&lpFile[i]));
len = strlenW(lpFile+i)+1;
len = lstrlenW(lpFile+i)+1;
if(cbBuf < len)
return len;
strcpyW(lpTitle, &lpFile[i]);
lstrcpyW(lpTitle, &lpFile[i]);
return 0;
}