<div dir="ltr">Why not use DECLARE_INTERFACE_ here? And why bother checking UNICODE?<br><div id=":102"></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 8, 2013 at 12:10 PM, Dmitry Timoshkov <span dir="ltr"><<a href="mailto:dmitry@baikal.ru" target="_blank">dmitry@baikal.ru</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
 dlls/uuid/uuid.c  |  1 +<br>
 include/commdlg.h | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++<br>
 2 files changed, 81 insertions(+)<br>
<br>
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c<br>
index fd96fe3..fb06f2d 100644<br>
--- a/dlls/uuid/uuid.c<br>
+++ b/dlls/uuid/uuid.c<br>
@@ -83,6 +83,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);<br>
 #include "sensevts.h"<br>
 #include "ocmm.h"<br>
 #include "commoncontrols.h"<br>
+#include "commdlg.h"<br>
 #include "tlogstg.h"<br>
 #include "msdasc.h"<br>
<br>
diff --git a/include/commdlg.h b/include/commdlg.h<br>
index 1a6e1d9..6eeb615 100644<br>
--- a/include/commdlg.h<br>
+++ b/include/commdlg.h<br>
@@ -762,6 +762,86 @@ typedef struct tagPDEXW<br>
 DECL_WINELIB_TYPE_AW(PRINTDLGEX)<br>
 DECL_WINELIB_TYPE_AW(LPPRINTDLGEX)<br>
<br>
+#ifdef STDMETHOD<br>
+DEFINE_GUID(IID_IPrintDialogCallback, 0x5852a2c3,0x6530,0x11d1,0xb6,0xa3,0x00,0x00,0xf8,0x75,0x7b,0xf9);<br>
+typedef interface IPrintDialogCallback IPrintDialogCallback;<br>
+<br>
+#if defined(__cplusplus) && !defined(CINTERFACE)<br>
+MIDL_INTERFACE("5852a2c3-6530-11d1-b6a3-0000f8757bf9")<br>
+IPrintDialogCallback : public IUnknown<br>
+{<br>
+    virtual HRESULT STDMETHODCALLTYPE InitDone() = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE SelectionChange() = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE HandleMessage(HWND,UINT,WPARAM,LPARAM,LRESULT *) = 0;<br>
+};<br>
+#else<br>
+typedef struct IPrintDialogCallbackVtbl<br>
+{<br>
+    BEGIN_INTERFACE<br>
+<br>
+    /*** IUnknown methods ***/<br>
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(IPrintDialogCallback *This,REFIID riid,void **ppvObject);<br>
+    ULONG (STDMETHODCALLTYPE *AddRef)(IPrintDialogCallback *This);<br>
+    ULONG (STDMETHODCALLTYPE *Release)(IPrintDialogCallback *This);<br>
+    /*** IPrintDialogCallback methods ***/<br>
+    HRESULT (STDMETHODCALLTYPE *InitDone)(IPrintDialogCallback *This);<br>
+    HRESULT (STDMETHODCALLTYPE *SelectionChange)(IPrintDialogCallback *This);<br>
+    HRESULT (STDMETHODCALLTYPE *HandleMessage)(IPrintDialogCallback *,HWND,UINT,WPARAM,LPARAM,LRESULT *);<br>
+<br>
+    END_INTERFACE<br>
+} IPrintDialogCallbackVtbl;<br>
+interface IPrintDialogCallback<br>
+{<br>
+    CONST_VTBL IPrintDialogCallbackVtbl *lpVtbl;<br>
+};<br>
+#endif /* CINTERFACE */<br>
+<br>
+DEFINE_GUID(IID_IPrintDialogServices, 0x509aaeda,0x5639,0x11d1,0xb6,0xa1,0x00,0x00,0xf8,0x75,0x7b,0xf9);<br>
+typedef interface IPrintDialogServices IPrintDialogServices;<br>
+<br>
+#if defined(__cplusplus) && !defined(CINTERFACE)<br>
+MIDL_INTERFACE("509aaeda-5639-11d1-b6a1-0000f8757bf9")<br>
+IPrintDialogServices : public IUnknown<br>
+{<br>
+#ifdef UNICODE<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentDevMode(LPDEVMODEW,UINT *) = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentPrinterName(LPWSTR,UINT *) = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentPortName(LPWSTR,UINT *) = 0;<br>
+#else<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentDevMode(LPDEVMODEA,UINT *) = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentPrinterName(LPSTR,UINT *) = 0;<br>
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentPortName(LPSTR,UINT *) = 0;<br>
+#endif<br>
+};<br>
+#else<br>
+typedef struct IPrintDialogServicesVtbl<br>
+{<br>
+    BEGIN_INTERFACE<br>
+<br>
+    /*** IUnknown methods ***/<br>
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(IPrintDialogServices *This,REFIID riid,void **ppvObject);<br>
+    ULONG (STDMETHODCALLTYPE *AddRef)(IPrintDialogServices *This);<br>
+    ULONG (STDMETHODCALLTYPE *Release)(IPrintDialogServices *This);<br>
+    /*** IPrintDialogServices methods ***/<br>
+#ifdef UNICODE<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentDevMode)(IPrintDialogServices *,LPDEVMODEW *,UINT *);<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPrinterName)(IPrintDialogServices *,LPWSTR,UINT *);<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPortName)(IPrintDialogServices *,LPWSTR,UINT *);<br>
+#else<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentDevMode)(IPrintDialogServices *,LPDEVMODEA *,UINT *);<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPrinterName)(IPrintDialogServices *,LPSTR,UINT *);<br>
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPortName)(IPrintDialogServices *,LPSTR,UINT *);<br>
+#endif<br>
+<br>
+    END_INTERFACE<br>
+} IPrintDialogServicesVtbl;<br>
+interface IPrintDialogServices<br>
+{<br>
+    CONST_VTBL IPrintDialogServicesVtbl *lpVtbl;<br>
+};<br>
+#endif /* CINTERFACE */<br>
+#endif /* STDMETHOD */<br>
+<br>
 BOOL  WINAPI ChooseColorA(LPCHOOSECOLORA lpChCol);<br>
 BOOL  WINAPI ChooseColorW(LPCHOOSECOLORW lpChCol);<br>
 #define ChooseColor WINELIB_NAME_AW(ChooseColor)<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.2<br>
<br>
<br>
<br>
</font></span></blockquote></div><br></div>