2 * Copyright 2016 Nikolay Sivov For CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 cpp_quote
("#ifndef _GDIPLUSPIXELFORMATS_H")
23 typedef DWORD PixelFormat
;
26 cpp_quote
("#ifndef _GDIPLUSENUMS_H")
27 typedef DWORD InterpolationMode
;
30 cpp_quote
("#ifndef _GDIPLUSIMAGING_H")
31 typedef BYTE EncoderParameters
;
34 cpp_quote
("#ifndef _GDIPLUSHEADERS_H")
38 cpp_quote
("#define SHIMGDEC_DEFAULT 0x0")
39 cpp_quote
("#define SHIMGDEC_THUMBNAIL 0x1")
40 cpp_quote
("#define SHIMGDEC_LOADFULL 0x2")
44 uuid(53fb8e58
-50c0
-4003-b4aa
-0c8df28e7f3a
)
46 interface IShellImageDataAbort
: IUnknown
54 uuid(bfdeec12
-8040-4403-a5ea
-9e07dafcf530
)
56 interface IShellImageData
: IUnknown
58 HRESULT Decode
([in] DWORD flags
, [in] ULONG cx_desired
, [in] ULONG cy_desired
);
59 HRESULT Draw
([in] HDC hdc
, [in] RECT
*dest
, [in] RECT
*src
);
63 HRESULT IsTransparent
();
66 HRESULT IsMultipage
();
68 HRESULT IsPrintable
();
70 HRESULT GetCurrentPage
([out] ULONG
*page
);
71 HRESULT GetPageCount
([out] ULONG
*count
);
72 HRESULT SelectPage
([in] ULONG page
);
73 HRESULT GetSize
([out] SIZE
*size
);
74 HRESULT GetRawDataFormat
([out] GUID
*format
);
75 HRESULT GetPixelFormat
([out] PixelFormat
*format
);
76 HRESULT GetDelay
([out] DWORD
*delay
);
77 HRESULT GetProperties
([in] DWORD mode
, [out] IPropertySetStorage
**props
);
78 HRESULT Rotate
([in] DWORD angle
);
79 HRESULT Scale
([in] ULONG cx
, [in] ULONG cy
, [in] InterpolationMode mode
);
80 HRESULT DiscardEdit
();
81 HRESULT SetEncoderParams
([in] IPropertyBag
*params
);
82 HRESULT DisplayName
([size_is(count
), in, out] LPWSTR name
, UINT count
);
83 HRESULT GetResolution
([out] ULONG
*res_x
, [out] ULONG
*res_y
);
84 HRESULT GetEncoderParams
([in] GUID
*format
, [out] EncoderParameters
**params
);
85 HRESULT RegisterAbort
([in] IShellImageDataAbort
*abort
, [out] IShellImageDataAbort
**prev
);
86 HRESULT CloneFrame
([out] Image
**frame
);
87 HRESULT ReplaceFrame
([in] Image
*frame
);
92 uuid(9be8ed5c
-edab
-4d75
-90f3
-bd5bdbb21c82
)
94 interface IShellImageDataFactory
: IUnknown
96 HRESULT CreateIShellImageData
([out] IShellImageData
**data
);
97 HRESULT CreateImageFromFile
([in] LPCWSTR path
, [out] IShellImageData
**data
);
98 HRESULT CreateImageFromStream
([in] IStream
*stream
, [out] IShellImageData
**data
);
99 HRESULT GetDataFormatFromPath
([in] LPCWSTR path
, [out] GUID
*format
);