IWICBitmapDecoder interface (wincodec.h)

Exposes methods that represent a decoder.

The interface provides access to the decoder's properties such as global thumbnails (if supported), frames, and palette.


The IWICBitmapDecoder interface inherits from the IUnknown interface. IWICBitmapDecoder also has these types of members:


The IWICBitmapDecoder interface has these methods.

Method Description
IWICBitmapDecoder::CopyPalette Copies the decoder's IWICPalette .
IWICBitmapDecoder::GetColorContexts Retrieves the IWICColorContext objects of the image.
IWICBitmapDecoder::GetContainerFormat Retrieves the image's container format.
IWICBitmapDecoder::GetDecoderInfo Retrieves an IWICBitmapDecoderInfo for the image.
IWICBitmapDecoder::GetFrame Retrieves the specified frame of the image.
IWICBitmapDecoder::GetFrameCount Retrieves the total number of frames in the image.
IWICBitmapDecoder::GetMetadataQueryReader Retrieves the metadata query reader from the decoder.
IWICBitmapDecoder::GetPreview Retrieves a preview image, if supported.
IWICBitmapDecoder::GetThumbnail Retrieves a bitmap thumbnail of the image, if one exists
IWICBitmapDecoder::Initialize Initializes the decoder with the provided stream.
IWICBitmapDecoder::QueryCapability Retrieves the capabilities of the decoder based on the specified stream.


There are a number of concrete implemenations of this interface representing each of the standard decoders provided by the platform including bitmap (BMP), Portable Network Graphics (PNG), icon (ICO), Joint Photographic Experts Group (JPEG), Graphics Interchange Format (GIF), Tagged Image File Format (TIFF), and Microsoft Windows Digital Photo (WDP). The following table includes the class identifier (CLSID) for each native decoder.

CLSID_WICBmpDecoder 0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78
CLSID_WICGifDecoder 0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe
CLSID_WICHeifDecoder 0xe9a4a80a, 0x44fe, 0x4de4, 0x89, 0x71, 0x71, 0x50, 0xb1, 0x0a, 0x51, 0x99
CLSID_WICIcoDecoder 0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe
CLSID_WICJpegDecoder 0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca
CLSID_WICPngDecoder 0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51
CLSID_WICTiffDecoder 0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b
CLSID_WICWebpDecoder 0x7693e886, 0x51c9, 0x4070, 0x84, 0x19, 0x9f, 0x70, 0X73, 0X8e, 0Xc8, 0Xfa
CLSID_WICWmpDecoder 0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d

This interface may be sub-classed to provide support for third party codecs as part of the extensibility model. See the AITCodec Sample CODEC.

Codecs written as TIFF container formats that are not register will decode as a TIFF image. Client applications should check for a zero frame count to determine if the codec is valid.

CLSID_WICHeifDecoder operates on HEIF (High Efficiency Image Format) images.


Minimum supported client Windows XP with SP2, Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header wincodec.h

See also

AITCodec Sample CODEC


How to Write a WIC-Enabled CODEC

Other Resources


Windows Imaging Component Overview