/* Chose Color PRIVATE Structure:\r
*\r
* This structure is duplicated in the 16 bit code with\r
- * a extra member\r
+ * an extra member\r
*/\r
\r
typedef struct CCPRIVATE\r
/* Chose Color PRIVATE Structure:\r
*\r
* This is a duplicate of the 32bit code with\r
- * a extra member\r
+ * an extra member\r
*/\r
typedef struct CCPRIVATE\r
{\r
if(ofn->lpstrFile)\r
{\r
fodInfos.filename = MemAlloc(ofn->nMaxFile*sizeof(WCHAR));\r
- strncpyW(fodInfos.filename,ofn->lpstrFile,ofn->nMaxFile);\r
+ lstrcpynW(fodInfos.filename,ofn->lpstrFile,ofn->nMaxFile);\r
}\r
else\r
fodInfos.filename = NULL;\r
\r
if(ofn->lpstrInitialDir)\r
{\r
- DWORD len = strlenW(ofn->lpstrInitialDir);\r
- fodInfos.initdir = MemAlloc((len+1)*sizeof(WCHAR));\r
- strcpyW(fodInfos.initdir,ofn->lpstrInitialDir);\r
+ /* fodInfos.initdir = strdupW(ofn->lpstrInitialDir); */\r
+ DWORD len = strlenW(ofn->lpstrInitialDir)+1;\r
+ fodInfos.initdir = MemAlloc(len*sizeof(WCHAR));\r
+ memcpy(fodInfos.initdir,ofn->lpstrInitialDir,len*sizeof(WCHAR));\r
}\r
else\r
fodInfos.initdir = NULL;\r
\r
/* Prepend the current path */\r
n = strlenW(lpstrCurrentDir) + 1;\r
- strncpyW( bufW, lpstrCurrentDir, size );\r
+ memcpy( bufW, lpstrCurrentDir, min(n,size) * sizeof(WCHAR));\r
if(n<size)\r
{\r
/* 'n' includes trailing \0 */\r
{\r
LPOPENFILENAMEW ofn = fodInfos->ofnInfos;\r
\r
- strncpyW(ofn->lpstrFile, lpstrPathAndFile, ofn->nMaxFile);\r
+ lstrcpynW(ofn->lpstrFile, lpstrPathAndFile, ofn->nMaxFile);\r
if (ofn->Flags & OFN_ALLOWMULTISELECT)\r
ofn->lpstrFile[lstrlenW(ofn->lpstrFile) + 1] = '\0';\r
}\r
if(fodInfos->unicode)\r
{\r
LPOPENFILENAMEW ofn = fodInfos->ofnInfos;\r
- strncpyW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);\r
+ lstrcpynW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);\r
}\r
else\r
{\r
/***********************************************************************\r
* FILEDLG95_FILETYPE_SearchExt\r
*\r
- * searches for a extension in the filetype box\r
+ * searches for an extension in the filetype box\r
*/\r
static int FILEDLG95_FILETYPE_SearchExt(HWND hwnd,LPCWSTR lpstrExt)\r
{\r
\r
/* allocate the buffer */\r
if (nFiles <= 1) nLength = MAX_PATH;\r
- lpstrAllFile = (LPSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nLength);\r
+ lpstrAllFile = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nLength);\r
lpstrAllFile[0] = '\0';\r
\r
/* Generate the string for the edit control */\r
* Helper functions\r
*/\r
\r
+#define add_flag(a) if (flags & a) {strcat(str, #a );strcat(str," ");}\r
+static void COMDLG32_DumpSBSPFlags(UINT uflags)\r
+{\r
+ if (TRACE_ON(commdlg))\r
+ {\r
+ unsigned int i;\r
+ static const struct {\r
+ DWORD mask;\r
+ const char *name;\r
+ } flags[] = {\r
+#define FE(x) { x, #x}\r
+ /* SBSP_DEFBROWSER == 0 */\r
+ FE(SBSP_SAMEBROWSER),\r
+ FE(SBSP_NEWBROWSER),\r
+\r
+ /* SBSP_DEFMODE == 0 */\r
+ FE(SBSP_OPENMODE),\r
+ FE(SBSP_EXPLOREMODE),\r
+ FE(SBSP_HELPMODE),\r
+ FE(SBSP_NOTRANSFERHIST),\r
+\r
+ /* SBSP_ABSOLUTE == 0 */\r
+ FE(SBSP_RELATIVE),\r
+ FE(SBSP_PARENT),\r
+ FE(SBSP_NAVIGATEBACK),\r
+ FE(SBSP_NAVIGATEFORWARD),\r
+ FE(SBSP_ALLOW_AUTONAVIGATE),\r
+\r
+ FE(SBSP_NOAUTOSELECT),\r
+ FE(SBSP_WRITENOHISTORY),\r
+\r
+ FE(SBSP_REDIRECT),\r
+ FE(SBSP_INITIATEDBYHLINKFRAME),\r
+ };\r
+#undef FE\r
+ DPRINTF("SBSP Flags: %08x =", uflags);\r
+ for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)\r
+ if (flags[i].mask & uflags)\r
+ DPRINTF("%s ", flags[i].name);\r
+ DPRINTF("\n");\r
+ }\r
+}\r
+\r
static void COMDLG32_UpdateCurrentDir(FileOpenDlgInfos *fodInfos)\r
{\r
char lpstrPath[MAX_PATH];\r
\r
IShellBrowserImpl *This = (IShellBrowserImpl *)iface;\r
\r
- TRACE("(%p)(pidl=%p,flags=0x%08x(%s))\n", This, pidl, wFlags,\r
- (wFlags & SBSP_RELATIVE) ? "SBSP_RELATIVE" :\r
- (wFlags & SBSP_PARENT) ? "SBSP_PARENT" :\r
- (wFlags & SBSP_ABSOLUTE) ? "SBSP_ABSOLUTE" : "SBPS_????");\r
+ TRACE("(%p)(pidl=%p,flags=0x%08x)\n", This, pidl, wFlags);\r
+ COMDLG32_DumpSBSPFlags(wFlags);\r
\r
fodInfos = (FileOpenDlgInfos *) GetPropA(This->hwndOwner,FileOpenDlgInfosStr);\r
\r
\r
fodInfos = (FileOpenDlgInfos *) GetPropA(This->hwndOwner,FileOpenDlgInfosStr);\r
\r
- /* If the selected object is not a folder, send a IDOK command to parent window */\r
+ /* If the selected object is not a folder, send an IDOK command to parent window */\r
if((pidl = GetPidlFromDataObject(fodInfos->Shell.FOIDataObject, 1)))\r
{\r
HRESULT hRes;\r
*/\r
BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)\r
{\r
- char buf[260];\r
- DWORD dwBufLen = sizeof(buf);\r
+ WCHAR buf[260];\r
+ DWORD dwBufLen = sizeof(buf) / sizeof(buf[0]);\r
BOOL res;\r
- if(!GetDefaultPrinterA(buf, &dwBufLen))\r
+ if(!GetDefaultPrinterW(buf, &dwBufLen))\r
return FALSE;\r
- res = OpenPrinterA(buf, hprn, NULL);\r
+ res = OpenPrinterW(buf, hprn, NULL);\r
if (!res)\r
- FIXME("Could not open printer %s?!\n",buf);\r
+ WARN("Could not open printer %s\n", debugstr_w(buf));\r
return res;\r
}\r
\r
goto out;\r
}\r
\r
- Names = (char*)HeapAlloc(GetProcessHeap(),0,NrOfEntries*64);\r
+ Names = HeapAlloc(GetProcessHeap(),0,NrOfEntries*64);\r
if (NrOfEntries != (ret=DeviceCapabilitiesA(devname,portname,DC_PAPERNAMES,Names,dm))) {\r
FIXME("Number of returned vals %d is not %d\n",NrOfEntries,ret);\r
goto out;\r
goto out;\r
}\r
\r
- Names = (WCHAR*)HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*NrOfEntries*64);\r
+ Names = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*NrOfEntries*64);\r
if (NrOfEntries != (ret=DeviceCapabilitiesW(devname,portname,DC_PAPERNAMES,Names,dm))) {\r
FIXME("Number of returned vals %d is not %d\n",NrOfEntries,ret);\r
goto out;\r
FIXME("stub\n");\r
return E_NOTIMPL;\r
}\r
+\r
/***********************************************************************\r
* PrintDlgExW (COMDLG32.@)\r
*/\r
ptr16 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(PRINT_PTRA16));\r
ptr16->lpPrintDlg16 = lppd;\r
PrintStructures = &ptr16->print32;\r
- PrintStructures->lpPrintDlg = (LPPRINTDLGA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PRINTDLGA));\r
+ PrintStructures->lpPrintDlg = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PRINTDLGA));\r
#define CVAL(x) PrintStructures->lpPrintDlg->x = lppd->x;\r
#define MVAL(x) PrintStructures->lpPrintDlg->x = MapSL(lppd->x);\r
CVAL(Flags);\r
#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