[1/3] include: Add COM interface definitions needed for PrintDlgEx implementation.

Vincent Povirk madewokherd at gmail.com
Tue Apr 9 10:07:46 CDT 2013


>> And why bother checking UNICODE?
>
> Please clarify.

+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
+};

This is very strange. Normally, you'd have two different interfaces
for something like this: IPrintDialogServicesA and
IPrintDialogServicesW.

Does PrintDlgEx really use an interface with the same iid but
different function signatures depending on whether the A or W version
is called? If so, I think it would be best to define both versions, so
that our tests and implementation can easily provide/use both.



More information about the wine-devel mailing list