Sync to Wine-20050419:
Francois Gouget <fgouget(a)free.fr>
- Assorted spelling fixes.
- SBSP_ABSOLUTE is 0 so we cannot do (wFlags & SBSP_ABSOLUTE).
- Add COMDLG32_DumpSBSPFlags().
Eric Pouech <pouech-eric(a)wanadoo.fr>
- Added proper definition for PRINTDLGEX[AW] structures.
Jakob Eriksson <jakov(a)vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang(a)yahoo.com>
- Change a fixme to a warn, and use W version of call.
Peter Berg Larsen <pebl(a)math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
- Janitorial: Get rid of strncpy/strncpyW.
Modified: trunk/reactos/lib/comdlg32/colordlg.c
Modified: trunk/reactos/lib/comdlg32/colordlg16.c
Modified: trunk/reactos/lib/comdlg32/filedlg.c
Modified: trunk/reactos/lib/comdlg32/filedlgbrowser.c
Modified: trunk/reactos/lib/comdlg32/printdlg.c
Modified: trunk/reactos/lib/comdlg32/printdlg16.c
Modified: trunk/reactos/w32api/include/shlobj.h
_____
Modified: trunk/reactos/lib/comdlg32/colordlg.c
--- trunk/reactos/lib/comdlg32/colordlg.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/colordlg.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -65,7 +65,7 @@
/* Chose Color PRIVATE Structure:
*
* This structure is duplicated in the 16 bit code with
- * a extra member
+ * an extra member
*/
typedef struct CCPRIVATE
_____
Modified: trunk/reactos/lib/comdlg32/colordlg16.c
--- trunk/reactos/lib/comdlg32/colordlg16.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/colordlg16.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -46,7 +46,7 @@
/* Chose Color PRIVATE Structure:
*
* This is a duplicate of the 32bit code with
- * a extra member
+ * an extra member
*/
typedef struct CCPRIVATE
{
_____
Modified: trunk/reactos/lib/comdlg32/filedlg.c
--- trunk/reactos/lib/comdlg32/filedlg.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/filedlg.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -462,16 +462,17 @@
if(ofn->lpstrFile)
{
fodInfos.filename = MemAlloc(ofn->nMaxFile*sizeof(WCHAR));
- strncpyW(fodInfos.filename,ofn->lpstrFile,ofn->nMaxFile);
+ lstrcpynW(fodInfos.filename,ofn->lpstrFile,ofn->nMaxFile);
}
else
fodInfos.filename = NULL;
if(ofn->lpstrInitialDir)
{
- DWORD len = strlenW(ofn->lpstrInitialDir);
- fodInfos.initdir = MemAlloc((len+1)*sizeof(WCHAR));
- strcpyW(fodInfos.initdir,ofn->lpstrInitialDir);
+ /* fodInfos.initdir = strdupW(ofn->lpstrInitialDir); */
+ DWORD len = strlenW(ofn->lpstrInitialDir)+1;
+ fodInfos.initdir = MemAlloc(len*sizeof(WCHAR));
+ memcpy(fodInfos.initdir,ofn->lpstrInitialDir,len*sizeof(WCHAR));
}
else
fodInfos.initdir = NULL;
@@ -853,7 +854,7 @@
/* Prepend the current path */
n = strlenW(lpstrCurrentDir) + 1;
- strncpyW( bufW, lpstrCurrentDir, size );
+ memcpy( bufW, lpstrCurrentDir, min(n,size) * sizeof(WCHAR));
if(n<size)
{
/* 'n' includes trailing \0 */
@@ -2034,7 +2035,7 @@
{
LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
- strncpyW(ofn->lpstrFile, lpstrPathAndFile,
ofn->nMaxFile);
+ lstrcpynW(ofn->lpstrFile, lpstrPathAndFile,
ofn->nMaxFile);
if (ofn->Flags & OFN_ALLOWMULTISELECT)
ofn->lpstrFile[lstrlenW(ofn->lpstrFile) + 1] = '\0';
}
@@ -2064,7 +2065,7 @@
if(fodInfos->unicode)
{
LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
- strncpyW(ofn->lpstrFileTitle, lpstrFileTitle,
ofn->nMaxFileTitle);
+ lstrcpynW(ofn->lpstrFileTitle, lpstrFileTitle,
ofn->nMaxFileTitle);
}
else
{
@@ -2406,7 +2407,7 @@
/***********************************************************************
* FILEDLG95_FILETYPE_SearchExt
*
- * searches for a extension in the filetype box
+ * searches for an extension in the filetype box
*/
static int FILEDLG95_FILETYPE_SearchExt(HWND hwnd,LPCWSTR lpstrExt)
{
@@ -2958,7 +2959,7 @@
/* allocate the buffer */
if (nFiles <= 1) nLength = MAX_PATH;
- lpstrAllFile = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
nLength);
+ lpstrAllFile = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
nLength);
lpstrAllFile[0] = '\0';
/* Generate the string for the edit control */
_____
Modified: trunk/reactos/lib/comdlg32/filedlgbrowser.c
--- trunk/reactos/lib/comdlg32/filedlgbrowser.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/filedlgbrowser.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -95,6 +95,49 @@
* Helper functions
*/
+#define add_flag(a) if (flags & a) {strcat(str, #a );strcat(str," ");}
+static void COMDLG32_DumpSBSPFlags(UINT uflags)
+{
+ if (TRACE_ON(commdlg))
+ {
+ unsigned int i;
+ static const struct {
+ DWORD mask;
+ const char *name;
+ } flags[] = {
+#define FE(x) { x, #x}
+ /* SBSP_DEFBROWSER == 0 */
+ FE(SBSP_SAMEBROWSER),
+ FE(SBSP_NEWBROWSER),
+
+ /* SBSP_DEFMODE == 0 */
+ FE(SBSP_OPENMODE),
+ FE(SBSP_EXPLOREMODE),
+ FE(SBSP_HELPMODE),
+ FE(SBSP_NOTRANSFERHIST),
+
+ /* SBSP_ABSOLUTE == 0 */
+ FE(SBSP_RELATIVE),
+ FE(SBSP_PARENT),
+ FE(SBSP_NAVIGATEBACK),
+ FE(SBSP_NAVIGATEFORWARD),
+ FE(SBSP_ALLOW_AUTONAVIGATE),
+
+ FE(SBSP_NOAUTOSELECT),
+ FE(SBSP_WRITENOHISTORY),
+
+ FE(SBSP_REDIRECT),
+ FE(SBSP_INITIATEDBYHLINKFRAME),
+ };
+#undef FE
+ DPRINTF("SBSP Flags: %08x =", uflags);
+ for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)
+ if (flags[i].mask & uflags)
+ DPRINTF("%s ", flags[i].name);
+ DPRINTF("\n");
+ }
+}
+
static void COMDLG32_UpdateCurrentDir(FileOpenDlgInfos *fodInfos)
{
char lpstrPath[MAX_PATH];
@@ -314,10 +357,8 @@
IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
- TRACE("(%p)(pidl=%p,flags=0x%08x(%s))\n", This, pidl, wFlags,
- (wFlags & SBSP_RELATIVE) ? "SBSP_RELATIVE" :
- (wFlags & SBSP_PARENT) ? "SBSP_PARENT" :
- (wFlags & SBSP_ABSOLUTE) ? "SBSP_ABSOLUTE" : "SBPS_????");
+ TRACE("(%p)(pidl=%p,flags=0x%08x)\n", This, pidl, wFlags);
+ COMDLG32_DumpSBSPFlags(wFlags);
fodInfos = (FileOpenDlgInfos *)
GetPropA(This->hwndOwner,FileOpenDlgInfosStr);
@@ -720,7 +761,7 @@
fodInfos = (FileOpenDlgInfos *)
GetPropA(This->hwndOwner,FileOpenDlgInfosStr);
- /* If the selected object is not a folder, send a IDOK command to
parent window */
+ /* If the selected object is not a folder, send an IDOK command to
parent window */
if((pidl = GetPidlFromDataObject(fodInfos->Shell.FOIDataObject,
1)))
{
HRESULT hRes;
_____
Modified: trunk/reactos/lib/comdlg32/printdlg.c
--- trunk/reactos/lib/comdlg32/printdlg.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/printdlg.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -86,14 +86,14 @@
*/
BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)
{
- char buf[260];
- DWORD dwBufLen = sizeof(buf);
+ WCHAR buf[260];
+ DWORD dwBufLen = sizeof(buf) / sizeof(buf[0]);
BOOL res;
- if(!GetDefaultPrinterA(buf, &dwBufLen))
+ if(!GetDefaultPrinterW(buf, &dwBufLen))
return FALSE;
- res = OpenPrinterA(buf, hprn, NULL);
+ res = OpenPrinterW(buf, hprn, NULL);
if (!res)
- FIXME("Could not open printer %s?!\n",buf);
+ WARN("Could not open printer %s\n", debugstr_w(buf));
return res;
}
@@ -459,7 +459,7 @@
goto out;
}
- Names = (char*)HeapAlloc(GetProcessHeap(),0,NrOfEntries*64);
+ Names = HeapAlloc(GetProcessHeap(),0,NrOfEntries*64);
if (NrOfEntries !=
(ret=DeviceCapabilitiesA(devname,portname,DC_PAPERNAMES,Names,dm))) {
FIXME("Number of returned vals %d is not %d\n",NrOfEntries,ret);
goto out;
@@ -517,7 +517,7 @@
goto out;
}
- Names =
(WCHAR*)HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*NrOfEntries*64);
+ Names = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*NrOfEntries*64);
if (NrOfEntries !=
(ret=DeviceCapabilitiesW(devname,portname,DC_PAPERNAMES,Names,dm))) {
FIXME("Number of returned vals %d is not %d\n",NrOfEntries,ret);
goto out;
@@ -3026,6 +3026,7 @@
FIXME("stub\n");
return E_NOTIMPL;
}
+
/***********************************************************************
* PrintDlgExW (COMDLG32.@)
*/
_____
Modified: trunk/reactos/lib/comdlg32/printdlg16.c
--- trunk/reactos/lib/comdlg32/printdlg16.c 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/lib/comdlg32/printdlg16.c 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -427,7 +427,7 @@
ptr16 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(PRINT_PTRA16));
ptr16->lpPrintDlg16 = lppd;
PrintStructures = &ptr16->print32;
- PrintStructures->lpPrintDlg =
(LPPRINTDLGA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PRINTDLG
A));
+ PrintStructures->lpPrintDlg =
HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PRINTDLGA));
#define CVAL(x) PrintStructures->lpPrintDlg->x = lppd->x;
#define MVAL(x) PrintStructures->lpPrintDlg->x = MapSL(lppd->x);
CVAL(Flags);
_____
Modified: trunk/reactos/w32api/include/shlobj.h
--- trunk/reactos/w32api/include/shlobj.h 2005-04-26 19:06:19 UTC
(rev 14820)
+++ trunk/reactos/w32api/include/shlobj.h 2005-04-26 19:18:13 UTC
(rev 14821)
@@ -315,8 +315,15 @@
#define SBSP_OPENMODE 16
#define SBSP_EXPLOREMODE 32
#define SBSP_ABSOLUTE 0
+#define SBSP_HELPMODE 0x40
+#define SBSP_NOTRANSFERHIST 0x80
#define SBSP_RELATIVE 0x1000
#define SBSP_PARENT 0x2000
+#define SBSP_NAVIGATEBACK 0x4000
+#define SBSP_NAVIGATEFORWARD 0x8000
+#define SBSP_ALLOW_AUTONAVIGATE 0x10000
+#define SBSP_NOAUTOSELECT 0x4000000
+#define SBSP_WRITENOHISTORY 0x8000000
#define SBSP_INITIATEDBYHLINKFRAME 0x80000000
#define SBSP_REDIRECT 0x40000000
#define FCW_STATUS 1