Nikolay Sivov : include: Add print document package interfaces.

Alexandre Julliard julliard at winehq.org
Fri Dec 3 15:19:00 CST 2021


Module: wine
Branch: master
Commit: f3977dc886e723487d2d35908663b31d3fc54139
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f3977dc886e723487d2d35908663b31d3fc54139

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Dec  3 17:13:15 2021 +0300

include: Add print document package interfaces.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/Makefile.in        |   1 +
 include/documenttarget.idl | 113 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+)

diff --git a/include/Makefile.in b/include/Makefile.in
index a869ae4bc73..c99b0e1e1c1 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -245,6 +245,7 @@ SOURCES = \
 	dmusics.h \
 	docobj.idl \
 	docobjectservice.idl \
+	documenttarget.idl \
 	downloadmgr.idl \
 	dpaddr.h \
 	dpfilter.h \
diff --git a/include/documenttarget.idl b/include/documenttarget.idl
new file mode 100644
index 00000000000..17c7cefe5b5
--- /dev/null
+++ b/include/documenttarget.idl
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2021 Nikolay Sivov for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "oaidl.idl";
+
+[
+    object,
+    uuid(1b8efec4-3019-4c27-964e-367202156906),
+]
+interface IPrintDocumentPackageTarget : IUnknown
+{
+    HRESULT GetPackageTargetTypes(
+        [out] UINT32 *targetCount,
+        [out, size_is(, *targetCount)] GUID **targetTypes
+    );
+
+    HRESULT GetPackageTarget(
+        [in] REFGUID guidTargetType,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppvTarget
+    );
+
+    HRESULT Cancel();
+}
+
+typedef [v1_enum] enum PrintDocumentPackageCompletion
+{
+    PrintDocumentPackageCompletion_InProgress,
+    PrintDocumentPackageCompletion_Completed,
+    PrintDocumentPackageCompletion_Canceled,
+    PrintDocumentPackageCompletion_Failed
+} PrintDocumentPackageCompletion;
+
+typedef struct
+{
+    UINT32 JobId;
+    INT32 CurrentDocument;
+    INT32 CurrentPage;
+    INT32 CurrentPageTotal;
+    PrintDocumentPackageCompletion Completion;
+    HRESULT PackageStatus;
+} PrintDocumentPackageStatus;
+
+[
+    object,
+    dual,
+    nonextensible,
+    uuid(ed90c8ad-5c34-4d05-a1ec-0e8a9b3ad7af),
+]
+interface IPrintDocumentPackageStatusEvent : IDispatch
+{
+    [id(1)]
+    HRESULT PackageStatusUpdated(
+        [in] PrintDocumentPackageStatus *packageStatus
+    );
+}
+
+[
+    object,
+    uuid(d2959bf7-b31b-4a3d-9600-712eb1335ba4),
+]
+interface IPrintDocumentPackageTargetFactory : IUnknown
+{
+    HRESULT CreateDocumentPackageTargetForPrintJob(
+        [in, string] LPCWSTR printerName,
+        [in, string] LPCWSTR jobName,
+        [in] IStream *jobOutputStream,
+        [in] IStream *jobPrintTicketStream,
+        [out] IPrintDocumentPackageTarget **docPackageTarget
+    );
+}
+
+[
+    version(1.0),
+    uuid(410d76f7-8bb5-4a7d-9d37-9c71b1b14d14),
+]
+library PrintDocumentTargetLib
+{
+
+[
+    noncreatable,
+    uuid(4842669e-9947-46ea-8ba2-d8cce432c2ca),
+]
+coclass PrintDocumentPackageTarget
+{
+    [default] interface IPrintDocumentPackageTarget;
+    [source] dispinterface IPrintDocumentPackageStatusEvent;
+}
+
+[
+    uuid(348ef17d-6c81-4982-92b4-ee188a43867a)
+]
+coclass PrintDocumentPackageTargetFactory
+{
+    [default] interface IPrintDocumentPackageTargetFactory;
+}
+
+} /* library */




More information about the wine-cvs mailing list