[PATCH] include: Added shimgdata.idl

Nikolay Sivov nsivov at codeweavers.com
Mon Mar 21 03:56:21 CDT 2016


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 include/Makefile.in   |  1 +
 include/shimgdata.idl | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+)
 create mode 100644 include/shimgdata.idl

diff --git a/include/Makefile.in b/include/Makefile.in
index 596c0c9..8283616 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -137,6 +137,7 @@ IDL_SRCS = \
 	servprov.idl \
 	sesprp.idl \
 	shdeprecated.idl \
+	shimgdata.idl \
 	shldisp.idl \
 	shobjidl.idl \
 	shtypes.idl \
diff --git a/include/shimgdata.idl b/include/shimgdata.idl
new file mode 100644
index 0000000..eedc239
--- /dev/null
+++ b/include/shimgdata.idl
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2016 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 "unknwn.idl";
+import "propidl.idl";
+
+cpp_quote("#if !defined(_GDIPLUSPIXELFORMATS_H)")
+typedef DWORD PixelFormat;
+cpp_quote("#endif")
+
+cpp_quote("#if !defined(_GDIPLUSENUMS_H)")
+typedef DWORD InterpolationMode;
+cpp_quote("#endif")
+
+cpp_quote("#if !defined(_GDIPLUSHEADERS_H)")
+typedef BYTE EncoderParameters;
+typedef BYTE Image;
+cpp_quote("#endif")
+
+[
+    object,
+    uuid(53fb8e58-50c0-4003-b4aa-0c8df28e7f3a)
+]
+interface IShellImageDataAbort : IUnknown
+{
+    HRESULT QueryAbort();
+}
+
+[
+    object,
+    local,
+    uuid(bfdeec12-8040-4403-a5ea-9e07dafcf530)
+]
+interface IShellImageData : IUnknown
+{
+    HRESULT Decode([in] DWORD flags, [in] ULONG cx_desired, [in] ULONG cy_desired);
+    HRESULT Draw([in] HDC hdc, [in] RECT *dest, [in] RECT *src);
+    HRESULT NextFrame();
+    HRESULT NextPage();
+    HRESULT PrevPage();
+    HRESULT IsTransparent();
+    HRESULT IsAnimated();
+    HRESULT IsVector();
+    HRESULT IsMultipage();
+    HRESULT IsEditable();
+    HRESULT IsPrintable();
+    HRESULT IsDecoded();
+    HRESULT GetCurrentPage([out] ULONG *page);
+    HRESULT GetPageCount([out] ULONG *count);
+    HRESULT SelectPage([in] ULONG page);
+    HRESULT GetSize([out] SIZE *size);
+    HRESULT GetRawDataFormat([out] GUID *format);
+    HRESULT GetPixelFormat([out] PixelFormat *format);
+    HRESULT GetDelay([out] DWORD *delay);
+    HRESULT GetProperties([in] DWORD mode, [out] IPropertySetStorage **props);
+    HRESULT Rotate([in] DWORD angle);
+    HRESULT Scale([in] ULONG cx, [in] ULONG cy, [in] InterpolationMode mode);
+    HRESULT DiscardEdit();
+    HRESULT SetEncoderParams([in] IPropertyBag *params);
+    HRESULT DisplayName([size_is(count), in, out] LPWSTR name, UINT count);
+    HRESULT GetResolution([out] ULONG *res_x, [out] ULONG *res_y);
+    HRESULT GetEncoderParams([in] GUID *format, [out] EncoderParameters **params);
+    HRESULT RegisterAbort([in] IShellImageDataAbort *abort, [out] IShellImageDataAbort **prev);
+    HRESULT CloneFrame([out] Image **frame);
+    HRESULT ReplaceFrame([in] Image *frame);
+}
+
+[
+    object,
+    uuid(9be8ed5c-edab-4d75-90f3-bd5bdbb21c82)
+]
+interface IShellImageDataFactory : IUnknown
+{
+    HRESULT CreateIShellImageData([out] IShellImageData **data);
+    HRESULT CreateImageFromFile([in] LPCWSTR path, [out] IShellImageData **data);
+    HRESULT CreateImageFromStream([in] IStream *stream, [out] IShellImageData **data);
+    HRESULT GetDataFormatFromPath([in] LPCWSTR path, [out] GUID *format);
+}
-- 
2.7.0




More information about the wine-patches mailing list