[PATCH] comdlg32: Dump parameter in PrintDlg

Detlef Riekenberg wine.dev at web.de
Fri Nov 9 16:38:41 CST 2007


---
 dlls/comdlg32/printdlg.c |   85 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 61 insertions(+), 24 deletions(-)

diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 39ac750..517aedc 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -76,6 +76,31 @@ static WNDPROC lpfnStaticWndProc;
 /* the text of the fake document to render for the Page Setup dialog */
 static WCHAR wszFakeDocumentText[1024];
 
+static const CHAR flags2string_sep[] = "|";
+
+/***********************************************************************
+ * flags_to_string [internal]
+ *
+ */
+void flags_to_string(DWORD flags, const struct pd_flags * table, LPSTR str)
+{
+    LPSTR   ptr = NULL;
+
+    str[0] = 0;
+    for( ; table->name; table++)
+    {
+        if (flags & table->flag)
+        {
+            lstrcpyA(str, table->name);
+            str += lstrlenA(str);
+            ptr = str;
+            memcpy(str, flags2string_sep, sizeof(flags2string_sep));
+            str += (sizeof(flags2string_sep)-1);
+        }
+	}
+    if (ptr) ptr[0] = 0;
+}
+
 /***********************************************************************
  *    PRINTDLG_OpenDefaultPrinter
  *
@@ -2009,6 +2034,7 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd)
     LPVOID    ptr;
     HINSTANCE hInst;
 
+    TRACE("(%p)\n", lppd);
     if (!lppd)
     {
         COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION);
@@ -2017,18 +2043,23 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd)
 
     hInst = (HINSTANCE)GetWindowLongPtrA( lppd->hwndOwner, GWLP_HINSTANCE );
     if(TRACE_ON(commdlg)) {
-        char flagstr[1000] = "";
-	const struct pd_flags *pflag = pd_flags;
-	for( ; pflag->name; pflag++) {
-	    if(lppd->Flags & pflag->flag)
-	        strcat(flagstr, pflag->name);
-	}
-	TRACE("(%p): hwndOwner = %p, hDevMode = %p, hDevNames = %p\n"
-              "pp. %d-%d, min p %d, max p %d, copies %d, hinst %p\n"
-              "flags %08x (%s)\n",
-	      lppd, lppd->hwndOwner, lppd->hDevMode, lppd->hDevNames,
-	      lppd->nFromPage, lppd->nToPage, lppd->nMinPage, lppd->nMaxPage,
-	      lppd->nCopies, lppd->hInstance, lppd->Flags, flagstr);
+        char flagstr[1000];
+
+        flags_to_string(lppd->Flags, pd_flags, flagstr);
+        TRACE("hwndOwner = %p, hDevMode = %p, hDevNames = %p\n",
+              lppd->hwndOwner, lppd->hDevMode, lppd->hDevNames);
+        TRACE("flags 0x%x (%s)\n", lppd->Flags, flagstr);
+        TRACE("pages: %d-%d, min %d, max %d, copies %d, hinst %p\n",
+              lppd->nFromPage, lppd->nToPage, lppd->nMinPage, lppd->nMaxPage,
+              lppd->nCopies, lppd->hInstance);
+        TRACE("CustData: 0x%lx, PrintHook: %p, SetupHook: %p\n",
+              lppd->lCustData, lppd->lpfnPrintHook, lppd->lpfnSetupHook);
+        TRACE("PrintTemplateName: %p %s, SetupTemplateName: %p %s\n", lppd->lpPrintTemplateName,
+              (lppd->Flags & PD_ENABLEPRINTTEMPLATE) ? debugstr_a(lppd->lpPrintTemplateName) : "",
+              lppd->lpSetupTemplateName,
+              (lppd->Flags & PD_ENABLESETUPTEMPLATE) ? debugstr_a(lppd->lpSetupTemplateName) : "");
+        TRACE("PrintTemplate: %p, SetupTemplate: %p\n",
+              lppd->hPrintTemplate, lppd->hSetupTemplate);
     }
 
     if(lppd->lStructSize != sizeof(PRINTDLGA)) {
@@ -2159,6 +2190,7 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
     LPVOID    ptr;
     HINSTANCE hInst;
 
+    TRACE("(%p)\n", lppd);
     if (!lppd)
     {
         COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION);
@@ -2167,18 +2199,23 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
 
     hInst = (HINSTANCE)GetWindowLongPtrW( lppd->hwndOwner, GWLP_HINSTANCE );
     if(TRACE_ON(commdlg)) {
-        char flagstr[1000] = "";
-	const struct pd_flags *pflag = pd_flags;
-	for( ; pflag->name; pflag++) {
-	    if(lppd->Flags & pflag->flag)
-	        strcat(flagstr, pflag->name);
-	}
-	TRACE("(%p): hwndOwner = %p, hDevMode = %p, hDevNames = %p\n"
-              "pp. %d-%d, min p %d, max p %d, copies %d, hinst %p\n"
-              "flags %08x (%s)\n",
-	      lppd, lppd->hwndOwner, lppd->hDevMode, lppd->hDevNames,
-	      lppd->nFromPage, lppd->nToPage, lppd->nMinPage, lppd->nMaxPage,
-	      lppd->nCopies, lppd->hInstance, lppd->Flags, flagstr);
+        char flagstr[1000];
+
+        flags_to_string(lppd->Flags, pd_flags, flagstr);
+        TRACE("hwndOwner = %p, hDevMode = %p, hDevNames = %p\n",
+              lppd->hwndOwner, lppd->hDevMode, lppd->hDevNames);
+        TRACE("flags 0x%x (%s)\n", lppd->Flags, flagstr);
+        TRACE("pages: %d-%d, min %d, max %d, copies %d, hinst %p\n",
+              lppd->nFromPage, lppd->nToPage, lppd->nMinPage, lppd->nMaxPage,
+              lppd->nCopies, lppd->hInstance);
+        TRACE("CustData: 0x%lx, PrintHook: %p, SetupHook: %p\n",
+              lppd->lCustData, lppd->lpfnPrintHook, lppd->lpfnSetupHook);
+        TRACE("PrintTemplateName: %p %s, SetupTemplateName: %p %s\n", lppd->lpPrintTemplateName,
+              (lppd->Flags & PD_ENABLEPRINTTEMPLATE) ? debugstr_w(lppd->lpPrintTemplateName) : "",
+              lppd->lpSetupTemplateName,
+              (lppd->Flags & PD_ENABLESETUPTEMPLATE) ? debugstr_w(lppd->lpSetupTemplateName) : "");
+        TRACE("PrintTemplate: %p, SetupTemplate: %p\n",
+              lppd->hPrintTemplate, lppd->hSetupTemplate);
     }
 
     if(lppd->lStructSize != sizeof(PRINTDLGW)) {
-- 
1.4.1


--=-B2RUbIxSp3R0kEz9UOCH--




More information about the wine-patches mailing list