[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