33#include "wine/rbtree.h"
62 *actual_size = cbdata/
sizeof(
WCHAR);
78 WCHAR guid_string[39];
79 DWORD cbdata =
sizeof(guid_string);
86 guid_string, &cbdata);
91 if (cbdata <
sizeof(guid_string))
93 ERR(
"incomplete GUID value\n");
129 WCHAR guid_string[39];
130 DWORD guid_string_size;
147 guid_string_size = 39;
148 while (items_returned < buffersize)
159 if (guid_string_size != 38)
170 guid_string_size = 39;
176 *actual_size = items_returned;
180 ret =
RegQueryInfoKeyW(subkey,
NULL,
NULL,
NULL, (
DWORD *)actual_size,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
216 *
ppv = &
This->base.IWICComponentInfo_iface;
233 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
243 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
258 TRACE(
"(%p,%p)\n", iface, pType);
267 TRACE(
"(%p,%p)\n", iface, pclsid);
272 *pclsid =
This->base.clsid;
287 TRACE(
"(%p,%u,%p,%p)\n", iface, cchAuthor, wzAuthor, pcchActual);
296 TRACE(
"(%p,%p)\n", iface, pguidVendor);
306 TRACE(
"(%p,%u,%p,%p)\n", iface, cchVersion, wzVersion, pcchActual);
309 cchVersion, wzVersion, pcchActual);
317 TRACE(
"(%p,%u,%p,%p)\n", iface, cchSpecVersion, wzSpecVersion, pcchActual);
320 cchSpecVersion, wzSpecVersion, pcchActual);
328 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFriendlyName, wzFriendlyName, pcchActual);
331 cchFriendlyName, wzFriendlyName, pcchActual);
335 GUID *pguidContainerFormat)
338 TRACE(
"(%p,%p)\n", iface, pguidContainerFormat);
346 TRACE(
"(%p,%u,%p,%p)\n", iface, cFormats, pguidPixelFormats, pcActual);
351 UINT cchColorManagementVersion,
WCHAR *wzColorManagementVersion,
UINT *pcchActual)
353 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchColorManagementVersion, wzColorManagementVersion, pcchActual);
358 UINT cchDeviceManufacturer,
WCHAR *wzDeviceManufacturer,
UINT *pcchActual)
360 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchDeviceManufacturer, wzDeviceManufacturer, pcchActual);
365 UINT cchDeviceModels,
WCHAR *wzDeviceModels,
UINT *pcchActual)
367 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchDeviceModels, wzDeviceModels, pcchActual);
376 TRACE(
"(%p,%u,%p,%p)\n", iface, cchMimeTypes, wzMimeTypes, pcchActual);
379 cchMimeTypes, wzMimeTypes, pcchActual);
383 UINT cchFileExtensions,
WCHAR *wzFileExtensions,
UINT *pcchActual)
387 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFileExtensions, wzFileExtensions, pcchActual);
390 cchFileExtensions, wzFileExtensions, pcchActual);
394 BOOL *pfSupportAnimation)
396 FIXME(
"(%p,%p): stub\n", iface, pfSupportAnimation);
401 BOOL *pfSupportChromaKey)
403 FIXME(
"(%p,%p): stub\n", iface, pfSupportChromaKey);
408 BOOL *pfSupportLossless)
410 FIXME(
"(%p,%p): stub\n", iface, pfSupportLossless);
415 BOOL *pfSupportMultiframe)
417 FIXME(
"(%p,%p): stub\n", iface, pfSupportMultiframe);
433 TRACE(
"(%p,%i,%p,%p,%p)\n", iface, cbSizePatterns, pPatterns, pcPatterns, pcbPatternsActual);
435 if (!pcPatterns || !pcbPatternsActual)
return E_INVALIDARG;
437 *pcPatterns =
This->pattern_count;
438 *pcbPatternsActual =
This->patterns_size;
441 if (
This->patterns_size && cbSizePatterns < This->patterns_size)
460 TRACE(
"(%p,%p,%p)\n", iface, pIStream, pfMatches);
462 for (
i=0;
i <
This->pattern_count;
i++)
464 if (datasize < This->patterns[
i].
Length)
476 if (
This->patterns[
i].EndOfStream)
480 hr = IStream_Seek(pIStream, seekpos,
This->patterns[
i].EndOfStream ? STREAM_SEEK_END : STREAM_SEEK_SET,
NULL);
484 hr = IStream_Read(pIStream,
data,
This->patterns[
i].Length, &bytesread);
494 if (
pos ==
This->patterns[
i].Length)
502 if (
i ==
This->pattern_count)
517 TRACE(
"(%p,%p)\n", iface, ppIBitmapDecoder);
519 return create_instance(&
This->base.clsid, &IID_IWICBitmapDecoder, (
void**)ppIBitmapDecoder);
553 DWORD pattern_count=0;
554 UINT patterns_size=0;
555 WCHAR subkeyname[11];
557 HKEY patternskey, patternkey;
566 res =
RegQueryInfoKeyW(patternskey,
NULL,
NULL,
NULL, &pattern_count,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
574 patterns =
malloc(patterns_size);
587 valuesize =
sizeof(
ULONG);
591 patterns_size +=
length*2;
594 valuesize =
sizeof(
BOOL);
596 &patterns[
i].EndOfStream, &valuesize);
615 patterns_ptr += pattern_count *
sizeof(*patterns);
627 patterns[
i].Pattern, &valuesize);
632 patterns[
i].
Mask = patterns_ptr;
635 patterns[
i].
Mask, &valuesize);
650 info->pattern_count = pattern_count;
651 info->patterns_size = patterns_size;
652 info->patterns = patterns;
668 This->classkey = classkey;
700 *
ppv = &
This->base.IWICComponentInfo_iface;
717 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
727 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
741 TRACE(
"(%p,%p)\n", iface, pType);
750 TRACE(
"(%p,%p)\n", iface, pclsid);
755 *pclsid =
This->base.clsid;
770 TRACE(
"(%p,%u,%p,%p)\n", iface, cchAuthor, wzAuthor, pcchActual);
779 TRACE(
"(%p,%p)\n", iface, pguidVendor);
789 TRACE(
"(%p,%u,%p,%p)\n", iface, cchVersion, wzVersion, pcchActual);
792 cchVersion, wzVersion, pcchActual);
800 TRACE(
"(%p,%u,%p,%p)\n", iface, cchSpecVersion, wzSpecVersion, pcchActual);
803 cchSpecVersion, wzSpecVersion, pcchActual);
811 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFriendlyName, wzFriendlyName, pcchActual);
814 cchFriendlyName, wzFriendlyName, pcchActual);
818 GUID *pguidContainerFormat)
821 TRACE(
"(%p,%p)\n", iface, pguidContainerFormat);
829 TRACE(
"(%p,%u,%p,%p)\n", iface, cFormats, pguidPixelFormats, pcActual);
834 UINT cchColorManagementVersion,
WCHAR *wzColorManagementVersion,
UINT *pcchActual)
836 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchColorManagementVersion, wzColorManagementVersion, pcchActual);
841 UINT cchDeviceManufacturer,
WCHAR *wzDeviceManufacturer,
UINT *pcchActual)
843 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchDeviceManufacturer, wzDeviceManufacturer, pcchActual);
848 UINT cchDeviceModels,
WCHAR *wzDeviceModels,
UINT *pcchActual)
850 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cchDeviceModels, wzDeviceModels, pcchActual);
859 TRACE(
"(%p,%u,%p,%p)\n", iface, cchMimeTypes, wzMimeTypes, pcchActual);
862 cchMimeTypes, wzMimeTypes, pcchActual);
866 UINT cchFileExtensions,
WCHAR *wzFileExtensions,
UINT *pcchActual)
870 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFileExtensions, wzFileExtensions, pcchActual);
873 cchFileExtensions, wzFileExtensions, pcchActual);
877 BOOL *pfSupportAnimation)
879 FIXME(
"(%p,%p): stub\n", iface, pfSupportAnimation);
884 BOOL *pfSupportChromaKey)
886 FIXME(
"(%p,%p): stub\n", iface, pfSupportChromaKey);
891 BOOL *pfSupportLossless)
893 FIXME(
"(%p,%p): stub\n", iface, pfSupportLossless);
898 BOOL *pfSupportMultiframe)
900 FIXME(
"(%p,%p): stub\n", iface, pfSupportMultiframe);
916 TRACE(
"(%p,%p)\n", iface, ppIBitmapEncoder);
918 return create_instance(&
This->base.clsid, &IID_IWICBitmapEncoder, (
void**)ppIBitmapEncoder);
961 This->classkey = classkey;
988 IsEqualIID(&IID_IWICFormatConverterInfo ,iid))
990 *
ppv = &
This->base.IWICComponentInfo_iface;
1007 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1017 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1031 TRACE(
"(%p,%p)\n", iface, pType);
1040 TRACE(
"(%p,%p)\n", iface, pclsid);
1045 *pclsid =
This->base.clsid;
1060 TRACE(
"(%p,%u,%p,%p)\n", iface, cchAuthor, wzAuthor, pcchActual);
1069 TRACE(
"(%p,%p)\n", iface, pguidVendor);
1079 TRACE(
"(%p,%u,%p,%p)\n", iface, cchVersion, wzVersion, pcchActual);
1082 cchVersion, wzVersion, pcchActual);
1090 TRACE(
"(%p,%u,%p,%p)\n", iface, cchSpecVersion, wzSpecVersion, pcchActual);
1093 cchSpecVersion, wzSpecVersion, pcchActual);
1097 WCHAR *wzFriendlyName,
UINT *pcchActual)
1101 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFriendlyName, wzFriendlyName, pcchActual);
1104 cchFriendlyName, wzFriendlyName, pcchActual);
1108 UINT cFormats,
GUID *pguidPixelFormats,
UINT *pcActual)
1110 FIXME(
"(%p,%u,%p,%p): stub\n", iface, cFormats, pguidPixelFormats, pcActual);
1119 TRACE(
"(%p,%p)\n", iface, ppIFormatConverter);
1122 (
void**)ppIFormatConverter);
1129 HKEY formats_key, guid_key;
1174 This->classkey = classkey;
1204 *
ppv = &
This->base.IWICComponentInfo_iface;
1221 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1231 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1245 TRACE(
"(%p,%p)\n", iface, pType);
1254 TRACE(
"(%p,%p)\n", iface, pclsid);
1259 *pclsid =
This->base.clsid;
1281 TRACE(
"(%p,%u,%p,%p)\n", iface, cchAuthor, wzAuthor, pcchActual);
1290 TRACE(
"(%p,%p)\n", iface, pguidVendor);
1300 TRACE(
"(%p,%u,%p,%p)\n", iface, cchVersion, wzVersion, pcchActual);
1303 cchVersion, wzVersion, pcchActual);
1311 TRACE(
"(%p,%u,%p,%p)\n", iface, cchSpecVersion, wzSpecVersion, pcchActual);
1314 cchSpecVersion, wzSpecVersion, pcchActual);
1318 WCHAR *wzFriendlyName,
UINT *pcchActual)
1322 TRACE(
"(%p,%u,%p,%p)\n", iface, cchFriendlyName, wzFriendlyName, pcchActual);
1325 cchFriendlyName, wzFriendlyName, pcchActual);
1332 TRACE(
"(%p,%p)\n", iface, pFormat);
1337 *pFormat =
This->base.clsid;
1344 FIXME(
"(%p,%p): stub\n", iface, ppIColorContext);
1349 UINT *puiBitsPerPixel)
1353 TRACE(
"(%p,%p)\n", iface, puiBitsPerPixel);
1359 UINT *puiChannelCount)
1363 TRACE(
"(%p,%p)\n", iface, puiChannelCount);
1369 UINT uiChannelIndex,
UINT cbMaskBuffer,
BYTE *pbMaskBuffer,
UINT *pcbActual)
1375 WCHAR valuename[11];
1378 TRACE(
"(%p,%u,%u,%p,%p)\n", iface, uiChannelIndex, cbMaskBuffer, pbMaskBuffer, pcbActual);
1385 if (
SUCCEEDED(
hr) && uiChannelIndex >= channel_count)
1390 swprintf(valuename, 11,
L"%u", uiChannelIndex);
1392 cbData = cbMaskBuffer;
1397 *pcbActual = cbData;
1409 BOOL *pfSupportsTransparency)
1413 TRACE(
"(%p,%p)\n", iface, pfSupportsTransparency);
1423 TRACE(
"(%p,%p)\n", iface, pNumericRepresentation);
1462 This->classkey = classkey;
1489 for (
i = 0;
i <
info->container_count;
i++)
1491 return info->containers +
i;
1515 *
ppv = &
This->base.IWICComponentInfo_iface;
1532 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1541 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
1547 for (
i = 0;
i <
This->container_count;
i++)
1590 TRACE(
"(%p,%u,%p,%p)\n", iface,
length, author, actual_length);
1655 *actual_length =
This->container_count;
1658 if (
This->container_count && length < This->container_count)
1668 FIXME(
"(%p,%u,%p,%p): stub\n", iface,
length, manufacturer, actual_length);
1675 FIXME(
"(%p,%u,%p,%p): stub\n", iface,
length, models, actual_length);
1708 TRACE(
"(%p,%s,%u,%p,%p,%p)\n", iface,
debugstr_guid(container_guid),
length,
patterns,
count, actual_length);
1710 if (!actual_length || !container_guid)
return E_INVALIDARG;
1716 *actual_length =
container->patterns_size;
1759 hr = IStream_Seek(
stream, seekpos, STREAM_SEEK_SET,
NULL);
1830 WCHAR subkeyname[11], guidkeyname[39];
1832 HKEY containers_key, guid_key, patternkey;
1956 info->container_count = format_count;
1962 info->containers =
calloc(format_count,
sizeof(*
info->containers));
1965 for (
i = 0;
i < format_count;
i++)
1985 This->classkey = classkey;
1990 IWICComponentInfo_Release(&
This->base.IWICComponentInfo_iface);
2026 0, 0, { (
DWORD_PTR)(__FILE__
": component_info_cache") }
2038 WCHAR guidstring[39];
2050 IWICComponentInfo_AddRef(*ppIInfo = &
info->IWICComponentInfo_iface);
2104 IWICComponentInfo_AddRef(*ppIInfo = &
info->IWICComponentInfo_iface);
2114 IWICComponentInfo_Release(&
info->IWICComponentInfo_iface);
2125 hr = IWICComponentInfo_QueryInterface(compinfo, &IID_IWICBitmapDecoderInfo,
2128 IWICComponentInfo_Release(compinfo);
2164 *
ppv = &
This->IEnumUnknown_iface;
2181 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
2192 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
2198 IUnknown_Release(
cursor->unk);
2202 This->lock.DebugInfo->Spare[0] = 0;
2214 ULONG num_fetched=0;
2218 TRACE(
"(%p,%lu,%p,%p)\n", iface, celt, rgelt, pceltFetched);
2221 while (num_fetched<celt)
2229 IUnknown_AddRef(
item->unk);
2230 rgelt[num_fetched] =
item->unk;
2236 *pceltFetched = num_fetched;
2246 TRACE(
"(%p,%lu)\n", iface, celt);
2249 for (
i=0;
i<celt;
i++)
2266 TRACE(
"(%p)\n", iface);
2280 struct list *old_cursor;
2301 old_cursor =
This->cursor;
2312 new_item->
unk = old_item->
unk;
2314 IUnknown_AddRef(new_item->
unk);
2344 HKEY clsidkey, catidkey, instancekey;
2345 WCHAR guidstring[39];
2372 This->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": ComponentEnum.lock");
2387 DWORD guidstring_size = 39;
2419 IEnumUnknown_Reset(&
This->IEnumUnknown_iface);
2420 *ppIEnumUnknown = &
This->IEnumUnknown_iface;
2424 *ppIEnumUnknown =
NULL;
2425 IEnumUnknown_Release(&
This->IEnumUnknown_iface);
2445 WCHAR srcformatstr[39], dstformatstr[39];
2451 res = IWICBitmapSource_GetPixelFormat(pISrc, &srcFormat);
2456 IWICBitmapSource_AddRef(pISrc);
2469 res = IEnumUnknown_Next(enumconverters, 1, &unkconverterinfo, &num_fetched);
2473 res = IUnknown_QueryInterface(unkconverterinfo, &IID_IWICFormatConverterInfo, (
void**)&converterinfo);
2484 res = IWICFormatConverterInfo_CreateInstance(converterinfo, &converter);
2487 res = IWICFormatConverter_CanConvert(converter, &srcFormat, dstFormat, &canconvert);
2497 IWICFormatConverter_Release(converter);
2503 IWICFormatConverterInfo_Release(converterinfo);
2506 IUnknown_Release(unkconverterinfo);
2512 IEnumUnknown_Release(enumconverters);
2516 res = IWICFormatConverter_QueryInterface(converter, &IID_IWICBitmapSource, (
void **)ppIDst);
2517 IWICFormatConverter_Release(converter);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define RegCloseKey(hKey)
HRESULT create_instance(const CLSID *clsid, const IID *iid, void **ppv)
static const struct pixel_format_desc formats[]
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define ERROR_NO_MORE_ITEMS
static const WCHAR version[]
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
#define RRF_RT_REG_BINARY
static HRESULT WINAPI MetadataReaderInfo_GetDeviceManufacturer(IWICMetadataReaderInfo *iface, UINT length, WCHAR *manufacturer, UINT *actual_length)
static HRESULT WINAPI BitmapEncoderInfo_GetAuthor(IWICBitmapEncoderInfo *iface, UINT cchAuthor, WCHAR *wzAuthor, UINT *pcchActual)
static HRESULT WINAPI BitmapDecoderInfo_DoesSupportLossless(IWICBitmapDecoderInfo *iface, BOOL *pfSupportLossless)
static HRESULT WINAPI PixelFormatInfo_QueryInterface(IWICPixelFormatInfo2 *iface, REFIID iid, void **ppv)
static HRESULT WINAPI MetadataReaderInfo_GetMetadataFormat(IWICMetadataReaderInfo *iface, GUID *format)
static HRESULT WINAPI BitmapDecoderInfo_GetFriendlyName(IWICBitmapDecoderInfo *iface, UINT cchFriendlyName, WCHAR *wzFriendlyName, UINT *pcchActual)
static struct wine_rb_tree component_info_cache
static HRESULT WINAPI BitmapEncoderInfo_GetDeviceManufacturer(IWICBitmapEncoderInfo *iface, UINT cchDeviceManufacturer, WCHAR *wzDeviceManufacturer, UINT *pcchActual)
static HRESULT WINAPI BitmapEncoderInfo_DoesSupportLossless(IWICBitmapEncoderInfo *iface, BOOL *pfSupportLossless)
static HRESULT WINAPI BitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo *iface, REFIID iid, void **ppv)
static HRESULT WINAPI FormatConverterInfo_GetComponentType(IWICFormatConverterInfo *iface, WICComponentType *pType)
static HRESULT WINAPI BitmapDecoderInfo_GetFileExtensions(IWICBitmapDecoderInfo *iface, UINT cchFileExtensions, WCHAR *wzFileExtensions, UINT *pcchActual)
static HRESULT ComponentInfo_GetGUIDValue(HKEY classkey, LPCWSTR value, GUID *result)
static HRESULT WINAPI MetadataReaderInfo_GetFriendlyName(IWICMetadataReaderInfo *iface, UINT length, WCHAR *name, UINT *actual_length)
static HRESULT PixelFormatInfo_Constructor(HKEY classkey, REFCLSID clsid, ComponentInfo **ret)
static HRESULT WINAPI BitmapDecoderInfo_GetDeviceModels(IWICBitmapDecoderInfo *iface, UINT cchDeviceModels, WCHAR *wzDeviceModels, UINT *pcchActual)
static HRESULT WINAPI ComponentEnum_Skip(IEnumUnknown *iface, ULONG celt)
static HRESULT WINAPI BitmapEncoderInfo_GetFileExtensions(IWICBitmapEncoderInfo *iface, UINT cchFileExtensions, WCHAR *wzFileExtensions, UINT *pcchActual)
static HRESULT WINAPI PixelFormatInfo_GetFriendlyName(IWICPixelFormatInfo2 *iface, UINT cchFriendlyName, WCHAR *wzFriendlyName, UINT *pcchActual)
static HRESULT WINAPI MetadataReaderInfo_GetVersion(IWICMetadataReaderInfo *iface, UINT length, WCHAR *version, UINT *actual_length)
static HRESULT MetadataReaderInfo_Constructor(HKEY classkey, REFCLSID clsid, ComponentInfo **info)
static HRESULT WINAPI BitmapDecoderInfo_GetColorManagementVersion(IWICBitmapDecoderInfo *iface, UINT cchColorManagementVersion, WCHAR *wzColorManagementVersion, UINT *pcchActual)
static ULONG WINAPI BitmapEncoderInfo_Release(IWICBitmapEncoderInfo *iface)
static BOOL read_metadata_info(MetadataReaderInfo *info)
HRESULT CreateComponentInfo(REFCLSID clsid, IWICComponentInfo **ppIInfo)
static HRESULT ComponentInfo_GetUINTValue(HKEY classkey, LPCWSTR value, void *result)
static HRESULT WINAPI BitmapDecoderInfo_GetAuthor(IWICBitmapDecoderInfo *iface, UINT cchAuthor, WCHAR *wzAuthor, UINT *pcchActual)
static HRESULT WINAPI PixelFormatInfo_SupportsTransparency(IWICPixelFormatInfo2 *iface, BOOL *pfSupportsTransparency)
static HRESULT WINAPI MetadataReaderInfo_GetContainerFormats(IWICMetadataReaderInfo *iface, UINT length, GUID *formats, UINT *actual_length)
static HRESULT WINAPI ComponentEnum_QueryInterface(IEnumUnknown *iface, REFIID iid, void **ppv)
static HRESULT WINAPI PixelFormatInfo_GetComponentType(IWICPixelFormatInfo2 *iface, WICComponentType *pType)
static ULONG WINAPI ComponentEnum_AddRef(IEnumUnknown *iface)
static HRESULT WINAPI ComponentEnum_Reset(IEnumUnknown *iface)
static HRESULT WINAPI BitmapEncoderInfo_DoesSupportAnimation(IWICBitmapEncoderInfo *iface, BOOL *pfSupportAnimation)
static HRESULT WINAPI PixelFormatInfo_GetChannelCount(IWICPixelFormatInfo2 *iface, UINT *puiChannelCount)
static ComponentEnum * impl_from_IEnumUnknown(IEnumUnknown *iface)
static HRESULT WINAPI BitmapDecoderInfo_GetCLSID(IWICBitmapDecoderInfo *iface, CLSID *pclsid)
static HRESULT WINAPI BitmapEncoderInfo_GetFriendlyName(IWICBitmapEncoderInfo *iface, UINT cchFriendlyName, WCHAR *wzFriendlyName, UINT *pcchActual)
static HRESULT WINAPI BitmapDecoderInfo_GetSpecVersion(IWICBitmapDecoderInfo *iface, UINT cchSpecVersion, WCHAR *wzSpecVersion, UINT *pcchActual)
static HRESULT WINAPI BitmapDecoderInfo_GetVendorGUID(IWICBitmapDecoderInfo *iface, GUID *pguidVendor)
static ULONG WINAPI BitmapDecoderInfo_AddRef(IWICBitmapDecoderInfo *iface)
static HRESULT WINAPI MetadataReaderInfo_DoesRequireFixedSize(IWICMetadataReaderInfo *iface, BOOL *param)
static HRESULT WINAPI MetadataReaderInfo_DoesRequireFullStream(IWICMetadataReaderInfo *iface, BOOL *param)
static HRESULT WINAPI BitmapEncoderInfo_CreateInstance(IWICBitmapEncoderInfo *iface, IWICBitmapEncoder **ppIBitmapEncoder)
static HRESULT WINAPI BitmapEncoderInfo_DoesSupportChromaKey(IWICBitmapEncoderInfo *iface, BOOL *pfSupportChromaKey)
HRESULT get_decoder_info(REFCLSID clsid, IWICBitmapDecoderInfo **info)
static HRESULT WINAPI BitmapDecoderInfo_GetComponentType(IWICBitmapDecoderInfo *iface, WICComponentType *pType)
static HRESULT WINAPI MetadataReaderInfo_GetDeviceModels(IWICMetadataReaderInfo *iface, UINT length, WCHAR *models, UINT *actual_length)
static HRESULT WINAPI BitmapEncoderInfo_GetSpecVersion(IWICBitmapEncoderInfo *iface, UINT cchSpecVersion, WCHAR *wzSpecVersion, UINT *pcchActual)
static HRESULT WINAPI BitmapEncoderInfo_DoesSupportMultiframe(IWICBitmapEncoderInfo *iface, BOOL *pfSupportMultiframe)
static ULONG WINAPI ComponentEnum_Release(IEnumUnknown *iface)
static struct metadata_container * get_metadata_container(MetadataReaderInfo *info, const GUID *guid)
static HRESULT WINAPI PixelFormatInfo_GetColorContext(IWICPixelFormatInfo2 *iface, IWICColorContext **ppIColorContext)
static BOOL ConverterSupportsFormat(IWICFormatConverterInfo *iface, const WCHAR *formatguid)
static HRESULT ComponentInfo_GetStringValue(HKEY classkey, LPCWSTR value, UINT buffer_size, WCHAR *buffer, UINT *actual_size)
static ULONG WINAPI BitmapDecoderInfo_Release(IWICBitmapDecoderInfo *iface)
static HRESULT WINAPI MetadataReaderInfo_MatchesPattern(IWICMetadataReaderInfo *iface, REFGUID container_guid, IStream *stream, BOOL *matches)
static const IWICPixelFormatInfo2Vtbl PixelFormatInfo_Vtbl
static BOOL is_1bpp_format(const WICPixelFormatGUID *format)
static HRESULT WINAPI PixelFormatInfo_GetBitsPerPixel(IWICPixelFormatInfo2 *iface, UINT *puiBitsPerPixel)
static BitmapDecoderInfo * impl_from_IWICBitmapDecoderInfo(IWICBitmapDecoderInfo *iface)
static HRESULT WINAPI BitmapEncoderInfo_GetColorManagementVersion(IWICBitmapEncoderInfo *iface, UINT cchColorManagementVersion, WCHAR *wzColorManagementVersion, UINT *pcchActual)
static HRESULT WINAPI PixelFormatInfo_GetNumericRepresentation(IWICPixelFormatInfo2 *iface, WICPixelFormatNumericRepresentation *pNumericRepresentation)
static HRESULT WINAPI FormatConverterInfo_GetVendorGUID(IWICFormatConverterInfo *iface, GUID *pguidVendor)
static ULONG WINAPI BitmapEncoderInfo_AddRef(IWICBitmapEncoderInfo *iface)
static HRESULT WINAPI BitmapEncoderInfo_GetPixelFormats(IWICBitmapEncoderInfo *iface, UINT cFormats, GUID *pguidPixelFormats, UINT *pcActual)
static HRESULT WINAPI BitmapDecoderInfo_GetMimeTypes(IWICBitmapDecoderInfo *iface, UINT cchMimeTypes, WCHAR *wzMimeTypes, UINT *pcchActual)
static const IWICMetadataReaderInfoVtbl MetadataReaderInfo_Vtbl
static HRESULT WINAPI FormatConverterInfo_GetFriendlyName(IWICFormatConverterInfo *iface, UINT cchFriendlyName, WCHAR *wzFriendlyName, UINT *pcchActual)
static ULONG WINAPI FormatConverterInfo_Release(IWICFormatConverterInfo *iface)
static const IWICFormatConverterInfoVtbl FormatConverterInfo_Vtbl
static HRESULT BitmapEncoderInfo_Constructor(HKEY classkey, REFCLSID clsid, ComponentInfo **ret)
static HRESULT WINAPI PixelFormatInfo_GetVendorGUID(IWICPixelFormatInfo2 *iface, GUID *pguidVendor)
static HRESULT WINAPI PixelFormatInfo_GetCLSID(IWICPixelFormatInfo2 *iface, CLSID *pclsid)
static HRESULT WINAPI PixelFormatInfo_GetChannelMask(IWICPixelFormatInfo2 *iface, UINT uiChannelIndex, UINT cbMaskBuffer, BYTE *pbMaskBuffer, UINT *pcbActual)
static HRESULT FormatConverterInfo_Constructor(HKEY classkey, REFCLSID clsid, ComponentInfo **ret)
static HRESULT WINAPI BitmapEncoderInfo_GetDeviceModels(IWICBitmapEncoderInfo *iface, UINT cchDeviceModels, WCHAR *wzDeviceModels, UINT *pcchActual)
static HRESULT WINAPI MetadataReaderInfo_GetSpecVersion(IWICMetadataReaderInfo *iface, UINT length, WCHAR *version, UINT *actual_length)
static BitmapEncoderInfo * impl_from_IWICBitmapEncoderInfo(IWICBitmapEncoderInfo *iface)
static ULONG WINAPI PixelFormatInfo_Release(IWICPixelFormatInfo2 *iface)
static HRESULT WINAPI MetadataReaderInfo_GetAuthor(IWICMetadataReaderInfo *iface, UINT length, WCHAR *author, UINT *actual_length)
static HRESULT WINAPI BitmapDecoderInfo_DoesSupportAnimation(IWICBitmapDecoderInfo *iface, BOOL *pfSupportAnimation)
static CRITICAL_SECTION component_info_cache_cs
static HRESULT WINAPI BitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo *iface, REFIID iid, void **ppv)
static ULONG WINAPI FormatConverterInfo_AddRef(IWICFormatConverterInfo *iface)
static void read_metadata_patterns(MetadataReaderInfo *info, GUID *container_guid, struct metadata_container *container)
static HRESULT WINAPI PixelFormatInfo_GetVersion(IWICPixelFormatInfo2 *iface, UINT cchVersion, WCHAR *wzVersion, UINT *pcchActual)
static HRESULT WINAPI BitmapDecoderInfo_MatchesPattern(IWICBitmapDecoderInfo *iface, IStream *pIStream, BOOL *pfMatches)
static const IEnumUnknownVtbl ComponentEnumVtbl
HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnknown **ppIEnumUnknown)
HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst)
static HRESULT WINAPI BitmapDecoderInfo_GetPixelFormats(IWICBitmapDecoderInfo *iface, UINT cFormats, GUID *pguidPixelFormats, UINT *pcActual)
static MetadataReaderInfo * impl_from_IWICMetadataReaderInfo(IWICMetadataReaderInfo *iface)
static HRESULT WINAPI BitmapDecoderInfo_CreateInstance(IWICBitmapDecoderInfo *iface, IWICBitmapDecoder **ppIBitmapDecoder)
static HRESULT WINAPI MetadataReaderInfo_DoesSupportPadding(IWICMetadataReaderInfo *iface, BOOL *param)
static HRESULT WINAPI FormatConverterInfo_GetSigningStatus(IWICFormatConverterInfo *iface, DWORD *pStatus)
static void read_bitmap_patterns(BitmapDecoderInfo *info)
static HRESULT WINAPI FormatConverterInfo_GetCLSID(IWICFormatConverterInfo *iface, CLSID *pclsid)
static HRESULT WINAPI BitmapDecoderInfo_DoesSupportMultiframe(IWICBitmapDecoderInfo *iface, BOOL *pfSupportMultiframe)
static HRESULT WINAPI FormatConverterInfo_GetAuthor(IWICFormatConverterInfo *iface, UINT cchAuthor, WCHAR *wzAuthor, UINT *pcchActual)
static HRESULT BitmapDecoderInfo_Constructor(HKEY classkey, REFCLSID clsid, ComponentInfo **ret)
static HRESULT WINAPI BitmapEncoderInfo_GetMimeTypes(IWICBitmapEncoderInfo *iface, UINT cchMimeTypes, WCHAR *wzMimeTypes, UINT *pcchActual)
static HRESULT WINAPI MetadataReaderInfo_QueryInterface(IWICMetadataReaderInfo *iface, REFIID riid, void **ppv)
static HRESULT WINAPI BitmapEncoderInfo_GetSigningStatus(IWICBitmapEncoderInfo *iface, DWORD *pStatus)
static HRESULT WINAPI BitmapDecoderInfo_DoesSupportChromaKey(IWICBitmapDecoderInfo *iface, BOOL *pfSupportChromaKey)
static HRESULT WINAPI BitmapDecoderInfo_GetPatterns(IWICBitmapDecoderInfo *iface, UINT cbSizePatterns, WICBitmapPattern *pPatterns, UINT *pcPatterns, UINT *pcbPatternsActual)
static HRESULT WINAPI MetadataReaderInfo_CreateInstance(IWICMetadataReaderInfo *iface, IWICMetadataReader **reader)
static HRESULT WINAPI BitmapDecoderInfo_GetDeviceManufacturer(IWICBitmapDecoderInfo *iface, UINT cchDeviceManufacturer, WCHAR *wzDeviceManufacturer, UINT *pcchActual)
static HRESULT WINAPI MetadataReaderInfo_GetCLSID(IWICMetadataReaderInfo *iface, CLSID *clsid)
static const IWICBitmapDecoderInfoVtbl BitmapDecoderInfo_Vtbl
void ReleaseComponentInfos(void)
static const IWICBitmapEncoderInfoVtbl BitmapEncoderInfo_Vtbl
static HRESULT WINAPI BitmapEncoderInfo_GetCLSID(IWICBitmapEncoderInfo *iface, CLSID *pclsid)
static HRESULT WINAPI FormatConverterInfo_QueryInterface(IWICFormatConverterInfo *iface, REFIID iid, void **ppv)
static HRESULT WINAPI BitmapEncoderInfo_MatchesMimeType(IWICBitmapEncoderInfo *iface, LPCWSTR wzMimeType, BOOL *pfMatches)
static int ComponentInfo_Compare(const void *key, const struct wine_rb_entry *entry)
static ULONG WINAPI PixelFormatInfo_AddRef(IWICPixelFormatInfo2 *iface)
static HRESULT WINAPI MetadataReaderInfo_GetSigningStatus(IWICMetadataReaderInfo *iface, DWORD *status)
static HRESULT WINAPI BitmapEncoderInfo_GetComponentType(IWICBitmapEncoderInfo *iface, WICComponentType *pType)
static HRESULT ComponentInfo_GetGuidList(HKEY classkey, LPCWSTR subkeyname, UINT buffersize, GUID *buffer, UINT *actual_size)
static HRESULT WINAPI FormatConverterInfo_GetVersion(IWICFormatConverterInfo *iface, UINT cchVersion, WCHAR *wzVersion, UINT *pcchActual)
static PixelFormatInfo * impl_from_IWICPixelFormatInfo2(IWICPixelFormatInfo2 *iface)
static ULONG WINAPI MetadataReaderInfo_AddRef(IWICMetadataReaderInfo *iface)
static HRESULT WINAPI BitmapEncoderInfo_GetVendorGUID(IWICBitmapEncoderInfo *iface, GUID *pguidVendor)
static HRESULT WINAPI PixelFormatInfo_GetFormatGUID(IWICPixelFormatInfo2 *iface, GUID *pFormat)
static HRESULT WINAPI BitmapDecoderInfo_MatchesMimeType(IWICBitmapDecoderInfo *iface, LPCWSTR wzMimeType, BOOL *pfMatches)
static HRESULT WINAPI FormatConverterInfo_GetSpecVersion(IWICFormatConverterInfo *iface, UINT cchSpecVersion, WCHAR *wzSpecVersion, UINT *pcchActual)
static ULONG WINAPI MetadataReaderInfo_Release(IWICMetadataReaderInfo *iface)
static HRESULT WINAPI MetadataReaderInfo_GetPatterns(IWICMetadataReaderInfo *iface, REFGUID container_guid, UINT length, WICMetadataPattern *patterns, UINT *count, UINT *actual_length)
static HRESULT WINAPI PixelFormatInfo_GetSpecVersion(IWICPixelFormatInfo2 *iface, UINT cchSpecVersion, WCHAR *wzSpecVersion, UINT *pcchActual)
static HRESULT WINAPI MetadataReaderInfo_GetComponentType(IWICMetadataReaderInfo *iface, WICComponentType *type)
static CRITICAL_SECTION_DEBUG component_info_cache_cs_dbg
static FormatConverterInfo * impl_from_IWICFormatConverterInfo(IWICFormatConverterInfo *iface)
static HRESULT WINAPI PixelFormatInfo_GetSigningStatus(IWICPixelFormatInfo2 *iface, DWORD *pStatus)
static HRESULT WINAPI BitmapEncoderInfo_GetVersion(IWICBitmapEncoderInfo *iface, UINT cchVersion, WCHAR *wzVersion, UINT *pcchActual)
static HRESULT WINAPI PixelFormatInfo_GetAuthor(IWICPixelFormatInfo2 *iface, UINT cchAuthor, WCHAR *wzAuthor, UINT *pcchActual)
static HRESULT WINAPI BitmapDecoderInfo_GetContainerFormat(IWICBitmapDecoderInfo *iface, GUID *pguidContainerFormat)
static HRESULT WINAPI FormatConverterInfo_CreateInstance(IWICFormatConverterInfo *iface, IWICFormatConverter **ppIFormatConverter)
static HRESULT WINAPI BitmapEncoderInfo_GetContainerFormat(IWICBitmapEncoderInfo *iface, GUID *pguidContainerFormat)
static HRESULT WINAPI MetadataReaderInfo_GetVendorGUID(IWICMetadataReaderInfo *iface, GUID *vendor)
static HRESULT WINAPI FormatConverterInfo_GetPixelFormats(IWICFormatConverterInfo *iface, UINT cFormats, GUID *pguidPixelFormats, UINT *pcActual)
static HRESULT WINAPI BitmapDecoderInfo_GetVersion(IWICBitmapDecoderInfo *iface, UINT cchVersion, WCHAR *wzVersion, UINT *pcchActual)
static HRESULT WINAPI ComponentEnum_Next(IEnumUnknown *iface, ULONG celt, IUnknown **rgelt, ULONG *pceltFetched)
static HRESULT WINAPI ComponentEnum_Clone(IEnumUnknown *iface, IEnumUnknown **ppenum)
static HRESULT WINAPI BitmapDecoderInfo_GetSigningStatus(IWICBitmapDecoderInfo *iface, DWORD *pStatus)
__in WDFDMATRANSACTION __out NTSTATUS * pStatus
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum * categories
GLuint GLsizei GLsizei * length
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
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static const CLSID * objects[]
struct _ULARGE_INTEGER ULARGE_INTEGER
_In_ ULONG _In_ ULONG _In_ ULONG Length
const GUID IID_IEnumUnknown
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
#define WINE_RB_ENTRY_VALUE(element, type, field)
static struct wine_rb_entry * wine_rb_get(const struct wine_rb_tree *tree, const void *key)
#define WINE_RB_FOR_EACH_ENTRY_DESTRUCTOR(elem, elem2, tree, type, field)
static int wine_rb_put(struct wine_rb_tree *tree, const void *key, struct wine_rb_entry *entry)
wchar_t const *const size_t const buffer_size
WICBitmapPattern * patterns
IEnumUnknown IEnumUnknown_iface
IWICComponentInfo IWICComponentInfo_iface
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
LIST_ENTRY ProcessLocksList
PCRITICAL_SECTION_DEBUG DebugInfo
HRESULT(* constructor)(HKEY, REFCLSID, ComponentInfo **)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
@ WICBitmapDitherTypeNone
WICPixelFormatNumericRepresentation
@ WICBitmapPaletteTypeMedianCut
@ WICPixelFormatConverter
#define WINCODEC_ERR_COMPONENTNOTFOUND
#define HRESULT_FROM_WIN32(x)
#define STG_E_INVALIDFUNCTION
#define WINCODEC_ERR_INSUFFICIENTBUFFER
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
#define HKEY_CLASSES_ROOT