ReactOS 0.4.16-dev-975-g3b8cfa4
wincodecs_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2009 Vincent Povirk for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19#ifndef WINCODECS_PRIVATE_H
20#define WINCODECS_PRIVATE_H
21
22#include "wincodec.h"
23#include "wincodecsdk.h"
24
25#include "wine/debug.h"
26
27#ifdef __REACTOS__
28#include <wine/library.h>
29#endif
30
31DEFINE_GUID(CLSID_WineTgaDecoder, 0xb11fc79a,0x67cc,0x43e6,0xa9,0xce,0xe3,0xd5,0x49,0x45,0xd3,0x04);
32
33DEFINE_GUID(GUID_WineContainerFormatTga, 0x0c44fda1,0xa5c5,0x4298,0x96,0x85,0x47,0x3f,0xc1,0x7c,0xd3,0x22);
34
35DEFINE_GUID(GUID_VendorWine, 0xddf46da1,0x7dc1,0x404e,0x98,0xf2,0xef,0xa4,0x8d,0xfc,0x95,0x0a);
36
37#ifdef __REACTOS__
38extern const GUID IID_IMILBitmap;
39extern const GUID IID_IMILBitmapSource;
40extern const GUID IID_IMILBitmapLock;
41extern const GUID IID_IMILBitmapScaler;
42extern const GUID IID_IMILFormatConverter;
43extern const GUID IID_IMILPalette;
44#else
45extern IID IID_IMILBitmap;
50extern IID IID_IMILPalette;
51#endif
52
53#define INTERFACE IMILBitmapSource
55{
56 /*** IUnknown methods ***/
60 /*** IWICBitmapSource methods ***/
63 STDMETHOD_(HRESULT,GetResolution)(THIS_ double *,double *) PURE;
64 STDMETHOD_(HRESULT,CopyPalette)(THIS_ IWICPalette *) PURE;
65 STDMETHOD_(HRESULT,CopyPixels)(THIS_ const WICRect *,UINT,UINT,BYTE *) PURE;
66};
67#undef INTERFACE
68
69#define INTERFACE IMILBitmap
70DECLARE_INTERFACE_(IMILBitmap,IMILBitmapSource)
71{
72 /*** IUnknown methods ***/
76 /*** IWICBitmapSource methods ***/
79 STDMETHOD_(HRESULT,GetResolution)(THIS_ double *,double *) PURE;
80 STDMETHOD_(HRESULT,CopyPalette)(THIS_ IWICPalette *) PURE;
81 STDMETHOD_(HRESULT,CopyPixels)(THIS_ const WICRect *,UINT,UINT,BYTE *) PURE;
82 /*** IMILBitmap methods ***/
83 STDMETHOD_(HRESULT,unknown1)(THIS_ void **) PURE;
88 STDMETHOD_(HRESULT,AddDirtyRect)(THIS_ const WICRect *) PURE;
89};
90#undef INTERFACE
91
92#define INTERFACE IMILBitmapScaler
93DECLARE_INTERFACE_(IMILBitmapScaler,IMILBitmapSource)
94{
95 /*** IUnknown methods ***/
99 /*** IWICBitmapSource methods ***/
102 STDMETHOD_(HRESULT,GetResolution)(THIS_ double *,double *) PURE;
103 STDMETHOD_(HRESULT,CopyPalette)(THIS_ IWICPalette *) PURE;
104 STDMETHOD_(HRESULT,CopyPixels)(THIS_ const WICRect *,UINT,UINT,BYTE *) PURE;
105 /*** IMILBitmapScaler methods ***/
106 STDMETHOD_(HRESULT,unknown1)(THIS_ void **) PURE;
108};
109#undef INTERFACE
110
111#define THISCALLMETHOD_(type,method) type (__thiscall *method)
112
113#define INTERFACE IMILUnknown1
115{
116 /*** IUnknown methods ***/
120 /*** thiscall method ***/
121 #ifdef __REACTOS__
122 STDMETHOD_(void,unknown1)(THIS_ void*) PURE;
123 #else
124 THISCALLMETHOD_(void,unknown1)(THIS_ void*) PURE;
125 #endif
126 STDMETHOD_(HRESULT,unknown2)(THIS_ void*, void*) PURE;
127 #ifdef __REACTOS__
128 STDMETHOD_(HRESULT,unknown3)(THIS_ void*) PURE;
129 #else
130 THISCALLMETHOD_(HRESULT,unknown3)(THIS_ void*) PURE;
131 #endif
132 STDMETHOD_(HRESULT,unknown4)(THIS_ void*) PURE;
133 STDMETHOD_(HRESULT,unknown5)(THIS_ void*) PURE;
135 STDMETHOD_(HRESULT,unknown7)(THIS_ void*) PURE;
136 #ifdef __REACTOS__
137 /*** thiscall method ***/
138 STDMETHOD_(HRESULT,unknown8)(THIS) PURE;
139 #else
140 THISCALLMETHOD_(HRESULT,unknown8)(THIS) PURE;
141 #endif
142};
143#undef INTERFACE
144
145#define INTERFACE IMILUnknown2
147{
148 /*** IUnknown methods ***/
152 /*** unknown methods ***/
153 STDMETHOD_(HRESULT,unknown1)(THIS_ void *,void **) PURE;
154 STDMETHOD_(HRESULT,unknown2)(THIS_ void *,void *) PURE;
155 STDMETHOD_(HRESULT,unknown3)(THIS_ void *) PURE;
156};
157#undef INTERFACE
158
159HRESULT create_instance(const CLSID *clsid, const IID *iid, void **ppv);
160
165extern HRESULT PngDecoder_CreateInstance(REFIID iid, void** ppv);
166extern HRESULT PngEncoder_CreateInstance(REFIID iid, void** ppv);
167extern HRESULT BmpEncoder_CreateInstance(REFIID iid, void** ppv);
168extern HRESULT DibDecoder_CreateInstance(REFIID iid, void** ppv);
170extern HRESULT GifEncoder_CreateInstance(REFIID iid, void** ppv);
171extern HRESULT IcoDecoder_CreateInstance(REFIID iid, void** ppv);
172extern HRESULT JpegDecoder_CreateInstance(REFIID iid, void** ppv);
173extern HRESULT JpegEncoder_CreateInstance(REFIID iid, void** ppv);
174extern HRESULT TiffDecoder_CreateInstance(REFIID iid, void** ppv);
175extern HRESULT TiffEncoder_CreateInstance(REFIID iid, void** ppv);
176extern HRESULT TgaDecoder_CreateInstance(REFIID iid, void** ppv);
177extern HRESULT DdsDecoder_CreateInstance(REFIID iid, void** ppv);
178extern HRESULT DdsEncoder_CreateInstance(REFIID iid, void** ppv);
179
180extern HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight,
183 IWICBitmap **ppIBitmap);
191
192extern HRESULT copy_pixels(UINT bpp, const BYTE *srcbuffer,
193 UINT srcwidth, UINT srcheight, INT srcstride,
194 const WICRect *rc, UINT dststride, UINT dstbuffersize, BYTE *dstbuffer);
195
199 INT width, INT height, double xres, double yres);
200
203 const WICPixelFormatGUID *format, UINT bpp, BOOL need_palette,
205
206extern void reverse_bgr8(UINT bytesperpixel, LPBYTE bits, UINT width, UINT height, INT stride);
207
209
210extern HRESULT CreatePropertyBag2(const PROPBAG2 *options, UINT count,
212
214extern void ReleaseComponentInfos(void);
215extern HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnknown **ppIEnumUnknown);
217
218typedef struct BmpDecoder BmpDecoder;
219
222extern void BmpDecoder_FindIconMask(BmpDecoder *This, ULONG *mask_offset, int *topdown);
223
224typedef struct _MetadataItem
225{
226 PROPVARIANT schema;
227 PROPVARIANT id;
228 PROPVARIANT value;
230
232{
234 const CLSID *clsid;
235 HRESULT (*fnLoad)(IStream *stream, const GUID *preferred_vendor,
236 DWORD persist_options, MetadataItem **items, DWORD *item_count);
237 HRESULT (*fnSave)(IStream *stream, DWORD persist_options,
238 const MetadataItem *items, DWORD item_count);
242
244
252extern HRESULT LSDReader_CreateInstance(REFIID iid, void **ppv);
253extern HRESULT IMDReader_CreateInstance(REFIID iid, void **ppv);
254extern HRESULT GCEReader_CreateInstance(REFIID iid, void **ppv);
255extern HRESULT APEReader_CreateInstance(REFIID iid, void **ppv);
260
261static inline const char *debug_wic_rect(const WICRect *rect)
262{
263 if (!rect) return "(null)";
264 return wine_dbg_sprintf("(%u,%u)-(%u,%u)", rect->X, rect->Y, rect->Width, rect->Height);
265}
266
268
270
271struct decoder_funcs;
272
274{
278};
279
280#define DECODER_FLAGS_CAPABILITY_MASK 0x1f
281#define DECODER_FLAGS_UNSUPPORTED_COLOR_CONTEXT 0x80000000
282
284{
287};
288
290{
298};
299
300#define DECODER_BLOCK_OPTION_MASK 0x0001000F
301#define DECODER_BLOCK_FULL_STREAM 0x80000000
302#define DECODER_BLOCK_READER_CLSID 0x40000000
304{
309};
310
312{
313 const struct decoder_funcs *vtable;
314};
315
317{
319 HRESULT (CDECL *get_frame_info)(struct decoder* This, UINT frame, struct decoder_frame *info);
322 HRESULT (CDECL *get_metadata_blocks)(struct decoder* This, UINT frame, UINT *count,
324 HRESULT (CDECL *get_color_context)(struct decoder* This, UINT frame, UINT num,
327};
328
332HRESULT CDECL stream_write(IStream *stream, const void *buffer, ULONG write, ULONG *bytes_written);
333
334HRESULT CDECL decoder_create(const CLSID *decoder_clsid, struct decoder_info *info, struct decoder **result);
338 UINT stride, UINT buffersize, BYTE *buffer);
340 struct decoder_block **blocks);
342 BYTE **data, DWORD *datasize);
343void CDECL decoder_destroy(struct decoder *This);
344
345struct encoder_funcs;
346
347/* sync with encoder_option_properties */
349{
362
363#define ENCODER_FLAGS_MULTI_FRAME 0x1
364#define ENCODER_FLAGS_ICNS_SIZE 0x2
365#define ENCODER_FLAGS_SUPPORTS_METADATA 0x4
366
368{
373};
374
376{
384 /* encoder options */
387};
388
390{
391 const struct encoder_funcs *vtable;
392};
393
395{
397 HRESULT (CDECL *get_supported_format)(struct encoder* This, GUID *pixel_format, DWORD *bpp, BOOL *indexed);
398 HRESULT (CDECL *create_frame)(struct encoder* This, const struct encoder_frame *frame);
400 HRESULT (CDECL *commit_frame)(struct encoder* This);
401 HRESULT (CDECL *commit_file)(struct encoder* This);
403};
404
407HRESULT CDECL encoder_create_frame(struct encoder* This, const struct encoder_frame *frame);
411void CDECL encoder_destroy(struct encoder* This);
412
416
421
423 const struct decoder_info *decoder_info, REFIID iid, void** ppv);
424
426 const struct encoder_info *encoder_info, REFIID iid, void** ppv);
427
428#endif /* WINCODECS_PRIVATE_H */
void destroy(_Tp *__pointer)
Definition: _construct.h:278
#define read
Definition: acwin.h:96
#define write
Definition: acwin.h:97
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
_In_ BOOLEAN Release
Definition: cdrom.h:920
DWORD WINAPI GetSize(LPVOID)
static SIZE_T datasize
Definition: asm.c:30
DWORD bpp
Definition: surface.c:185
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
#define CDECL
Definition: compat.h:29
pixelformat
Definition: converter.c:37
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLuint GLenum GLenum transform
Definition: glext.h:9407
GLsizei stride
Definition: glext.h:5848
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
GLuint64EXT * result
Definition: glext.h:11304
GLuint GLuint num
Definition: glext.h:9618
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
voidpf uLong int origin
Definition: ioapi.h:144
static int blocks
Definition: mkdosfs.c:527
static HRESULT initialize(void)
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static int stream_read
Definition: htmldoc.c:205
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:89
static void * vtable[]
Definition: typelib.c:1231
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
static HPALETTE palette
Definition: clipboard.c:1345
REFCLSID clsid
Definition: msctf.c:82
unsigned int UINT
Definition: ndis.h:50
#define DWORD
Definition: nt_native.h:44
_Out_ LPRECT prc
Definition: ntgdi.h:1658
@ Unlock
Definition: ntsecapi.h:294
static TCHAR * items[]
Definition: page1.c:45
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
#define REFCLSID
Definition: guiddef.h:117
& rect
Definition: startmenu.cpp:1413
Definition: scsiwmi.h:51
HRESULT(* fnLoad)(IStream *stream, const GUID *preferred_vendor, DWORD persist_options, MetadataItem **items, DWORD *item_count)
HRESULT(* fnSave)(IStream *stream, DWORD persist_options, const MetadataItem *items, DWORD item_count)
HRESULT(* fnGetSizeMax)(const MetadataItem *items, DWORD item_count, ULARGE_INTEGER *size)
PROPVARIANT schema
PROPVARIANT value
Definition: http.c:7252
WICColor palette[256]
void(CDECL *destroy)(struct decoder *This)
UINT const WICRect UINT stride
UINT const WICRect UINT UINT BYTE * buffer
UINT const WICRect UINT UINT buffersize
HRESULT(CDECL *initialize)(struct decoder *This
UINT UINT struct decoder_block ** blocks
UINT struct decoder_frame * info
HRESULT(CDECL *copy_pixels)(struct decoder *This
UINT UINT BYTE ** data
UINT const WICRect * prc
HRESULT(CDECL *get_color_context)(struct decoder *This
UINT UINT * count
IStream struct decoder_stat * st
UINT UINT BYTE DWORD * datasize
const struct decoder_funcs * vtable
WICColor palette[256]
GUID DWORD BOOL * indexed
const struct encoder_frame * frame
void(CDECL *destroy)(struct encoder *This)
HRESULT(CDECL *commit_file)(struct encoder *This)
BYTE DWORD DWORD stride
BYTE DWORD line_count
HRESULT(CDECL *initialize)(struct encoder *This
HRESULT(CDECL *commit_frame)(struct encoder *This)
GUID DWORD * bpp
DWORD encoder_options[7]
const struct encoder_funcs * vtable
Definition: format.c:58
Definition: getopt.h:109
Definition: parse.h:23
uint64_t DWORD64
Definition: typedefs.h:67
unsigned char * LPBYTE
Definition: typedefs.h:53
int64_t LONGLONG
Definition: typedefs.h:68
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
double DOUBLE
Definition: typedefs.h:70
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
WICBitmapInterpolationMode
Definition: wincodec.idl:77
WICBitmapCreateCacheOption
Definition: wincodec.idl:34
UINT32 WICColor
Definition: wincodec.idl:364
HRESULT GifEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:2476
HRESULT CDECL tiff_decoder_create(struct decoder_info *info, struct decoder **result)
Definition: libtiff.c:1091
HRESULT DdsDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: ddsformat.c:1750
IID IID_IMILFormatConverter
HRESULT GCEReader_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:315
HRESULT FormatConverter_CreateInstance(REFIID riid, void **ppv)
Definition: converter.c:1953
HRESULT CommonEncoder_CreateInstance(struct encoder *encoder, const struct encoder_info *encoder_info, REFIID iid, void **ppv)
Definition: encoder.c:867
struct _MetadataItem MetadataItem
HRESULT CDECL decoder_initialize(struct decoder *This, IStream *stream, struct decoder_stat *st)
HRESULT PngDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:399
HRESULT JpegEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: main.c:128
HRESULT MetadataQueryWriter_CreateInstance(IWICMetadataBlockWriter *, const WCHAR *, IWICMetadataQueryWriter **)
HRESULT write_source(IWICBitmapFrameEncode *iface, IWICBitmapSource *source, const WICRect *prc, const WICPixelFormatGUID *format, UINT bpp, BOOL need_palette, INT width, INT height)
HRESULT PaletteImpl_Create(IWICPalette **palette)
Definition: palette.c:897
static const char * debug_wic_rect(const WICRect *rect)
HRESULT MetadataQueryReader_CreateInstance(IWICMetadataBlockReader *, const WCHAR *, IWICMetadataQueryReader **)
HRESULT PngEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:413
HRESULT IMDReader_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:237
HRESULT MetadataReader_Create(const MetadataHandlerVtbl *vtable, REFIID iid, void **ppv)
HRESULT DibDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: bmpdecode.c:1235
struct _MetadataHandlerVtbl MetadataHandlerVtbl
HRESULT TgaDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: tgaformat.c:938
HRESULT CreateComponentInfo(REFCLSID clsid, IWICComponentInfo **ppIInfo)
Definition: info.c:2030
HRESULT ColorContext_Create(IWICColorContext **context)
Definition: colorcontext.c:256
HRESULT CDECL decoder_get_metadata_blocks(struct decoder *This, UINT frame, UINT *count, struct decoder_block **blocks)
void CDECL encoder_destroy(struct encoder *This)
HRESULT CDECL decoder_copy_pixels(struct decoder *This, UINT frame, const WICRect *prc, UINT stride, UINT buffersize, BYTE *buffer)
HRESULT PngGamaReader_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:168
IID IID_IMILPalette
HRESULT read_png_chunk(IStream *stream, BYTE *type, BYTE **data, ULONG *data_size)
void BmpDecoder_GetWICDecoder(BmpDecoder *This, IWICBitmapDecoder **ppDecoder)
Definition: bmpdecode.c:1245
HRESULT BitmapScaler_Create(IWICBitmapScaler **scaler)
Definition: scaler.c:513
void reverse_bgr8(UINT bytesperpixel, LPBYTE bits, UINT width, UINT height, INT stride)
HRESULT CDECL icns_encoder_create(struct encoder_info *info, struct encoder **result)
HRESULT get_decoder_info(REFCLSID clsid, IWICBitmapDecoderInfo **info)
Definition: info.c:2117
void BmpDecoder_FindIconMask(BmpDecoder *This, ULONG *mask_offset, int *topdown)
Definition: bmpdecode.c:1251
HRESULT get_pixelformat_bpp(const GUID *pixelformat, UINT *bpp)
Definition: main.c:62
HRESULT CDECL png_encoder_create(struct encoder_info *info, struct encoder **result)
Definition: libpng.c:817
HRESULT ColorTransform_Create(IWICColorTransform **transform)
HRESULT PngHistReader_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:308
HRESULT CDECL encoder_create_frame(struct encoder *This, const struct encoder_frame *frame)
HRESULT APEReader_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:422
HRESULT TiffEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: main.c:100
HRESULT CDECL stream_write(IStream *stream, const void *buffer, ULONG write, ULONG *bytes_written)
HRESULT CDECL decoder_get_frame_info(struct decoder *This, UINT frame, struct decoder_frame *info)
HRESULT BmpEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: bmpencode.c:642
IID IID_IMILBitmapScaler
HRESULT CommonDecoder_CreateInstance(struct decoder *decoder, const struct decoder_info *decoder_info, REFIID iid, void **ppv)
Definition: decoder.c:780
HRESULT JpegDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: main.c:114
HRESULT BmpDecoder_CreateInstance(REFIID riid, void **ppv)
Definition: bmpdecode.c:1230
HRESULT CDECL decoder_get_color_context(struct decoder *This, UINT frame, UINT num, BYTE **data, DWORD *datasize)
HRESULT CDECL stream_getsize(IStream *stream, ULONGLONG *size)
HRESULT CreatePropertyBag2(const PROPBAG2 *options, UINT count, IPropertyBag2 **property)
Definition: propertybag.c:278
HRESULT CDECL encoder_get_supported_format(struct encoder *This, GUID *pixel_format, DWORD *bpp, BOOL *indexed)
HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight, UINT stride, UINT datasize, void *view, UINT offset, REFWICPixelFormatGUID pixelFormat, WICBitmapCreateCacheOption option, IWICBitmap **ppIBitmap)
Definition: bitmap.c:790
HMODULE windowscodecs_module
Definition: main.c:35
HRESULT CDECL stream_seek(IStream *stream, LONGLONG ofs, DWORD origin, ULONGLONG *new_position)
HRESULT configure_write_source(IWICBitmapFrameEncode *iface, IWICBitmapSource *source, const WICRect *prc, const WICPixelFormatGUID *format, INT width, INT height, double xres, double yres)
#define THISCALLMETHOD_(type, method)
HRESULT PngTimeReader_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:394
HRESULT CDECL tiff_encoder_create(struct encoder_info *info, struct encoder **result)
Definition: libtiff.c:1329
HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnknown **ppIEnumUnknown)
Definition: info.c:2339
HRESULT CDECL encoder_initialize(struct encoder *This, IStream *stream)
HRESULT IfdMetadataReader_CreateInstance(REFIID iid, void **ppv)
IID IID_IMILBitmapSource
HRESULT CDECL encoder_write_lines(struct encoder *This, BYTE *data, DWORD line_count, DWORD stride)
HRESULT BitmapClipper_Create(IWICBitmapClipper **clipper)
Definition: clipper.c:243
HRESULT PngTextReader_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:109
HRESULT FlipRotator_Create(IWICBitmapFlipRotator **fliprotator)
Definition: fliprotate.c:266
HRESULT StreamImpl_Create(IWICStream **stream)
Definition: stream.c:1158
HRESULT IcoDibDecoder_CreateInstance(BmpDecoder **ppDecoder)
Definition: bmpdecode.c:1240
HRESULT LSDReader_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:156
void ReleaseComponentInfos(void)
Definition: info.c:2110
HRESULT GifCommentReader_CreateInstance(REFIID iid, void **ppv)
Definition: gifformat.c:516
HRESULT stream_initialize_from_filehandle(IWICStream *iface, HANDLE hfile)
Definition: stream.c:1043
HRESULT CDECL encoder_commit_file(struct encoder *This)
HRESULT ImagingFactory_CreateInstance(REFIID riid, void **ppv)
Definition: imgfactory.c:1606
HRESULT copy_pixels(UINT bpp, const BYTE *srcbuffer, UINT srcwidth, UINT srcheight, INT srcstride, const WICRect *rc, UINT dststride, UINT dstbuffersize, BYTE *dstbuffer)
HRESULT CDECL encoder_commit_frame(struct encoder *This)
HRESULT DdsEncoder_CreateInstance(REFIID iid, void **ppv)
Definition: ddsformat.c:2131
encoder_option
@ ENCODER_OPTION_CHROMINANCE
@ ENCODER_OPTION_YCRCB_SUBSAMPLING
@ ENCODER_OPTION_IMAGE_QUALITY
@ ENCODER_OPTION_INTERLACE
@ ENCODER_OPTION_FILTER
@ ENCODER_OPTION_END
@ ENCODER_OPTION_LUMINANCE
@ ENCODER_OPTION_COMPRESSION_METHOD
@ ENCODER_OPTION_SUPPRESS_APP0
@ ENCODER_OPTION_COMPRESSION_QUALITY
@ ENCODER_OPTION_BITMAP_TRANSFORM
void CDECL decoder_destroy(struct decoder *This)
HRESULT UnknownMetadataReader_CreateInstance(REFIID iid, void **ppv)
HRESULT CDECL png_decoder_create(struct decoder_info *info, struct decoder **result)
Definition: libpng.c:468
IID IID_IMILBitmap
HRESULT CDECL jpeg_decoder_create(struct decoder_info *info, struct decoder **result)
Definition: libjpeg.c:343
HRESULT PngChrmReader_CreateInstance(REFIID iid, void **ppv)
Definition: pngformat.c:245
HRESULT TiffDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: main.c:86
HRESULT GifDecoder_CreateInstance(REFIID riid, void **ppv)
Definition: gifformat.c:1402
IID IID_IMILBitmapLock
HRESULT CDECL decoder_create(const CLSID *decoder_clsid, struct decoder_info *info, struct decoder **result)
HRESULT CDECL jpeg_encoder_create(struct encoder_info *info, struct encoder **result)
Definition: libjpeg.c:638
HRESULT(* class_constructor)(REFIID, void **)
HRESULT create_instance(const CLSID *clsid, const IID *iid, void **ppv)
Definition: clsfactory.c:212
HRESULT IcoDecoder_CreateInstance(REFIID iid, void **ppv)
Definition: icoformat.c:757
#define HRESULT
Definition: msvc.h:7
#define IMILUnknown1
Definition: msvc.h:8
int WINAPI GetPixelFormat(_In_ HDC)
_In_ BOOLEAN SetResolution
Definition: exfuncs.h:1078
static void Initialize()
Definition: xlate.c:212
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193