ReactOS 0.4.15-dev-7788-g1ad9096
bitmap.c File Reference
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "wincodecs_private.h"
#include "wine/asm.h"
#include "wine/debug.h"
Include dependency graph for bitmap.c:

Go to the source code of this file.

Classes

struct  BitmapImpl
 
struct  BitmapLockImpl
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct BitmapImpl BitmapImpl
 
typedef struct BitmapLockImpl BitmapLockImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wincodecs)
 
static BitmapImplimpl_from_IWICBitmap (IWICBitmap *iface)
 
static BitmapImplimpl_from_IMILBitmap (IMILBitmap *iface)
 
static BitmapImplimpl_from_IMILUnknown1 (IMILUnknown1 *iface)
 
static BitmapImplimpl_from_IMILUnknown2 (IMILUnknown2 *iface)
 
static BitmapLockImplimpl_from_IWICBitmapLock (IWICBitmapLock *iface)
 
static BOOL BitmapImpl_AcquireLock (BitmapImpl *This, int write)
 
static void BitmapImpl_ReleaseLock (BitmapImpl *This)
 
static HRESULT WINAPI BitmapLockImpl_QueryInterface (IWICBitmapLock *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI BitmapLockImpl_AddRef (IWICBitmapLock *iface)
 
static ULONG WINAPI BitmapLockImpl_Release (IWICBitmapLock *iface)
 
static HRESULT WINAPI BitmapLockImpl_GetSize (IWICBitmapLock *iface, UINT *puiWidth, UINT *puiHeight)
 
static HRESULT WINAPI BitmapLockImpl_GetStride (IWICBitmapLock *iface, UINT *pcbStride)
 
static HRESULT WINAPI BitmapLockImpl_GetDataPointer (IWICBitmapLock *iface, UINT *pcbBufferSize, BYTE **ppbData)
 
static HRESULT WINAPI BitmapLockImpl_GetPixelFormat (IWICBitmapLock *iface, WICPixelFormatGUID *pPixelFormat)
 
static HRESULT WINAPI BitmapImpl_QueryInterface (IWICBitmap *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI BitmapImpl_AddRef (IWICBitmap *iface)
 
static ULONG WINAPI BitmapImpl_Release (IWICBitmap *iface)
 
static HRESULT WINAPI BitmapImpl_GetSize (IWICBitmap *iface, UINT *puiWidth, UINT *puiHeight)
 
static HRESULT WINAPI BitmapImpl_GetPixelFormat (IWICBitmap *iface, WICPixelFormatGUID *pPixelFormat)
 
static HRESULT WINAPI BitmapImpl_GetResolution (IWICBitmap *iface, double *pDpiX, double *pDpiY)
 
static HRESULT WINAPI BitmapImpl_CopyPalette (IWICBitmap *iface, IWICPalette *pIPalette)
 
static HRESULT WINAPI BitmapImpl_CopyPixels (IWICBitmap *iface, const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer)
 
static HRESULT WINAPI BitmapImpl_Lock (IWICBitmap *iface, const WICRect *prcLock, DWORD flags, IWICBitmapLock **ppILock)
 
static HRESULT WINAPI BitmapImpl_SetPalette (IWICBitmap *iface, IWICPalette *pIPalette)
 
static HRESULT WINAPI BitmapImpl_SetResolution (IWICBitmap *iface, double dpiX, double dpiY)
 
static HRESULT WINAPI IMILBitmapImpl_QueryInterface (IMILBitmap *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI IMILBitmapImpl_AddRef (IMILBitmap *iface)
 
static ULONG WINAPI IMILBitmapImpl_Release (IMILBitmap *iface)
 
static HRESULT WINAPI IMILBitmapImpl_GetSize (IMILBitmap *iface, UINT *width, UINT *height)
 
static HRESULT WINAPI IMILBitmapImpl_GetPixelFormat (IMILBitmap *iface, int *format)
 
static HRESULT WINAPI IMILBitmapImpl_GetResolution (IMILBitmap *iface, double *dpix, double *dpiy)
 
static HRESULT WINAPI IMILBitmapImpl_CopyPalette (IMILBitmap *iface, IWICPalette *palette)
 
static HRESULT WINAPI IMILBitmapImpl_CopyPixels (IMILBitmap *iface, const WICRect *rc, UINT stride, UINT size, BYTE *buffer)
 
static HRESULT WINAPI IMILBitmapImpl_unknown1 (IMILBitmap *iface, void **ppv)
 
static HRESULT WINAPI IMILBitmapImpl_Lock (IMILBitmap *iface, const WICRect *rc, DWORD flags, IWICBitmapLock **lock)
 
static HRESULT WINAPI IMILBitmapImpl_Unlock (IMILBitmap *iface, IWICBitmapLock *lock)
 
static HRESULT WINAPI IMILBitmapImpl_SetPalette (IMILBitmap *iface, IWICPalette *palette)
 
static HRESULT WINAPI IMILBitmapImpl_SetResolution (IMILBitmap *iface, double dpix, double dpiy)
 
static HRESULT WINAPI IMILBitmapImpl_AddDirtyRect (IMILBitmap *iface, const WICRect *rc)
 
static HRESULT WINAPI IMILUnknown1Impl_QueryInterface (IMILUnknown1 *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI IMILUnknown1Impl_AddRef (IMILUnknown1 *iface)
 
static ULONG WINAPI IMILUnknown1Impl_Release (IMILUnknown1 *iface)
 
DECLSPEC_HIDDEN void WINAPI IMILUnknown1Impl_unknown1 (IMILUnknown1 *iface, void *arg)
 
static HRESULT WINAPI IMILUnknown1Impl_unknown2 (IMILUnknown1 *iface, void *arg1, void *arg2)
 
DECLSPEC_HIDDEN HRESULT WINAPI IMILUnknown1Impl_unknown3 (IMILUnknown1 *iface, void *arg)
 
static HRESULT WINAPI IMILUnknown1Impl_unknown4 (IMILUnknown1 *iface, void *arg)
 
static HRESULT WINAPI IMILUnknown1Impl_unknown5 (IMILUnknown1 *iface, void *arg)
 
static HRESULT WINAPI IMILUnknown1Impl_unknown6 (IMILUnknown1 *iface, DWORD64 arg)
 
static HRESULT WINAPI IMILUnknown1Impl_unknown7 (IMILUnknown1 *iface, void *arg)
 
DECLSPEC_HIDDEN HRESULT WINAPI IMILUnknown1Impl_unknown8 (IMILUnknown1 *iface)
 
static HRESULT WINAPI IMILUnknown2Impl_QueryInterface (IMILUnknown2 *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI IMILUnknown2Impl_AddRef (IMILUnknown2 *iface)
 
static ULONG WINAPI IMILUnknown2Impl_Release (IMILUnknown2 *iface)
 
static HRESULT WINAPI IMILUnknown2Impl_unknown1 (IMILUnknown2 *iface, void *arg1, void **arg2)
 
static HRESULT WINAPI IMILUnknown2Impl_unknown2 (IMILUnknown2 *iface, void *arg1, void *arg2)
 
static HRESULT WINAPI IMILUnknown2Impl_unknown3 (IMILUnknown2 *iface, void *arg1)
 
HRESULT BitmapImpl_Create (UINT uiWidth, UINT uiHeight, UINT stride, UINT datasize, void *view, UINT offset, REFWICPixelFormatGUID pixelFormat, WICBitmapCreateCacheOption option, IWICBitmap **ppIBitmap)
 

Variables

static const IWICBitmapLockVtbl BitmapLockImpl_Vtbl
 
static const IWICBitmapVtbl BitmapImpl_Vtbl
 
struct {
   const GUID *   WIC_format
 
   int   enum_format
 
pixel_fmt_map []
 
static const IMILBitmapVtbl IMILBitmapImpl_Vtbl
 
static const IMILUnknown1Vtbl IMILUnknown1Impl_Vtbl
 
static const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 26 of file bitmap.c.

Typedef Documentation

◆ BitmapImpl

◆ BitmapLockImpl

Function Documentation

◆ BitmapImpl_AcquireLock()

static BOOL BitmapImpl_AcquireLock ( BitmapImpl This,
int  write 
)
static

Definition at line 95 of file bitmap.c.

96{
97 if (write)
98 {
99 return 0 == InterlockedCompareExchange(&This->lock, -1, 0);
100 }
101 else
102 {
103 while (1)
104 {
105 LONG prev_val = This->lock;
106 if (prev_val == -1)
107 return FALSE;
108 if (prev_val == InterlockedCompareExchange(&This->lock, prev_val+1, prev_val))
109 return TRUE;
110 }
111 }
112}
#define write
Definition: acwin.h:97
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define InterlockedCompareExchange
Definition: interlocked.h:104
long LONG
Definition: pedump.c:60

Referenced by BitmapImpl_Lock().

◆ BitmapImpl_AddRef()

static ULONG WINAPI BitmapImpl_AddRef ( IWICBitmap iface)
static

Definition at line 274 of file bitmap.c.

275{
278
279 TRACE("(%p) refcount=%u\n", iface, ref);
280
281 return ref;
282}
#define InterlockedIncrement
Definition: armddk.h:53
static BitmapImpl * impl_from_IWICBitmap(IWICBitmap *iface)
Definition: bitmap.c:70
#define TRACE(s)
Definition: solgame.cpp:4
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ BitmapImpl_CopyPalette()

static HRESULT WINAPI BitmapImpl_CopyPalette ( IWICBitmap iface,
IWICPalette pIPalette 
)
static

Definition at line 352 of file bitmap.c.

354{
356 TRACE("(%p,%p)\n", iface, pIPalette);
357
358 if (!This->palette_set)
360
361 return IWICPalette_InitializeFromPalette(pIPalette, This->palette);
362}
#define WINCODEC_ERR_PALETTEUNAVAILABLE
Definition: winerror.h:3292

◆ BitmapImpl_CopyPixels()

static HRESULT WINAPI BitmapImpl_CopyPixels ( IWICBitmap iface,
const WICRect prc,
UINT  cbStride,
UINT  cbBufferSize,
BYTE pbBuffer 
)
static

Definition at line 364 of file bitmap.c.

366{
368 TRACE("(%p,%s,%u,%u,%p)\n", iface, debug_wic_rect(prc), cbStride, cbBufferSize, pbBuffer);
369
370 return copy_pixels(This->bpp, This->data, This->width, This->height,
371 This->stride, prc, cbStride, cbBufferSize, pbBuffer);
372}
void copy_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slice_pitch, BYTE *dst, UINT dst_row_pitch, UINT dst_slice_pitch, const struct volume *size, const struct pixel_format_desc *format) DECLSPEC_HIDDEN
Definition: surface.c:1700
_Out_ LPRECT prc
Definition: ntgdi.h:1658
static const char * debug_wic_rect(const WICRect *rect)

◆ BitmapImpl_Create()

HRESULT BitmapImpl_Create ( UINT  uiWidth,
UINT  uiHeight,
UINT  stride,
UINT  datasize,
void view,
UINT  offset,
REFWICPixelFormatGUID  pixelFormat,
WICBitmapCreateCacheOption  option,
IWICBitmap **  ppIBitmap 
)

Definition at line 793 of file bitmap.c.

796{
797 HRESULT hr;
799 BYTE *data;
800 UINT bpp;
801
802 hr = get_pixelformat_bpp(pixelFormat, &bpp);
803 if (FAILED(hr)) return hr;
804
805 if (!stride) stride = (((bpp*uiWidth)+31)/32)*4;
806 if (!datasize) datasize = stride * uiHeight;
807
808 if (datasize < stride * uiHeight) return WINCODEC_ERR_INSUFFICIENTBUFFER;
809 if (stride < ((bpp*uiWidth)+7)/8) return E_INVALIDARG;
810
811 This = HeapAlloc(GetProcessHeap(), 0, sizeof(BitmapImpl));
812 if (!This) return E_OUTOFMEMORY;
813
814 if (view) data = (BYTE *)view + offset;
816 {
818 return E_OUTOFMEMORY;
819 }
820
821 This->IWICBitmap_iface.lpVtbl = &BitmapImpl_Vtbl;
822 This->IMILBitmap_iface.lpVtbl = &IMILBitmapImpl_Vtbl;
823 This->IMILUnknown1_iface.lpVtbl = &IMILUnknown1Impl_Vtbl;
824 This->IMILUnknown2_iface.lpVtbl = &IMILUnknown2Impl_Vtbl;
825 This->ref = 1;
826 This->palette = NULL;
827 This->palette_set = 0;
828 This->lock = 0;
829 This->data = data;
830 This->view = view;
831 This->offset = offset;
832 This->width = uiWidth;
833 This->height = uiHeight;
834 This->stride = stride;
835 This->bpp = bpp;
836 memcpy(&This->pixelformat, pixelFormat, sizeof(GUID));
837 This->dpix = This->dpiy = 0.0;
839 This->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": BitmapImpl.lock");
840
841 *ppIBitmap = &This->IWICBitmap_iface;
842
843 return S_OK;
844}
static SIZE_T datasize
Definition: asm.c:30
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define NULL
Definition: types.h:112
DWORD bpp
Definition: surface.c:185
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static const IMILBitmapVtbl IMILBitmapImpl_Vtbl
Definition: bitmap.c:639
static const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl
Definition: bitmap.c:783
static const IMILUnknown1Vtbl IMILUnknown1Impl_Vtbl
Definition: bitmap.c:729
static const IWICBitmapVtbl BitmapImpl_Vtbl
Definition: bitmap.c:471
HRESULT get_pixelformat_bpp(const GUID *pixelformat, UINT *bpp)
Definition: main.c:252
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizei stride
Definition: glext.h:5848
GLintptr offset
Definition: glext.h:5920
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
unsigned int UINT
Definition: ndis.h:50
HRESULT hr
Definition: shlfolder.c:183
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751
#define DWORD_PTR
Definition: treelist.c:76
#define WINCODEC_ERR_INSUFFICIENTBUFFER
Definition: winerror.h:3311
unsigned char BYTE
Definition: xxhash.c:193

Referenced by create_bitmap_from_source_rect(), ImagingFactory_CreateBitmap(), ImagingFactory_CreateBitmapFromHBITMAP(), ImagingFactory_CreateBitmapFromHICON(), ImagingFactory_CreateBitmapFromMemory(), and WICCreateBitmapFromSectionEx().

◆ BitmapImpl_GetPixelFormat()

static HRESULT WINAPI BitmapImpl_GetPixelFormat ( IWICBitmap iface,
WICPixelFormatGUID pPixelFormat 
)
static

Definition at line 321 of file bitmap.c.

323{
325 TRACE("(%p,%p)\n", iface, pPixelFormat);
326
327 if (!pPixelFormat)
328 return E_INVALIDARG;
329
330 memcpy(pPixelFormat, &This->pixelformat, sizeof(GUID));
331
332 return S_OK;
333}

◆ BitmapImpl_GetResolution()

static HRESULT WINAPI BitmapImpl_GetResolution ( IWICBitmap iface,
double pDpiX,
double pDpiY 
)
static

Definition at line 335 of file bitmap.c.

337{
339 TRACE("(%p,%p,%p)\n", iface, pDpiX, pDpiY);
340
341 if (!pDpiX || !pDpiY)
342 return E_INVALIDARG;
343
345 *pDpiX = This->dpix;
346 *pDpiY = This->dpiy;
348
349 return S_OK;
350}
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)

◆ BitmapImpl_GetSize()

static HRESULT WINAPI BitmapImpl_GetSize ( IWICBitmap iface,
UINT puiWidth,
UINT puiHeight 
)
static

Definition at line 306 of file bitmap.c.

308{
310 TRACE("(%p,%p,%p)\n", iface, puiWidth, puiHeight);
311
312 if (!puiWidth || !puiHeight)
313 return E_INVALIDARG;
314
315 *puiWidth = This->width;
316 *puiHeight = This->height;
317
318 return S_OK;
319}

◆ BitmapImpl_Lock()

static HRESULT WINAPI BitmapImpl_Lock ( IWICBitmap iface,
const WICRect prcLock,
DWORD  flags,
IWICBitmapLock **  ppILock 
)
static

Definition at line 374 of file bitmap.c.

376{
379 WICRect rc;
380
381 TRACE("(%p,%s,%x,%p)\n", iface, debug_wic_rect(prcLock), flags, ppILock);
382
383 if (!(flags & (WICBitmapLockRead|WICBitmapLockWrite)) || !ppILock)
384 return E_INVALIDARG;
385
386 if (!prcLock)
387 {
388 rc.X = rc.Y = 0;
389 rc.Width = This->width;
390 rc.Height = This->height;
391 prcLock = &rc;
392 }
393 else if (prcLock->X >= This->width || prcLock->Y >= This->height ||
394 prcLock->X + prcLock->Width > This->width ||
395 prcLock->Y + prcLock->Height > This->height ||
396 prcLock->Width <= 0 || prcLock->Height <= 0)
397 return E_INVALIDARG;
398 else if (((prcLock->X * This->bpp) % 8) != 0)
399 {
400 FIXME("Cannot lock at an X coordinate not at a full byte\n");
401 return E_FAIL;
402 }
403
405 if (!result)
406 return E_OUTOFMEMORY;
407
409 {
412 }
413
414 result->IWICBitmapLock_iface.lpVtbl = &BitmapLockImpl_Vtbl;
415 result->ref = 1;
416 result->parent = This;
417 result->width = prcLock->Width;
418 result->height = prcLock->Height;
419 result->data = This->data + This->stride * prcLock->Y +
420 (This->bpp * prcLock->X)/8;
421
422 IWICBitmap_AddRef(&This->IWICBitmap_iface);
423 *ppILock = &result->IWICBitmapLock_iface;
424
425 return S_OK;
426}
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_FAIL
Definition: ddrawi.h:102
static BOOL BitmapImpl_AcquireLock(BitmapImpl *This, int write)
Definition: bitmap.c:95
static const IWICBitmapLockVtbl BitmapLockImpl_Vtbl
Definition: bitmap.c:234
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
INT Height
Definition: wincodec.idl:301
INT Width
Definition: wincodec.idl:300
@ WICBitmapLockWrite
Definition: wincodec.idl:86
@ WICBitmapLockRead
Definition: wincodec.idl:85
#define WINCODEC_ERR_ALREADYLOCKED
Definition: winerror.h:3286

◆ BitmapImpl_QueryInterface()

static HRESULT WINAPI BitmapImpl_QueryInterface ( IWICBitmap iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 244 of file bitmap.c.

246{
248 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
249
250 if (!ppv) return E_INVALIDARG;
251
252 if (IsEqualIID(&IID_IUnknown, iid) ||
253 IsEqualIID(&IID_IWICBitmapSource, iid) ||
254 IsEqualIID(&IID_IWICBitmap, iid))
255 {
256 *ppv = &This->IWICBitmap_iface;
257 }
258 else if (IsEqualIID(&IID_IMILBitmap, iid) ||
259 IsEqualIID(&IID_IMILBitmapSource, iid))
260 {
261 *ppv = &This->IMILBitmap_iface;
262 }
263 else
264 {
265 FIXME("unknown interface %s\n", debugstr_guid(iid));
266 *ppv = NULL;
267 return E_NOINTERFACE;
268 }
269
270 IUnknown_AddRef((IUnknown*)*ppv);
271 return S_OK;
272}
const GUID IID_IUnknown
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ BitmapImpl_Release()

static ULONG WINAPI BitmapImpl_Release ( IWICBitmap iface)
static

Definition at line 284 of file bitmap.c.

285{
288
289 TRACE("(%p) refcount=%u\n", iface, ref);
290
291 if (ref == 0)
292 {
293 if (This->palette) IWICPalette_Release(This->palette);
294 This->cs.DebugInfo->Spare[0] = 0;
296 if (This->view)
297 UnmapViewOfFile(This->view);
298 else
299 HeapFree(GetProcessHeap(), 0, This->data);
301 }
302
303 return ref;
304}
#define InterlockedDecrement
Definition: armddk.h:52
#define UnmapViewOfFile
Definition: compat.h:746
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

◆ BitmapImpl_ReleaseLock()

static void BitmapImpl_ReleaseLock ( BitmapImpl This)
static

Definition at line 114 of file bitmap.c.

115{
116 while (1)
117 {
118 LONG prev_val = This->lock, new_val;
119 if (prev_val == -1)
120 new_val = 0;
121 else
122 new_val = prev_val - 1;
123 if (prev_val == InterlockedCompareExchange(&This->lock, new_val, prev_val))
124 break;
125 }
126}

Referenced by BitmapLockImpl_Release().

◆ BitmapImpl_SetPalette()

static HRESULT WINAPI BitmapImpl_SetPalette ( IWICBitmap iface,
IWICPalette pIPalette 
)
static

Definition at line 428 of file bitmap.c.

429{
431 HRESULT hr;
432
433 TRACE("(%p,%p)\n", iface, pIPalette);
434
435 if (!This->palette)
436 {
437 IWICPalette *new_palette;
438 hr = PaletteImpl_Create(&new_palette);
439
440 if (FAILED(hr)) return hr;
441
442 if (InterlockedCompareExchangePointer((void**)&This->palette, new_palette, NULL))
443 {
444 /* someone beat us to it */
445 IWICPalette_Release(new_palette);
446 }
447 }
448
449 hr = IWICPalette_InitializeFromPalette(This->palette, pIPalette);
450
451 if (SUCCEEDED(hr))
452 This->palette_set = 1;
453
454 return S_OK;
455}
HRESULT PaletteImpl_Create(IWICPalette **palette)
Definition: palette.c:899
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
#define SUCCEEDED(hr)
Definition: intsafe.h:50

◆ BitmapImpl_SetResolution()

static HRESULT WINAPI BitmapImpl_SetResolution ( IWICBitmap iface,
double  dpiX,
double  dpiY 
)
static

Definition at line 457 of file bitmap.c.

459{
461 TRACE("(%p,%f,%f)\n", iface, dpiX, dpiY);
462
464 This->dpix = dpiX;
465 This->dpiy = dpiY;
467
468 return S_OK;
469}

◆ BitmapLockImpl_AddRef()

static ULONG WINAPI BitmapLockImpl_AddRef ( IWICBitmapLock iface)
static

Definition at line 153 of file bitmap.c.

154{
157
158 TRACE("(%p) refcount=%u\n", iface, ref);
159
160 return ref;
161}
static BitmapLockImpl * impl_from_IWICBitmapLock(IWICBitmapLock *iface)
Definition: bitmap.c:90

◆ BitmapLockImpl_GetDataPointer()

static HRESULT WINAPI BitmapLockImpl_GetDataPointer ( IWICBitmapLock iface,
UINT pcbBufferSize,
BYTE **  ppbData 
)
static

Definition at line 209 of file bitmap.c.

211{
213 TRACE("(%p,%p,%p)\n", iface, pcbBufferSize, ppbData);
214
215 if (!pcbBufferSize || !ppbData)
216 return E_INVALIDARG;
217
218 *pcbBufferSize = This->parent->stride * (This->height - 1) +
219 ((This->parent->bpp * This->width) + 7)/8;
220 *ppbData = This->data;
221
222 return S_OK;
223}

◆ BitmapLockImpl_GetPixelFormat()

static HRESULT WINAPI BitmapLockImpl_GetPixelFormat ( IWICBitmapLock iface,
WICPixelFormatGUID pPixelFormat 
)
static

Definition at line 225 of file bitmap.c.

227{
229 TRACE("(%p,%p)\n", iface, pPixelFormat);
230
231 return IWICBitmap_GetPixelFormat(&This->parent->IWICBitmap_iface, pPixelFormat);
232}

◆ BitmapLockImpl_GetSize()

static HRESULT WINAPI BitmapLockImpl_GetSize ( IWICBitmapLock iface,
UINT puiWidth,
UINT puiHeight 
)
static

Definition at line 180 of file bitmap.c.

182{
184 TRACE("(%p,%p,%p)\n", iface, puiWidth, puiHeight);
185
186 if (!puiWidth || !puiHeight)
187 return E_INVALIDARG;
188
189 *puiWidth = This->width;
190 *puiHeight = This->height;
191
192 return S_OK;
193}

◆ BitmapLockImpl_GetStride()

static HRESULT WINAPI BitmapLockImpl_GetStride ( IWICBitmapLock iface,
UINT pcbStride 
)
static

Definition at line 195 of file bitmap.c.

197{
199 TRACE("(%p,%p)\n", iface, pcbStride);
200
201 if (!pcbStride)
202 return E_INVALIDARG;
203
204 *pcbStride = This->parent->stride;
205
206 return S_OK;
207}

◆ BitmapLockImpl_QueryInterface()

static HRESULT WINAPI BitmapLockImpl_QueryInterface ( IWICBitmapLock iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 129 of file bitmap.c.

131{
133 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
134
135 if (!ppv) return E_INVALIDARG;
136
137 if (IsEqualIID(&IID_IUnknown, iid) ||
138 IsEqualIID(&IID_IWICBitmapLock, iid))
139 {
140 *ppv = &This->IWICBitmapLock_iface;
141 }
142 else
143 {
144 FIXME("unknown interface %s\n", debugstr_guid(iid));
145 *ppv = NULL;
146 return E_NOINTERFACE;
147 }
148
149 IUnknown_AddRef((IUnknown*)*ppv);
150 return S_OK;
151}

◆ BitmapLockImpl_Release()

static ULONG WINAPI BitmapLockImpl_Release ( IWICBitmapLock iface)
static

Definition at line 163 of file bitmap.c.

164{
167
168 TRACE("(%p) refcount=%u\n", iface, ref);
169
170 if (ref == 0)
171 {
173 IWICBitmap_Release(&This->parent->IWICBitmap_iface);
175 }
176
177 return ref;
178}
static void BitmapImpl_ReleaseLock(BitmapImpl *This)
Definition: bitmap.c:114

◆ IMILBitmapImpl_AddDirtyRect()

static HRESULT WINAPI IMILBitmapImpl_AddDirtyRect ( IMILBitmap *  iface,
const WICRect rc 
)
static

Definition at line 633 of file bitmap.c.

634{
635 FIXME("(%p,%p): stub\n", iface, rc);
636 return E_NOTIMPL;
637}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IMILBitmapImpl_AddRef()

static ULONG WINAPI IMILBitmapImpl_AddRef ( IMILBitmap *  iface)
static

Definition at line 493 of file bitmap.c.

494{
496 return IWICBitmap_AddRef(&This->IWICBitmap_iface);
497}
static BitmapImpl * impl_from_IMILBitmap(IMILBitmap *iface)
Definition: bitmap.c:75

◆ IMILBitmapImpl_CopyPalette()

static HRESULT WINAPI IMILBitmapImpl_CopyPalette ( IMILBitmap *  iface,
IWICPalette palette 
)
static

Definition at line 575 of file bitmap.c.

577{
579 TRACE("(%p,%p)\n", iface, palette);
580 return IWICBitmap_CopyPalette(&This->IWICBitmap_iface, palette);
581}
static HPALETTE palette
Definition: clipboard.c:1345

◆ IMILBitmapImpl_CopyPixels()

static HRESULT WINAPI IMILBitmapImpl_CopyPixels ( IMILBitmap *  iface,
const WICRect rc,
UINT  stride,
UINT  size,
BYTE buffer 
)
static

Definition at line 583 of file bitmap.c.

585{
587 TRACE("(%p,%p,%u,%u,%p)\n", iface, rc, stride, size, buffer);
588 return IWICBitmap_CopyPixels(&This->IWICBitmap_iface, rc, stride, size, buffer);
589}
GLsizeiptr size
Definition: glext.h:5919
GLuint buffer
Definition: glext.h:5915

◆ IMILBitmapImpl_GetPixelFormat()

static HRESULT WINAPI IMILBitmapImpl_GetPixelFormat ( IMILBitmap *  iface,
int format 
)
static

Definition at line 542 of file bitmap.c.

544{
546 int i;
547
548 TRACE("(%p,%p)\n", iface, format);
549
550 if (!format) return E_INVALIDARG;
551
552 *format = 0;
553
554 for (i = 0; i < ARRAY_SIZE(pixel_fmt_map); i++)
555 {
556 if (IsEqualGUID(pixel_fmt_map[i].WIC_format, &This->pixelformat))
557 {
558 *format = pixel_fmt_map[i].enum_format;
559 break;
560 }
561 }
562
563 TRACE("=> %u\n", *format);
564 return S_OK;
565}
#define ARRAY_SIZE(A)
Definition: main.h:33
const GUID * WIC_format
Definition: bitmap.c:515
static const struct @589 pixel_fmt_map[]
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

◆ IMILBitmapImpl_GetResolution()

static HRESULT WINAPI IMILBitmapImpl_GetResolution ( IMILBitmap *  iface,
double dpix,
double dpiy 
)
static

Definition at line 567 of file bitmap.c.

569{
571 TRACE("(%p,%p,%p)\n", iface, dpix, dpiy);
572 return IWICBitmap_GetResolution(&This->IWICBitmap_iface, dpix, dpiy);
573}

◆ IMILBitmapImpl_GetSize()

static HRESULT WINAPI IMILBitmapImpl_GetSize ( IMILBitmap *  iface,
UINT width,
UINT height 
)
static

Definition at line 505 of file bitmap.c.

507{
509 TRACE("(%p,%p,%p)\n", iface, width, height);
510 return IWICBitmap_GetSize(&This->IWICBitmap_iface, width, height);
511}
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546

◆ IMILBitmapImpl_Lock()

static HRESULT WINAPI IMILBitmapImpl_Lock ( IMILBitmap *  iface,
const WICRect rc,
DWORD  flags,
IWICBitmapLock **  lock 
)
static

Definition at line 605 of file bitmap.c.

606{
608 TRACE("(%p,%p,%08x,%p)\n", iface, rc, flags, lock);
609 return IWICBitmap_Lock(&This->IWICBitmap_iface, rc, flags, lock);
610}
rwlock_t lock
Definition: tcpcore.h:0

◆ IMILBitmapImpl_QueryInterface()

static HRESULT WINAPI IMILBitmapImpl_QueryInterface ( IMILBitmap *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 485 of file bitmap.c.

487{
489 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
490 return IWICBitmap_QueryInterface(&This->IWICBitmap_iface, iid, ppv);
491}

◆ IMILBitmapImpl_Release()

static ULONG WINAPI IMILBitmapImpl_Release ( IMILBitmap *  iface)
static

Definition at line 499 of file bitmap.c.

500{
502 return IWICBitmap_Release(&This->IWICBitmap_iface);
503}

◆ IMILBitmapImpl_SetPalette()

static HRESULT WINAPI IMILBitmapImpl_SetPalette ( IMILBitmap *  iface,
IWICPalette palette 
)
static

Definition at line 619 of file bitmap.c.

620{
622 TRACE("(%p,%p)\n", iface, palette);
623 return IWICBitmap_SetPalette(&This->IWICBitmap_iface, palette);
624}

◆ IMILBitmapImpl_SetResolution()

static HRESULT WINAPI IMILBitmapImpl_SetResolution ( IMILBitmap *  iface,
double  dpix,
double  dpiy 
)
static

Definition at line 626 of file bitmap.c.

627{
629 TRACE("(%p,%f,%f)\n", iface, dpix, dpiy);
630 return IWICBitmap_SetResolution(&This->IWICBitmap_iface, dpix, dpiy);
631}

◆ IMILBitmapImpl_unknown1()

static HRESULT WINAPI IMILBitmapImpl_unknown1 ( IMILBitmap *  iface,
void **  ppv 
)
static

Definition at line 591 of file bitmap.c.

592{
594
595 TRACE("(%p,%p)\n", iface, ppv);
596
597 if (!ppv) return E_INVALIDARG;
598
599 /* reference count is not incremented here */
600 *ppv = &This->IMILUnknown1_iface;
601
602 return S_OK;
603}

◆ IMILBitmapImpl_Unlock()

static HRESULT WINAPI IMILBitmapImpl_Unlock ( IMILBitmap *  iface,
IWICBitmapLock lock 
)
static

Definition at line 612 of file bitmap.c.

613{
614 TRACE("(%p,%p)\n", iface, lock);
615 IWICBitmapLock_Release(lock);
616 return S_OK;
617}

◆ IMILUnknown1Impl_AddRef()

static ULONG WINAPI IMILUnknown1Impl_AddRef ( IMILUnknown1 iface)
static

Definition at line 666 of file bitmap.c.

667{
669 return IWICBitmap_AddRef(&This->IWICBitmap_iface);
670}
static BitmapImpl * impl_from_IMILUnknown1(IMILUnknown1 *iface)
Definition: bitmap.c:80

◆ IMILUnknown1Impl_QueryInterface()

static HRESULT WINAPI IMILUnknown1Impl_QueryInterface ( IMILUnknown1 iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 657 of file bitmap.c.

659{
660 /* It's not clear what interface should be returned here */
661 FIXME("(%p,%s,%p): stub\n", iface, debugstr_guid(iid), ppv);
662 *ppv = NULL;
663 return E_NOINTERFACE;
664}

◆ IMILUnknown1Impl_Release()

static ULONG WINAPI IMILUnknown1Impl_Release ( IMILUnknown1 iface)
static

Definition at line 672 of file bitmap.c.

673{
675 return IWICBitmap_Release(&This->IWICBitmap_iface);
676}

◆ IMILUnknown1Impl_unknown1()

DECLSPEC_HIDDEN void WINAPI IMILUnknown1Impl_unknown1 ( IMILUnknown1 iface,
void arg 
)

Definition at line 678 of file bitmap.c.

679{
680 FIXME("(%p,%p): stub\n", iface, arg);
681}

◆ IMILUnknown1Impl_unknown2()

static HRESULT WINAPI IMILUnknown1Impl_unknown2 ( IMILUnknown1 iface,
void arg1,
void arg2 
)
static

Definition at line 683 of file bitmap.c.

684{
685 FIXME("(%p,%p,%p): stub\n", iface, arg1, arg2);
686 return E_NOTIMPL;
687}
GLuint GLuint GLuint GLuint arg1
Definition: glext.h:9513
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: glext.h:9514

◆ IMILUnknown1Impl_unknown3()

DECLSPEC_HIDDEN HRESULT WINAPI IMILUnknown1Impl_unknown3 ( IMILUnknown1 iface,
void arg 
)

Definition at line 689 of file bitmap.c.

690{
691 FIXME("(%p,%p): stub\n", iface, arg);
692 return E_NOTIMPL;
693}

◆ IMILUnknown1Impl_unknown4()

static HRESULT WINAPI IMILUnknown1Impl_unknown4 ( IMILUnknown1 iface,
void arg 
)
static

Definition at line 695 of file bitmap.c.

696{
697 FIXME("(%p,%p): stub\n", iface, arg);
698 return E_NOTIMPL;
699}

◆ IMILUnknown1Impl_unknown5()

static HRESULT WINAPI IMILUnknown1Impl_unknown5 ( IMILUnknown1 iface,
void arg 
)
static

Definition at line 701 of file bitmap.c.

702{
703 FIXME("(%p,%p): stub\n", iface, arg);
704 return E_NOTIMPL;
705}

◆ IMILUnknown1Impl_unknown6()

static HRESULT WINAPI IMILUnknown1Impl_unknown6 ( IMILUnknown1 iface,
DWORD64  arg 
)
static

Definition at line 707 of file bitmap.c.

708{
709 FIXME("(%p,%s): stub\n", iface, wine_dbgstr_longlong(arg));
710 return E_NOTIMPL;
711}
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49

◆ IMILUnknown1Impl_unknown7()

static HRESULT WINAPI IMILUnknown1Impl_unknown7 ( IMILUnknown1 iface,
void arg 
)
static

Definition at line 713 of file bitmap.c.

714{
715 FIXME("(%p,%p): stub\n", iface, arg);
716 return E_NOTIMPL;
717}

◆ IMILUnknown1Impl_unknown8()

DECLSPEC_HIDDEN HRESULT WINAPI IMILUnknown1Impl_unknown8 ( IMILUnknown1 iface)

Definition at line 719 of file bitmap.c.

720{
721 FIXME("(%p): stub\n", iface);
722 return E_NOTIMPL;
723}

◆ IMILUnknown2Impl_AddRef()

static ULONG WINAPI IMILUnknown2Impl_AddRef ( IMILUnknown2 *  iface)
static

Definition at line 752 of file bitmap.c.

753{
754 FIXME("(%p): stub\n", iface);
755 return 0;
756}

◆ IMILUnknown2Impl_QueryInterface()

static HRESULT WINAPI IMILUnknown2Impl_QueryInterface ( IMILUnknown2 *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 744 of file bitmap.c.

746{
747 FIXME("(%p,%s,%p): stub\n", iface, debugstr_guid(iid), ppv);
748 *ppv = NULL;
749 return E_NOINTERFACE;
750}

◆ IMILUnknown2Impl_Release()

static ULONG WINAPI IMILUnknown2Impl_Release ( IMILUnknown2 *  iface)
static

Definition at line 758 of file bitmap.c.

759{
760 FIXME("(%p): stub\n", iface);
761 return 0;
762}

◆ IMILUnknown2Impl_unknown1()

static HRESULT WINAPI IMILUnknown2Impl_unknown1 ( IMILUnknown2 *  iface,
void arg1,
void **  arg2 
)
static

Definition at line 764 of file bitmap.c.

765{
766 FIXME("(%p,%p,%p): stub\n", iface, arg1, arg2);
767 if (arg2) *arg2 = NULL;
768 return E_NOTIMPL;
769}

◆ IMILUnknown2Impl_unknown2()

static HRESULT WINAPI IMILUnknown2Impl_unknown2 ( IMILUnknown2 *  iface,
void arg1,
void arg2 
)
static

Definition at line 771 of file bitmap.c.

772{
773 FIXME("(%p,%p,%p): stub\n", iface, arg1, arg2);
774 return E_NOTIMPL;
775}

◆ IMILUnknown2Impl_unknown3()

static HRESULT WINAPI IMILUnknown2Impl_unknown3 ( IMILUnknown2 *  iface,
void arg1 
)
static

Definition at line 777 of file bitmap.c.

778{
779 FIXME("(%p,%p): stub\n", iface, arg1);
780 return E_NOTIMPL;
781}

◆ impl_from_IMILBitmap()

◆ impl_from_IMILUnknown1()

static BitmapImpl * impl_from_IMILUnknown1 ( IMILUnknown1 iface)
inlinestatic

Definition at line 80 of file bitmap.c.

81{
82 return CONTAINING_RECORD(iface, BitmapImpl, IMILUnknown1_iface);
83}

Referenced by IMILUnknown1Impl_AddRef(), and IMILUnknown1Impl_Release().

◆ impl_from_IMILUnknown2()

static BitmapImpl * impl_from_IMILUnknown2 ( IMILUnknown2 *  iface)
inlinestatic

Definition at line 85 of file bitmap.c.

86{
87 return CONTAINING_RECORD(iface, BitmapImpl, IMILUnknown2_iface);
88}

◆ impl_from_IWICBitmap()

◆ impl_from_IWICBitmapLock()

static BitmapLockImpl * impl_from_IWICBitmapLock ( IWICBitmapLock iface)
inlinestatic

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wincodecs  )

Variable Documentation

◆ BitmapImpl_Vtbl

const IWICBitmapVtbl BitmapImpl_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI BitmapImpl_CopyPalette(IWICBitmap *iface, IWICPalette *pIPalette)
Definition: bitmap.c:352
static ULONG WINAPI BitmapImpl_AddRef(IWICBitmap *iface)
Definition: bitmap.c:274
static HRESULT WINAPI BitmapImpl_GetPixelFormat(IWICBitmap *iface, WICPixelFormatGUID *pPixelFormat)
Definition: bitmap.c:321
static HRESULT WINAPI BitmapImpl_QueryInterface(IWICBitmap *iface, REFIID iid, void **ppv)
Definition: bitmap.c:244
static HRESULT WINAPI BitmapImpl_Lock(IWICBitmap *iface, const WICRect *prcLock, DWORD flags, IWICBitmapLock **ppILock)
Definition: bitmap.c:374
static HRESULT WINAPI BitmapImpl_GetResolution(IWICBitmap *iface, double *pDpiX, double *pDpiY)
Definition: bitmap.c:335
static HRESULT WINAPI BitmapImpl_SetResolution(IWICBitmap *iface, double dpiX, double dpiY)
Definition: bitmap.c:457
static HRESULT WINAPI BitmapImpl_CopyPixels(IWICBitmap *iface, const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer)
Definition: bitmap.c:364
static ULONG WINAPI BitmapImpl_Release(IWICBitmap *iface)
Definition: bitmap.c:284
static HRESULT WINAPI BitmapImpl_GetSize(IWICBitmap *iface, UINT *puiWidth, UINT *puiHeight)
Definition: bitmap.c:306
static HRESULT WINAPI BitmapImpl_SetPalette(IWICBitmap *iface, IWICPalette *pIPalette)
Definition: bitmap.c:428

Definition at line 471 of file bitmap.c.

Referenced by BitmapImpl_Create().

◆ BitmapLockImpl_Vtbl

const IWICBitmapLockVtbl BitmapLockImpl_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI BitmapLockImpl_QueryInterface(IWICBitmapLock *iface, REFIID iid, void **ppv)
Definition: bitmap.c:129
static HRESULT WINAPI BitmapLockImpl_GetDataPointer(IWICBitmapLock *iface, UINT *pcbBufferSize, BYTE **ppbData)
Definition: bitmap.c:209
static ULONG WINAPI BitmapLockImpl_Release(IWICBitmapLock *iface)
Definition: bitmap.c:163
static HRESULT WINAPI BitmapLockImpl_GetStride(IWICBitmapLock *iface, UINT *pcbStride)
Definition: bitmap.c:195
static HRESULT WINAPI BitmapLockImpl_GetSize(IWICBitmapLock *iface, UINT *puiWidth, UINT *puiHeight)
Definition: bitmap.c:180
static HRESULT WINAPI BitmapLockImpl_GetPixelFormat(IWICBitmapLock *iface, WICPixelFormatGUID *pPixelFormat)
Definition: bitmap.c:225
static ULONG WINAPI BitmapLockImpl_AddRef(IWICBitmapLock *iface)
Definition: bitmap.c:153

Definition at line 234 of file bitmap.c.

Referenced by BitmapImpl_Lock().

◆ enum_format

int enum_format

Definition at line 516 of file bitmap.c.

◆ IMILBitmapImpl_Vtbl

const IMILBitmapVtbl IMILBitmapImpl_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI IMILBitmapImpl_QueryInterface(IMILBitmap *iface, REFIID iid, void **ppv)
Definition: bitmap.c:485
static HRESULT WINAPI IMILBitmapImpl_unknown1(IMILBitmap *iface, void **ppv)
Definition: bitmap.c:591
static HRESULT WINAPI IMILBitmapImpl_CopyPalette(IMILBitmap *iface, IWICPalette *palette)
Definition: bitmap.c:575
static HRESULT WINAPI IMILBitmapImpl_CopyPixels(IMILBitmap *iface, const WICRect *rc, UINT stride, UINT size, BYTE *buffer)
Definition: bitmap.c:583
static HRESULT WINAPI IMILBitmapImpl_SetPalette(IMILBitmap *iface, IWICPalette *palette)
Definition: bitmap.c:619
static HRESULT WINAPI IMILBitmapImpl_AddDirtyRect(IMILBitmap *iface, const WICRect *rc)
Definition: bitmap.c:633
static HRESULT WINAPI IMILBitmapImpl_GetPixelFormat(IMILBitmap *iface, int *format)
Definition: bitmap.c:542
static HRESULT WINAPI IMILBitmapImpl_GetResolution(IMILBitmap *iface, double *dpix, double *dpiy)
Definition: bitmap.c:567
static HRESULT WINAPI IMILBitmapImpl_GetSize(IMILBitmap *iface, UINT *width, UINT *height)
Definition: bitmap.c:505
static HRESULT WINAPI IMILBitmapImpl_Lock(IMILBitmap *iface, const WICRect *rc, DWORD flags, IWICBitmapLock **lock)
Definition: bitmap.c:605
static ULONG WINAPI IMILBitmapImpl_AddRef(IMILBitmap *iface)
Definition: bitmap.c:493
static HRESULT WINAPI IMILBitmapImpl_Unlock(IMILBitmap *iface, IWICBitmapLock *lock)
Definition: bitmap.c:612
static ULONG WINAPI IMILBitmapImpl_Release(IMILBitmap *iface)
Definition: bitmap.c:499
static HRESULT WINAPI IMILBitmapImpl_SetResolution(IMILBitmap *iface, double dpix, double dpiy)
Definition: bitmap.c:626

Definition at line 639 of file bitmap.c.

Referenced by BitmapImpl_Create().

◆ IMILUnknown1Impl_Vtbl

const IMILUnknown1Vtbl IMILUnknown1Impl_Vtbl
static
Initial value:
=
{
}
static ULONG WINAPI IMILUnknown1Impl_AddRef(IMILUnknown1 *iface)
Definition: bitmap.c:666
static HRESULT WINAPI IMILUnknown1Impl_unknown6(IMILUnknown1 *iface, DWORD64 arg)
Definition: bitmap.c:707
DECLSPEC_HIDDEN void WINAPI IMILUnknown1Impl_unknown1(IMILUnknown1 *iface, void *arg)
Definition: bitmap.c:678
static HRESULT WINAPI IMILUnknown1Impl_unknown7(IMILUnknown1 *iface, void *arg)
Definition: bitmap.c:713
static HRESULT WINAPI IMILUnknown1Impl_unknown2(IMILUnknown1 *iface, void *arg1, void *arg2)
Definition: bitmap.c:683
static ULONG WINAPI IMILUnknown1Impl_Release(IMILUnknown1 *iface)
Definition: bitmap.c:672
static HRESULT WINAPI IMILUnknown1Impl_QueryInterface(IMILUnknown1 *iface, REFIID iid, void **ppv)
Definition: bitmap.c:657
static HRESULT WINAPI IMILUnknown1Impl_unknown5(IMILUnknown1 *iface, void *arg)
Definition: bitmap.c:701
DECLSPEC_HIDDEN HRESULT WINAPI IMILUnknown1Impl_unknown3(IMILUnknown1 *iface, void *arg)
Definition: bitmap.c:689
static HRESULT WINAPI IMILUnknown1Impl_unknown4(IMILUnknown1 *iface, void *arg)
Definition: bitmap.c:695
#define THISCALL(func)
Definition: asm.h:145

Definition at line 729 of file bitmap.c.

Referenced by BitmapImpl_Create().

◆ IMILUnknown2Impl_Vtbl

const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI IMILUnknown2Impl_QueryInterface(IMILUnknown2 *iface, REFIID iid, void **ppv)
Definition: bitmap.c:744
static HRESULT WINAPI IMILUnknown2Impl_unknown1(IMILUnknown2 *iface, void *arg1, void **arg2)
Definition: bitmap.c:764
static ULONG WINAPI IMILUnknown2Impl_AddRef(IMILUnknown2 *iface)
Definition: bitmap.c:752
static ULONG WINAPI IMILUnknown2Impl_Release(IMILUnknown2 *iface)
Definition: bitmap.c:758
static HRESULT WINAPI IMILUnknown2Impl_unknown2(IMILUnknown2 *iface, void *arg1, void *arg2)
Definition: bitmap.c:771
static HRESULT WINAPI IMILUnknown2Impl_unknown3(IMILUnknown2 *iface, void *arg1)
Definition: bitmap.c:777

Definition at line 783 of file bitmap.c.

Referenced by BitmapImpl_Create().

◆ 

const struct { ... } pixel_fmt_map[]
Initial value:
=
{
{ &GUID_WICPixelFormatDontCare, 0 },
{ &GUID_WICPixelFormat1bppIndexed, 1 },
{ &GUID_WICPixelFormat2bppIndexed, 2 },
{ &GUID_WICPixelFormat4bppIndexed, 3 },
{ &GUID_WICPixelFormat8bppIndexed, 4 },
{ &GUID_WICPixelFormatBlackWhite, 5 },
{ &GUID_WICPixelFormat2bppGray, 6 },
{ &GUID_WICPixelFormat4bppGray, 7 },
{ &GUID_WICPixelFormat8bppGray, 8 },
{ &GUID_WICPixelFormat16bppBGR555, 9 },
{ &GUID_WICPixelFormat16bppBGR565, 0x0a },
{ &GUID_WICPixelFormat16bppGray, 0x0b },
{ &GUID_WICPixelFormat24bppBGR, 0x0c },
{ &GUID_WICPixelFormat24bppRGB, 0x0d },
{ &GUID_WICPixelFormat32bppBGR, 0x0e },
{ &GUID_WICPixelFormat32bppBGRA, 0x0f },
{ &GUID_WICPixelFormat32bppPBGRA, 0x10 },
{ &GUID_WICPixelFormat48bppRGB, 0x15 },
{ &GUID_WICPixelFormat64bppRGBA, 0x16 },
{ &GUID_WICPixelFormat64bppPRGBA, 0x17 },
{ &GUID_WICPixelFormat32bppCMYK, 0x1c }
}

Referenced by IMILBitmapImpl_GetPixelFormat().

◆ WIC_format

const GUID* WIC_format

Definition at line 515 of file bitmap.c.

Referenced by IMILBitmapImpl_GetPixelFormat().