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