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 _GDIPLUSHEADERS_H")
31 typedef BYTE EncoderParameters
;
37 uuid(53fb8e58
-50c0
-4003-b4aa
-0c8df28e7f3a
)
39 interface IShellImageDataAbort
: IUnknown
47 uuid(bfdeec12
-8040-4403-a5ea
-9e07dafcf530
)
49 interface IShellImageData
: IUnknown
51 HRESULT Decode
([in] DWORD flags
, [in] ULONG cx_desired
, [in] ULONG cy_desired
);
52 HRESULT Draw
([in] HDC hdc
, [in] RECT
*dest
, [in] RECT
*src
);
56 HRESULT IsTransparent
();
59 HRESULT IsMultipage
();
61 HRESULT IsPrintable
();
63 HRESULT GetCurrentPage
([out] ULONG
*page
);
64 HRESULT GetPageCount
([out] ULONG
*count
);
65 HRESULT SelectPage
([in] ULONG page
);
66 HRESULT GetSize
([out] SIZE
*size
);
67 HRESULT GetRawDataFormat
([out] GUID
*format
);
68 HRESULT GetPixelFormat
([out] PixelFormat
*format
);
69 HRESULT GetDelay
([out] DWORD
*delay
);
70 HRESULT GetProperties
([in] DWORD mode
, [out] IPropertySetStorage
**props
);
71 HRESULT Rotate
([in] DWORD angle
);
72 HRESULT Scale
([in] ULONG cx
, [in] ULONG cy
, [in] InterpolationMode mode
);
73 HRESULT DiscardEdit
();
74 HRESULT SetEncoderParams
([in] IPropertyBag
*params
);
75 HRESULT DisplayName
([size_is(count
), in, out] LPWSTR name
, UINT count
);
76 HRESULT GetResolution
([out] ULONG
*res_x
, [out] ULONG
*res_y
);
77 HRESULT GetEncoderParams
([in] GUID
*format
, [out] EncoderParameters
**params
);
78 HRESULT RegisterAbort
([in] IShellImageDataAbort
*abort
, [out] IShellImageDataAbort
**prev
);
79 HRESULT CloneFrame
([out] Image
**frame
);
80 HRESULT ReplaceFrame
([in] Image
*frame
);
85 uuid(9be8ed5c
-edab
-4d75
-90f3
-bd5bdbb21c82
)
87 interface IShellImageDataFactory
: IUnknown
89 HRESULT CreateIShellImageData
([out] IShellImageData
**data
);
90 HRESULT CreateImageFromFile
([in] LPCWSTR path
, [out] IShellImageData
**data
);
91 HRESULT CreateImageFromStream
([in] IStream
*stream
, [out] IShellImageData
**data
);
92 HRESULT GetDataFormatFromPath
([in] LPCWSTR path
, [out] GUID
*format
);