ReactOS 0.4.16-dev-1106-g00b5dc8
regsvr.c File Reference
#include <stdarg.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winreg.h"
#include "winerror.h"
#include "objbase.h"
#include "ocidl.h"
#include "wine/debug.h"
#include "wincodecs_private.h"
Include dependency graph for regsvr.c:

Go to the source code of this file.

Classes

struct  decoder_pattern
 
struct  regsvr_decoder
 
struct  regsvr_encoder
 
struct  regsvr_converter
 
struct  metadata_pattern
 
struct  reader_containers
 
struct  regsvr_metadatareader
 
struct  regsvr_pixelformat
 
struct  regsvr_category
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wincodecs)
 
static HRESULT register_decoders (struct regsvr_decoder const *list)
 
static HRESULT unregister_decoders (struct regsvr_decoder const *list)
 
static HRESULT register_encoders (struct regsvr_encoder const *list)
 
static HRESULT unregister_encoders (struct regsvr_encoder const *list)
 
static HRESULT register_converters (struct regsvr_converter const *list)
 
static HRESULT unregister_converters (struct regsvr_converter const *list)
 
static HRESULT register_metadatareaders (struct regsvr_metadatareader const *list)
 
static HRESULT unregister_metadatareaders (struct regsvr_metadatareader const *list)
 
static HRESULT register_pixelformats (struct regsvr_pixelformat const *list)
 
static HRESULT unregister_pixelformats (struct regsvr_pixelformat const *list)
 
static HRESULT register_categories (const struct regsvr_category *list)
 
static HRESULT unregister_categories (const struct regsvr_category *list)
 
HRESULT WINAPI WIC_DllRegisterServer (void)
 
HRESULT WINAPI WIC_DllUnregisterServer (void)
 
HRESULT WINAPI DllRegisterServer (void)
 
HRESULT WINAPI DllUnregisterServer (void)
 

Variables

static const WCHAR clsid_keyname [] = L"CLSID"
 
static const char author_valuename [] = "Author"
 
static const char friendlyname_valuename [] = "FriendlyName"
 
static const WCHAR vendor_valuename [] = L"Vendor"
 
static const WCHAR containerformat_valuename [] = L"ContainerFormat"
 
static const char version_valuename [] = "Version"
 
static const char mimetypes_valuename [] = "MimeTypes"
 
static const char extensions_valuename [] = "FileExtensions"
 
static const WCHAR formats_keyname [] = L"Formats"
 
static const WCHAR patterns_keyname [] = L"Patterns"
 
static const WCHAR instance_keyname [] = L"Instance"
 
static const WCHAR clsid_valuename [] = L"CLSID"
 
static const char length_valuename [] = "Length"
 
static const char position_valuename [] = "Position"
 
static const char pattern_valuename [] = "Pattern"
 
static const char mask_valuename [] = "Mask"
 
static const char endofstream_valuename [] = "EndOfStream"
 
static const WCHAR pixelformats_keyname [] = L"PixelFormats"
 
static const WCHAR metadataformat_valuename [] = L"MetadataFormat"
 
static const char specversion_valuename [] = "SpecVersion"
 
static const char requiresfullstream_valuename [] = "RequiresFullStream"
 
static const char supportspadding_valuename [] = "SupportsPadding"
 
static const char requiresfixedsize_valuename [] = "FixedSize"
 
static const WCHAR containers_keyname [] = L"Containers"
 
static const char dataoffset_valuename [] = "DataOffset"
 
static const char bitsperpixel_valuename [] = "BitLength"
 
static const char channelcount_valuename [] = "ChannelCount"
 
static const char numericrepresentation_valuename [] = "NumericRepresentation"
 
static const char supportstransparency_valuename [] = "SupportsTransparency"
 
static const WCHAR channelmasks_keyname [] = L"ChannelMasks"
 
static const BYTE mask_all [] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
 
static const BYTE bmp_magic [] = {0x42,0x4d}
 
static GUID const *const bmp_formats []
 
static struct decoder_pattern const bmp_patterns []
 
static const BYTE dds_magic [] = "DDS "
 
static GUID const *const dds_formats []
 
static struct decoder_pattern const dds_patterns []
 
static const BYTE gif87a_magic [6] = "GIF87a"
 
static const BYTE gif89a_magic [6] = "GIF89a"
 
static GUID const *const gif_formats []
 
static struct decoder_pattern const gif_patterns []
 
static const BYTE ico_magic [] = {00,00,01,00}
 
static GUID const *const ico_formats []
 
static struct decoder_pattern const ico_patterns []
 
static const BYTE jpeg_magic [] = {0xff, 0xd8}
 
static GUID const *const jpeg_formats []
 
static struct decoder_pattern const jpeg_patterns []
 
static const BYTE wmp_magic_v0 [] = {0x49, 0x49, 0xbc, 0x00}
 
static const BYTE wmp_magic_v1 [] = {0x49, 0x49, 0xbc, 0x01}
 
static GUID const *const wmp_formats []
 
static struct decoder_pattern const wmp_patterns []
 
static const BYTE png_magic [] = {137,80,78,71,13,10,26,10}
 
static GUID const *const png_formats []
 
static struct decoder_pattern const png_patterns []
 
static const BYTE tiff_magic_le [] = {0x49,0x49,42,0}
 
static const BYTE tiff_magic_be [] = {0x4d,0x4d,0,42}
 
static GUID const *const tiff_decode_formats []
 
static struct decoder_pattern const tiff_patterns []
 
static const BYTE tga_footer_magic [18] = "TRUEVISION-XFILE."
 
static const BYTE tga_indexed_magic [18] = {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0}
 
static const BYTE tga_indexed_mask [18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xcf}
 
static const BYTE tga_truecolor_magic [18] = {0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
 
static const BYTE tga_truecolor_mask [18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0x87,0xc0}
 
static const BYTE tga_grayscale_magic [18] = {0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0}
 
static const BYTE tga_grayscale_mask [18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xcf}
 
static GUID const *const tga_formats []
 
static struct decoder_pattern const tga_patterns []
 
static struct regsvr_decoder const decoder_list []
 
static GUID const *const bmp_encode_formats []
 
static GUID const *const png_encode_formats []
 
static GUID const *const tiff_encode_formats []
 
static struct regsvr_encoder const encoder_list []
 
static GUID const *const converter_formats []
 
static struct regsvr_converter const converter_list []
 
static const BYTE no_magic [1] = { 0 }
 
static const BYTE no_mask [1] = { 0 }
 
static const struct metadata_pattern ifd_metadata_pattern []
 
static const struct reader_containers ifd_containers []
 
static const BYTE tEXt [] = "tEXt"
 
static const struct metadata_pattern pngtext_metadata_pattern []
 
static const struct reader_containers pngtext_containers []
 
static const BYTE gAMA [] = "gAMA"
 
static const struct metadata_pattern pnggama_metadata_pattern []
 
static const struct reader_containers pnggama_containers []
 
static const BYTE cHRM [] = "cHRM"
 
static const struct metadata_pattern pngchrm_metadata_pattern []
 
static const struct reader_containers pngchrm_containers []
 
static const BYTE hIST [] = "hIST"
 
static const struct metadata_pattern pnghist_metadata_pattern []
 
static const struct reader_containers pnghist_containers []
 
static const BYTE tIME [] = "tIME"
 
static const struct metadata_pattern pngtime_metadata_pattern []
 
static const struct reader_containers pngtime_containers []
 
static const struct metadata_pattern lsd_metadata_patterns []
 
static const struct reader_containers lsd_containers []
 
static const BYTE imd_magic [] = { 0x2c }
 
static const struct metadata_pattern imd_metadata_pattern []
 
static const struct reader_containers imd_containers []
 
static const BYTE gce_magic [] = { 0x21, 0xf9, 0x04 }
 
static const struct metadata_pattern gce_metadata_pattern []
 
static const struct reader_containers gce_containers []
 
static const BYTE ape_magic [] = { 0x21, 0xff, 0x0b }
 
static const struct metadata_pattern ape_metadata_pattern []
 
static const struct reader_containers ape_containers []
 
static const BYTE gif_comment_magic [] = { 0x21, 0xfe }
 
static const struct metadata_pattern gif_comment_metadata_pattern []
 
static const struct reader_containers gif_comment_containers []
 
static struct regsvr_metadatareader const metadatareader_list []
 
static BYTE const channel_mask_1bit [] = { 0x01 }
 
static BYTE const channel_mask_2bit [] = { 0x03 }
 
static BYTE const channel_mask_4bit [] = { 0x0f }
 
static BYTE const channel_mask_8bit [] = { 0xff, 0x00, 0x00, 0x00 }
 
static BYTE const channel_mask_8bit2 [] = { 0x00, 0xff, 0x00, 0x00 }
 
static BYTE const channel_mask_8bit3 [] = { 0x00, 0x00, 0xff, 0x00 }
 
static BYTE const channel_mask_8bit4 [] = { 0x00, 0x00, 0x00, 0xff }
 
static BYTE const channel_mask_16bit [] = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
 
static BYTE const channel_mask_16bit2 [] = { 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
 
static BYTE const channel_mask_16bit3 [] = { 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 }
 
static BYTE const channel_mask_16bit4 [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff }
 
static BYTE const channel_mask_32bit [] = { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
 
static BYTE const channel_mask_96bit1 [] = { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
 
static BYTE const channel_mask_96bit2 [] = { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }
 
static BYTE const channel_mask_96bit3 [] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }
 
static BYTE const channel_mask_128bit1 [] = { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
 
static BYTE const channel_mask_128bit2 [] = { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
 
static BYTE const channel_mask_128bit3 [] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }
 
static BYTE const channel_mask_128bit4 [] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }
 
static BYTE const channel_mask_5bit [] = { 0x1f, 0x00 }
 
static BYTE const channel_mask_5bit2 [] = { 0xe0, 0x03 }
 
static BYTE const channel_mask_5bit3 [] = { 0x00, 0x7c }
 
static BYTE const channel_mask_5bit4 [] = { 0x00, 0x80 }
 
static BYTE const channel_mask_BGR565_2 [] = { 0xe0, 0x07 }
 
static BYTE const channel_mask_BGR565_3 [] = { 0x00, 0xf8 }
 
static BYTE const *const channel_masks_1bit [] = { channel_mask_1bit }
 
static BYTE const *const channel_masks_2bit [] = { channel_mask_2bit }
 
static BYTE const *const channel_masks_4bit [] = { channel_mask_4bit }
 
static BYTE const *const channel_masks_8bit []
 
static BYTE const *const channel_masks_16bit []
 
static BYTE const *const channel_masks_32bit [] = { channel_mask_32bit }
 
static BYTE const *const channel_masks_96bit [] = { channel_mask_96bit1, channel_mask_96bit2, channel_mask_96bit3 }
 
static BYTE const *const channel_masks_128bit [] = { channel_mask_128bit1, channel_mask_128bit2, channel_mask_128bit3, channel_mask_128bit4 }
 
static BYTE const *const channel_masks_BGRA5551 []
 
static BYTE const *const channel_masks_BGR565 []
 
static struct regsvr_pixelformat const pixelformat_list []
 
static const struct regsvr_category category_list []
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 19 of file regsvr.c.

Function Documentation

◆ DllRegisterServer()

HRESULT WINAPI DllRegisterServer ( void  )

Definition at line 2326 of file regsvr.c.

2327{
2328 HRESULT hr;
2329
2330 TRACE("\n");
2331
2333 if (SUCCEEDED(hr))
2335 if (SUCCEEDED(hr))
2337 if (SUCCEEDED(hr))
2339 if (SUCCEEDED(hr))
2341 if (SUCCEEDED(hr))
2343 if (SUCCEEDED(hr))
2345 return hr;
2346}
#define SUCCEEDED(hr)
Definition: intsafe.h:50
HRESULT hr
Definition: shlfolder.c:183
#define TRACE(s)
Definition: solgame.cpp:4
static struct regsvr_converter const converter_list[]
Definition: regsvr.c:1551
static HRESULT register_converters(struct regsvr_converter const *list)
Definition: regsvr.c:576
static HRESULT register_encoders(struct regsvr_encoder const *list)
Definition: regsvr.c:398
HRESULT WINAPI WIC_DllRegisterServer(void)
static HRESULT register_decoders(struct regsvr_decoder const *list)
Definition: regsvr.c:184
static struct regsvr_encoder const encoder_list[]
Definition: regsvr.c:1469
static struct regsvr_pixelformat const pixelformat_list[]
Definition: regsvr.c:1902
static struct regsvr_metadatareader const metadatareader_list[]
Definition: regsvr.c:1727
static struct regsvr_decoder const decoder_list[]
Definition: regsvr.c:1320
static HRESULT register_metadatareaders(struct regsvr_metadatareader const *list)
Definition: regsvr.c:733
static HRESULT register_categories(const struct regsvr_category *list)
Definition: regsvr.c:2239
static const struct regsvr_category category_list[]
Definition: regsvr.c:2230
static HRESULT register_pixelformats(struct regsvr_pixelformat const *list)
Definition: regsvr.c:942

◆ DllUnregisterServer()

HRESULT WINAPI DllUnregisterServer ( void  )

Definition at line 2348 of file regsvr.c.

2349{
2350 HRESULT hr;
2351
2352 TRACE("\n");
2353
2355 if (SUCCEEDED(hr))
2357 if (SUCCEEDED(hr))
2359 if (SUCCEEDED(hr))
2361 if (SUCCEEDED(hr))
2363 if (SUCCEEDED(hr))
2365 if (SUCCEEDED(hr))
2367 return hr;
2368}
static HRESULT unregister_decoders(struct regsvr_decoder const *list)
Definition: regsvr.c:348
static HRESULT unregister_metadatareaders(struct regsvr_metadatareader const *list)
Definition: regsvr.c:892
static HRESULT unregister_converters(struct regsvr_converter const *list)
Definition: regsvr.c:683
static HRESULT unregister_pixelformats(struct regsvr_pixelformat const *list)
Definition: regsvr.c:1066
HRESULT WINAPI WIC_DllUnregisterServer(void)
static HRESULT unregister_encoders(struct regsvr_encoder const *list)
Definition: regsvr.c:526
static HRESULT unregister_categories(const struct regsvr_category *list)
Definition: regsvr.c:2283

◆ register_categories()

static HRESULT register_categories ( const struct regsvr_category list)
static

Definition at line 2239 of file regsvr.c.

2240{
2241 LONG res;
2242 WCHAR buf[39];
2243 HKEY coclass_key, categories_key, instance_key;
2244
2246 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
2247 if (res != ERROR_SUCCESS) return HRESULT_FROM_WIN32(res);
2248
2249 StringFromGUID2(&CLSID_WICImagingCategories, buf, 39);
2250 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
2251 KEY_READ | KEY_WRITE, NULL, &categories_key, NULL);
2252 if (res != ERROR_SUCCESS)
2253 {
2254 RegCloseKey(coclass_key);
2255 return HRESULT_FROM_WIN32(res);
2256 }
2257
2258 res = RegCreateKeyExW(categories_key, instance_keyname, 0, NULL, 0,
2259 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
2260
2261 for (; res == ERROR_SUCCESS && list->clsid; list++)
2262 {
2263 HKEY instance_clsid_key;
2264
2265 StringFromGUID2(list->clsid, buf, 39);
2266 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
2267 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
2268 if (res == ERROR_SUCCESS)
2269 {
2270 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
2271 (const BYTE *)buf, 78);
2272 RegCloseKey(instance_clsid_key);
2273 }
2274 }
2275
2276 RegCloseKey(instance_key);
2277 RegCloseKey(categories_key);
2278 RegCloseKey(coclass_key);
2279
2281}
#define RegCloseKey(hKey)
Definition: registry.h:49
Definition: list.h:37
#define ERROR_SUCCESS
Definition: deptool.c:10
static WCHAR const clsid_keyname[6]
Definition: regsvr.c:78
#define NULL
Definition: types.h:112
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
Definition: compobj.c:2434
GLuint res
Definition: glext.h:9613
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define S_OK
Definition: intsafe.h:52
#define REG_SZ
Definition: layer.c:22
#define KEY_READ
Definition: nt_native.h:1023
#define KEY_WRITE
Definition: nt_native.h:1031
long LONG
Definition: pedump.c:60
static const WCHAR instance_keyname[]
Definition: regsvr.c:160
static const WCHAR clsid_valuename[]
Definition: regsvr.c:161
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193

Referenced by DllRegisterServer().

◆ register_converters()

static HRESULT register_converters ( struct regsvr_converter const list)
static

Definition at line 576 of file regsvr.c.

577{
579 HKEY coclass_key;
580 WCHAR buf[39];
581 HKEY converters_key;
582 HKEY instance_key;
583
585 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
586 if (res == ERROR_SUCCESS) {
587 StringFromGUID2(&CATID_WICFormatConverters, buf, 39);
588 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
589 KEY_READ | KEY_WRITE, NULL, &converters_key, NULL);
590 if (res == ERROR_SUCCESS)
591 {
592 res = RegCreateKeyExW(converters_key, instance_keyname, 0, NULL, 0,
593 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
594 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
595 }
596 if (res != ERROR_SUCCESS)
597 RegCloseKey(coclass_key);
598 }
599 if (res != ERROR_SUCCESS) goto error_return;
600
601 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
602 HKEY clsid_key;
603 HKEY instance_clsid_key;
604
605 StringFromGUID2(list->clsid, buf, 39);
606 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
607 KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL);
608 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
609
610 StringFromGUID2(list->clsid, buf, 39);
611 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
612 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
613 if (res == ERROR_SUCCESS) {
614 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
615 (const BYTE*)buf, 78);
616 RegCloseKey(instance_clsid_key);
617 }
618 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
619
620 if (list->author) {
621 res = RegSetValueExA(clsid_key, author_valuename, 0, REG_SZ,
622 (const BYTE*)list->author,
623 strlen(list->author) + 1);
624 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
625 }
626
627 if (list->friendlyname) {
629 (const BYTE*)list->friendlyname,
630 strlen(list->friendlyname) + 1);
631 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
632 }
633
634 if (list->vendor) {
635 StringFromGUID2(list->vendor, buf, 39);
636 res = RegSetValueExW(clsid_key, vendor_valuename, 0, REG_SZ,
637 (const BYTE*)buf, 78);
638 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
639 }
640
641 if (list->version) {
643 (const BYTE*)list->version,
644 strlen(list->version) + 1);
645 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
646 }
647
648 if (list->formats) {
649 HKEY formats_key;
650 GUID const * const *format;
651
652 res = RegCreateKeyExW(clsid_key, pixelformats_keyname, 0, NULL, 0,
653 KEY_READ | KEY_WRITE, NULL, &formats_key, NULL);
654 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
655 for (format=list->formats; *format; ++format)
656 {
657 HKEY format_key;
659 res = RegCreateKeyExW(formats_key, buf, 0, NULL, 0,
660 KEY_READ | KEY_WRITE, NULL, &format_key, NULL);
661 if (res != ERROR_SUCCESS) break;
662 RegCloseKey(format_key);
663 }
664 RegCloseKey(formats_key);
665 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
666 }
667
668 error_close_clsid_key:
669 RegCloseKey(clsid_key);
670 }
671
672error_close_coclass_key:
673 RegCloseKey(instance_key);
674 RegCloseKey(converters_key);
675 RegCloseKey(coclass_key);
676error_return:
678}
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4799
#define list
Definition: rosglue.h:35
Definition: format.c:58
static const char author_valuename[]
Definition: regsvr.c:151
static const char friendlyname_valuename[]
Definition: regsvr.c:152
static const WCHAR vendor_valuename[]
Definition: regsvr.c:153
static const char version_valuename[]
Definition: regsvr.c:155
static const WCHAR pixelformats_keyname[]
Definition: regsvr.c:167

Referenced by DllRegisterServer().

◆ register_decoders()

static HRESULT register_decoders ( struct regsvr_decoder const list)
static

Definition at line 184 of file regsvr.c.

185{
187 HKEY coclass_key;
188 WCHAR buf[39];
189 HKEY decoders_key;
190 HKEY instance_key;
191
193 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
194 if (res == ERROR_SUCCESS) {
195 StringFromGUID2(&CATID_WICBitmapDecoders, buf, 39);
196 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
197 KEY_READ | KEY_WRITE, NULL, &decoders_key, NULL);
198 if (res == ERROR_SUCCESS)
199 {
200 res = RegCreateKeyExW(decoders_key, instance_keyname, 0, NULL, 0,
201 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
202 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
203 }
204 if (res != ERROR_SUCCESS)
205 RegCloseKey(coclass_key);
206 }
207 if (res != ERROR_SUCCESS) goto error_return;
208
209 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
210 HKEY clsid_key;
211 HKEY instance_clsid_key;
212
213 StringFromGUID2(list->clsid, buf, 39);
214 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
215 KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL);
216 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
217
218 StringFromGUID2(list->clsid, buf, 39);
219 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
220 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
221 if (res == ERROR_SUCCESS) {
222 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
223 (const BYTE*)buf, 78);
224 RegCloseKey(instance_clsid_key);
225 }
226 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
227
228 if (list->author) {
229 res = RegSetValueExA(clsid_key, author_valuename, 0, REG_SZ,
230 (const BYTE*)list->author,
231 strlen(list->author) + 1);
232 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
233 }
234
235 if (list->friendlyname) {
237 (const BYTE*)list->friendlyname,
238 strlen(list->friendlyname) + 1);
239 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
240 }
241
242 if (list->vendor) {
243 StringFromGUID2(list->vendor, buf, 39);
244 res = RegSetValueExW(clsid_key, vendor_valuename, 0, REG_SZ,
245 (const BYTE*)buf, 78);
246 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
247 }
248
249 if (list->container_format) {
250 StringFromGUID2(list->container_format, buf, 39);
252 (const BYTE*)buf, 78);
253 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
254 }
255
256 if (list->version) {
258 (const BYTE*)list->version,
259 strlen(list->version) + 1);
260 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
261 }
262
263 if (list->mimetypes) {
265 (const BYTE*)list->mimetypes,
266 strlen(list->mimetypes) + 1);
267 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
268 }
269
270 if (list->extensions) {
272 (const BYTE*)list->extensions,
273 strlen(list->extensions) + 1);
274 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
275 }
276
277 if (list->formats) {
278 HKEY formats_key;
279 GUID const * const *format;
280
281 res = RegCreateKeyExW(clsid_key, formats_keyname, 0, NULL, 0,
282 KEY_READ | KEY_WRITE, NULL, &formats_key, NULL);
283 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
284 for (format=list->formats; *format; ++format)
285 {
286 HKEY format_key;
288 res = RegCreateKeyExW(formats_key, buf, 0, NULL, 0,
289 KEY_READ | KEY_WRITE, NULL, &format_key, NULL);
290 if (res != ERROR_SUCCESS) break;
291 RegCloseKey(format_key);
292 }
293 RegCloseKey(formats_key);
294 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
295 }
296
297 if (list->patterns) {
298 HKEY patterns_key;
299 int i;
300
301 res = RegCreateKeyExW(clsid_key, patterns_keyname, 0, NULL, 0,
302 KEY_READ | KEY_WRITE, NULL, &patterns_key, NULL);
303 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
304 for (i=0; list->patterns[i].length; i++)
305 {
306 HKEY pattern_key;
307 swprintf(buf, 39, L"%i", i);
308 res = RegCreateKeyExW(patterns_key, buf, 0, NULL, 0,
309 KEY_READ | KEY_WRITE, NULL, &pattern_key, NULL);
310 if (res != ERROR_SUCCESS) break;
311 res = RegSetValueExA(pattern_key, length_valuename, 0, REG_DWORD,
312 (const BYTE*)&list->patterns[i].length, 4);
313 if (res == ERROR_SUCCESS)
315 (const BYTE*)&list->patterns[i].position, 4);
316 if (res == ERROR_SUCCESS)
318 list->patterns[i].pattern,
319 list->patterns[i].length);
320 if (res == ERROR_SUCCESS)
321 res = RegSetValueExA(pattern_key, mask_valuename, 0, REG_BINARY,
322 list->patterns[i].mask,
323 list->patterns[i].length);
324 if (res == ERROR_SUCCESS)
326 (const BYTE*)&list->patterns[i].endofstream, 4);
327 RegCloseKey(pattern_key);
328 }
329 RegCloseKey(patterns_key);
330 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
331 }
332
333 error_close_clsid_key:
334 RegCloseKey(clsid_key);
335 }
336
337error_close_coclass_key:
338 RegCloseKey(instance_key);
339 RegCloseKey(decoders_key);
340 RegCloseKey(coclass_key);
341error_return:
343}
#define swprintf
Definition: precomp.h:40
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 REG_BINARY
Definition: nt_native.h:1496
#define L(x)
Definition: ntvdm.h:50
#define REG_DWORD
Definition: sdbapi.c:596
static const char position_valuename[]
Definition: regsvr.c:163
static const char mimetypes_valuename[]
Definition: regsvr.c:156
static const WCHAR containerformat_valuename[]
Definition: regsvr.c:154
static const char endofstream_valuename[]
Definition: regsvr.c:166
static const WCHAR formats_keyname[]
Definition: regsvr.c:158
static const char pattern_valuename[]
Definition: regsvr.c:164
static const char extensions_valuename[]
Definition: regsvr.c:157
static const char length_valuename[]
Definition: regsvr.c:162
static const WCHAR patterns_keyname[]
Definition: regsvr.c:159
static const char mask_valuename[]
Definition: regsvr.c:165

Referenced by DllRegisterServer().

◆ register_encoders()

static HRESULT register_encoders ( struct regsvr_encoder const list)
static

Definition at line 398 of file regsvr.c.

399{
401 HKEY coclass_key;
402 WCHAR buf[39];
403 HKEY encoders_key;
404 HKEY instance_key;
405
407 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
408 if (res == ERROR_SUCCESS) {
409 StringFromGUID2(&CATID_WICBitmapEncoders, buf, 39);
410 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
411 KEY_READ | KEY_WRITE, NULL, &encoders_key, NULL);
412 if (res == ERROR_SUCCESS)
413 {
414 res = RegCreateKeyExW(encoders_key, instance_keyname, 0, NULL, 0,
415 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
416 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
417 }
418 if (res != ERROR_SUCCESS)
419 RegCloseKey(coclass_key);
420 }
421 if (res != ERROR_SUCCESS) goto error_return;
422
423 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
424 HKEY clsid_key;
425 HKEY instance_clsid_key;
426
427 StringFromGUID2(list->clsid, buf, 39);
428 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
429 KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL);
430 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
431
432 StringFromGUID2(list->clsid, buf, 39);
433 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
434 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
435 if (res == ERROR_SUCCESS) {
436 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
437 (const BYTE*)buf, 78);
438 RegCloseKey(instance_clsid_key);
439 }
440 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
441
442 if (list->author) {
443 res = RegSetValueExA(clsid_key, author_valuename, 0, REG_SZ,
444 (const BYTE*)list->author,
445 strlen(list->author) + 1);
446 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
447 }
448
449 if (list->friendlyname) {
451 (const BYTE*)list->friendlyname,
452 strlen(list->friendlyname) + 1);
453 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
454 }
455
456 if (list->vendor) {
457 StringFromGUID2(list->vendor, buf, 39);
458 res = RegSetValueExW(clsid_key, vendor_valuename, 0, REG_SZ,
459 (const BYTE*)buf, 78);
460 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
461 }
462
463 if (list->container_format) {
464 StringFromGUID2(list->container_format, buf, 39);
466 (const BYTE*)buf, 78);
467 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
468 }
469
470 if (list->version) {
472 (const BYTE*)list->version,
473 strlen(list->version) + 1);
474 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
475 }
476
477 if (list->mimetypes) {
479 (const BYTE*)list->mimetypes,
480 strlen(list->mimetypes) + 1);
481 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
482 }
483
484 if (list->extensions) {
486 (const BYTE*)list->extensions,
487 strlen(list->extensions) + 1);
488 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
489 }
490
491 if (list->formats) {
492 HKEY formats_key;
493 GUID const * const *format;
494
495 res = RegCreateKeyExW(clsid_key, formats_keyname, 0, NULL, 0,
496 KEY_READ | KEY_WRITE, NULL, &formats_key, NULL);
497 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
498 for (format=list->formats; *format; ++format)
499 {
500 HKEY format_key;
502 res = RegCreateKeyExW(formats_key, buf, 0, NULL, 0,
503 KEY_READ | KEY_WRITE, NULL, &format_key, NULL);
504 if (res != ERROR_SUCCESS) break;
505 RegCloseKey(format_key);
506 }
507 RegCloseKey(formats_key);
508 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
509 }
510
511 error_close_clsid_key:
512 RegCloseKey(clsid_key);
513 }
514
515error_close_coclass_key:
516 RegCloseKey(instance_key);
517 RegCloseKey(encoders_key);
518 RegCloseKey(coclass_key);
519error_return:
521}

Referenced by DllRegisterServer().

◆ register_metadatareaders()

static HRESULT register_metadatareaders ( struct regsvr_metadatareader const list)
static

Definition at line 733 of file regsvr.c.

734{
736 HKEY coclass_key;
737 WCHAR buf[39];
738 HKEY readers_key;
739 HKEY instance_key;
740
742 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
743 if (res == ERROR_SUCCESS) {
744 StringFromGUID2(&CATID_WICMetadataReader, buf, 39);
745 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
746 KEY_READ | KEY_WRITE, NULL, &readers_key, NULL);
747 if (res == ERROR_SUCCESS)
748 {
749 res = RegCreateKeyExW(readers_key, instance_keyname, 0, NULL, 0,
750 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
751 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
752 }
753 if (res != ERROR_SUCCESS)
754 RegCloseKey(coclass_key);
755 }
756 if (res != ERROR_SUCCESS) goto error_return;
757
758 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
759 HKEY clsid_key;
760 HKEY instance_clsid_key;
761
762 StringFromGUID2(list->clsid, buf, 39);
763 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
764 KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL);
765 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
766
767 StringFromGUID2(list->clsid, buf, 39);
768 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
769 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
770 if (res == ERROR_SUCCESS) {
771 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
772 (const BYTE*)buf, 78);
773 RegCloseKey(instance_clsid_key);
774 }
775 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
776
777 if (list->author) {
778 res = RegSetValueExA(clsid_key, author_valuename, 0, REG_SZ,
779 (const BYTE*)list->author,
780 strlen(list->author) + 1);
781 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
782 }
783
784 if (list->friendlyname) {
786 (const BYTE*)list->friendlyname,
787 strlen(list->friendlyname) + 1);
788 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
789 }
790
791 if (list->vendor) {
792 StringFromGUID2(list->vendor, buf, 39);
793 res = RegSetValueExW(clsid_key, vendor_valuename, 0, REG_SZ,
794 (const BYTE*)buf, 78);
795 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
796 }
797
798 if (list->metadata_format) {
799 StringFromGUID2(list->metadata_format, buf, 39);
801 (const BYTE*)buf, 78);
802 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
803 }
804
805 if (list->version) {
807 (const BYTE*)list->version,
808 strlen(list->version) + 1);
809 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
810 }
811
812 if (list->specversion) {
814 (const BYTE*)list->version,
815 strlen(list->version) + 1);
816 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
817 }
818
820 (const BYTE*)&list->requires_fullstream, 4);
821 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
822
824 (const BYTE*)&list->supports_padding, 4);
825 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
826
827 if (list->requires_fixedsize) {
829 (const BYTE*)&list->requires_fixedsize, 4);
830 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
831 }
832
833 if (list->containers) {
834 HKEY containers_key;
835 const struct reader_containers *container;
836
837 res = RegCreateKeyExW(clsid_key, containers_keyname, 0, NULL, 0,
838 KEY_READ | KEY_WRITE, NULL, &containers_key, NULL);
839 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
840 for (container=list->containers; container->format; ++container)
841 {
842 HKEY format_key;
843 int i;
844 StringFromGUID2(container->format, buf, 39);
845 res = RegCreateKeyExW(containers_key, buf, 0, NULL, 0,
846 KEY_READ | KEY_WRITE, NULL, &format_key, NULL);
847 if (res != ERROR_SUCCESS) break;
848
849 for (i=0; container->patterns[i].length; i++)
850 {
851 HKEY pattern_key;
852 swprintf(buf, 39, L"%i", i);
853 res = RegCreateKeyExW(format_key, buf, 0, NULL, 0,
854 KEY_READ | KEY_WRITE, NULL, &pattern_key, NULL);
855 if (res != ERROR_SUCCESS) break;
857 (const BYTE*)&container->patterns[i].position, 4);
858 if (res == ERROR_SUCCESS)
860 container->patterns[i].pattern,
861 container->patterns[i].length);
862 if (res == ERROR_SUCCESS)
863 res = RegSetValueExA(pattern_key, mask_valuename, 0, REG_BINARY,
864 container->patterns[i].mask,
865 container->patterns[i].length);
866 if (res == ERROR_SUCCESS && container->patterns[i].data_offset)
868 (const BYTE*)&container->patterns[i].data_offset, 4);
869 RegCloseKey(pattern_key);
870 }
871
872 RegCloseKey(format_key);
873 }
874 RegCloseKey(containers_key);
875 }
876
877 error_close_clsid_key:
878 RegCloseKey(clsid_key);
879 }
880
881error_close_coclass_key:
882 RegCloseKey(instance_key);
883 RegCloseKey(readers_key);
884 RegCloseKey(coclass_key);
885error_return:
887}
static const char specversion_valuename[]
Definition: regsvr.c:169
static const char requiresfullstream_valuename[]
Definition: regsvr.c:170
static const char dataoffset_valuename[]
Definition: regsvr.c:174
static const char requiresfixedsize_valuename[]
Definition: regsvr.c:172
static const WCHAR containers_keyname[]
Definition: regsvr.c:173
static const WCHAR metadataformat_valuename[]
Definition: regsvr.c:168
static const char supportspadding_valuename[]
Definition: regsvr.c:171

Referenced by DllRegisterServer().

◆ register_pixelformats()

static HRESULT register_pixelformats ( struct regsvr_pixelformat const list)
static

Definition at line 942 of file regsvr.c.

943{
945 HKEY coclass_key;
946 WCHAR buf[39];
947 HKEY formats_key;
948 HKEY instance_key;
949
951 KEY_READ | KEY_WRITE, NULL, &coclass_key, NULL);
952 if (res == ERROR_SUCCESS) {
953 StringFromGUID2(&CATID_WICPixelFormats, buf, 39);
954 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
955 KEY_READ | KEY_WRITE, NULL, &formats_key, NULL);
956 if (res == ERROR_SUCCESS)
957 {
958 res = RegCreateKeyExW(formats_key, instance_keyname, 0, NULL, 0,
959 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
960 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
961 }
962 if (res != ERROR_SUCCESS)
963 RegCloseKey(coclass_key);
964 }
965 if (res != ERROR_SUCCESS) goto error_return;
966
967 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
968 HKEY clsid_key;
969 HKEY instance_clsid_key;
970
971 StringFromGUID2(list->clsid, buf, 39);
972 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
973 KEY_READ | KEY_WRITE, NULL, &clsid_key, NULL);
974 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
975
976 StringFromGUID2(list->clsid, buf, 39);
977 res = RegCreateKeyExW(instance_key, buf, 0, NULL, 0,
978 KEY_READ | KEY_WRITE, NULL, &instance_clsid_key, NULL);
979 if (res == ERROR_SUCCESS) {
980 res = RegSetValueExW(instance_clsid_key, clsid_valuename, 0, REG_SZ,
981 (const BYTE*)buf, 78);
982 RegCloseKey(instance_clsid_key);
983 }
984 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
985
986 if (list->author) {
987 res = RegSetValueExA(clsid_key, author_valuename, 0, REG_SZ,
988 (const BYTE*)list->author,
989 strlen(list->author) + 1);
990 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
991 }
992
993 if (list->friendlyname) {
995 (const BYTE*)list->friendlyname,
996 strlen(list->friendlyname) + 1);
997 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
998 }
999
1000 if (list->vendor) {
1001 StringFromGUID2(list->vendor, buf, 39);
1002 res = RegSetValueExW(clsid_key, vendor_valuename, 0, REG_SZ,
1003 (const BYTE*)buf, 78);
1004 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1005 }
1006
1007 if (list->version) {
1008 res = RegSetValueExA(clsid_key, version_valuename, 0, REG_SZ,
1009 (const BYTE*)list->version,
1010 strlen(list->version) + 1);
1011 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1012 }
1013
1015 (const BYTE*)&list->bitsperpixel, 4);
1016 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1017
1019 (const BYTE*)&list->channelcount, 4);
1020 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1021
1023 (const BYTE*)&list->numericrepresentation, 4);
1024 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1025
1027 (const BYTE*)&list->supportsalpha, 4);
1028 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1029
1030 if (list->channelmasks) {
1031 HKEY masks_key;
1032 UINT i, mask_size;
1034
1035 mask_size = (list->bitsperpixel + 7)/8;
1036
1037 res = RegCreateKeyExW(clsid_key, channelmasks_keyname, 0, NULL, 0,
1038 KEY_READ | KEY_WRITE, NULL, &masks_key, NULL);
1039 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1040 for (i=0; i < list->channelcount; i++)
1041 {
1044 list->channelmasks[i], mask_size);
1045 if (res != ERROR_SUCCESS) break;
1046 }
1047 RegCloseKey(masks_key);
1048 if (res != ERROR_SUCCESS) goto error_close_clsid_key;
1049 }
1050
1051 error_close_clsid_key:
1052 RegCloseKey(clsid_key);
1053 }
1054
1055error_close_coclass_key:
1056 RegCloseKey(instance_key);
1057 RegCloseKey(formats_key);
1058 RegCloseKey(coclass_key);
1059error_return:
1061}
#define ARRAY_SIZE(A)
Definition: main.h:20
unsigned int UINT
Definition: ndis.h:50
static const char bitsperpixel_valuename[]
Definition: regsvr.c:175
static const WCHAR channelmasks_keyname[]
Definition: regsvr.c:179
static const char channelcount_valuename[]
Definition: regsvr.c:176
static const char numericrepresentation_valuename[]
Definition: regsvr.c:177
static const char supportstransparency_valuename[]
Definition: regsvr.c:178

Referenced by DllRegisterServer().

◆ unregister_categories()

static HRESULT unregister_categories ( const struct regsvr_category list)
static

Definition at line 2283 of file regsvr.c.

2284{
2285 LONG res;
2286 WCHAR buf[39];
2287 HKEY coclass_key, categories_key, instance_key;
2288
2290 KEY_READ | KEY_WRITE, &coclass_key);
2291 if (res != ERROR_SUCCESS) return HRESULT_FROM_WIN32(res);
2292
2293 StringFromGUID2(&CLSID_WICImagingCategories, buf, 39);
2294 res = RegOpenKeyExW(coclass_key, buf, 0,
2295 KEY_READ | KEY_WRITE, &categories_key);
2296 if (res != ERROR_SUCCESS)
2297 {
2299 RegCloseKey(coclass_key);
2300 return HRESULT_FROM_WIN32(res);
2301 }
2302
2303 res = RegOpenKeyExW(categories_key, instance_keyname, 0,
2304 KEY_READ | KEY_WRITE, &instance_key);
2305
2306 for (; res == ERROR_SUCCESS && list->clsid; list++)
2307 {
2308 StringFromGUID2(list->clsid, buf, 39);
2309 res = RegDeleteTreeW(instance_key, buf);
2310 }
2311
2312 RegCloseKey(instance_key);
2313 RegCloseKey(categories_key);
2314
2315 StringFromGUID2(&CLSID_WICImagingCategories, buf, 39);
2316 res = RegDeleteTreeW(coclass_key, buf);
2317
2318 RegCloseKey(coclass_key);
2319
2321}
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79

Referenced by DllUnregisterServer().

◆ unregister_converters()

static HRESULT unregister_converters ( struct regsvr_converter const list)
static

Definition at line 683 of file regsvr.c.

684{
686 HKEY coclass_key;
687 WCHAR buf[39];
688 HKEY converters_key;
689 HKEY instance_key;
690
692 KEY_READ | KEY_WRITE, &coclass_key);
693 if (res == ERROR_FILE_NOT_FOUND) return S_OK;
694
695 if (res == ERROR_SUCCESS) {
696 StringFromGUID2(&CATID_WICFormatConverters, buf, 39);
697 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
698 KEY_READ | KEY_WRITE, NULL, &converters_key, NULL);
699 if (res == ERROR_SUCCESS)
700 {
701 res = RegCreateKeyExW(converters_key, instance_keyname, 0, NULL, 0,
702 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
703 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
704 }
705 if (res != ERROR_SUCCESS)
706 RegCloseKey(coclass_key);
707 }
708 if (res != ERROR_SUCCESS) goto error_return;
709
710 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
711 StringFromGUID2(list->clsid, buf, 39);
712
713 res = RegDeleteTreeW(coclass_key, buf);
715 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
716
717 res = RegDeleteTreeW(instance_key, buf);
719 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
720 }
721
722error_close_coclass_key:
723 RegCloseKey(instance_key);
724 RegCloseKey(converters_key);
725 RegCloseKey(coclass_key);
726error_return:
728}

Referenced by DllUnregisterServer().

◆ unregister_decoders()

static HRESULT unregister_decoders ( struct regsvr_decoder const list)
static

Definition at line 348 of file regsvr.c.

349{
351 HKEY coclass_key;
352 WCHAR buf[39];
353 HKEY decoders_key;
354 HKEY instance_key;
355
357 KEY_READ | KEY_WRITE, &coclass_key);
358 if (res == ERROR_FILE_NOT_FOUND) return S_OK;
359
360 if (res == ERROR_SUCCESS) {
361 StringFromGUID2(&CATID_WICBitmapDecoders, buf, 39);
362 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
363 KEY_READ | KEY_WRITE, NULL, &decoders_key, NULL);
364 if (res == ERROR_SUCCESS)
365 {
366 res = RegCreateKeyExW(decoders_key, instance_keyname, 0, NULL, 0,
367 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
368 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
369 }
370 if (res != ERROR_SUCCESS)
371 RegCloseKey(coclass_key);
372 }
373 if (res != ERROR_SUCCESS) goto error_return;
374
375 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
376 StringFromGUID2(list->clsid, buf, 39);
377
378 res = RegDeleteTreeW(coclass_key, buf);
380 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
381
382 res = RegDeleteTreeW(instance_key, buf);
384 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
385 }
386
387error_close_coclass_key:
388 RegCloseKey(instance_key);
389 RegCloseKey(decoders_key);
390 RegCloseKey(coclass_key);
391error_return:
393}

Referenced by DllUnregisterServer().

◆ unregister_encoders()

static HRESULT unregister_encoders ( struct regsvr_encoder const list)
static

Definition at line 526 of file regsvr.c.

527{
529 HKEY coclass_key;
530 WCHAR buf[39];
531 HKEY encoders_key;
532 HKEY instance_key;
533
535 KEY_READ | KEY_WRITE, &coclass_key);
536 if (res == ERROR_FILE_NOT_FOUND) return S_OK;
537
538 if (res == ERROR_SUCCESS) {
539 StringFromGUID2(&CATID_WICBitmapEncoders, buf, 39);
540 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
541 KEY_READ | KEY_WRITE, NULL, &encoders_key, NULL);
542 if (res == ERROR_SUCCESS)
543 {
544 res = RegCreateKeyExW(encoders_key, instance_keyname, 0, NULL, 0,
545 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
546 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
547 }
548 if (res != ERROR_SUCCESS)
549 RegCloseKey(coclass_key);
550 }
551 if (res != ERROR_SUCCESS) goto error_return;
552
553 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
554 StringFromGUID2(list->clsid, buf, 39);
555
556 res = RegDeleteTreeW(coclass_key, buf);
558 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
559
560 res = RegDeleteTreeW(instance_key, buf);
562 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
563 }
564
565error_close_coclass_key:
566 RegCloseKey(instance_key);
567 RegCloseKey(encoders_key);
568 RegCloseKey(coclass_key);
569error_return:
571}

Referenced by DllUnregisterServer().

◆ unregister_metadatareaders()

static HRESULT unregister_metadatareaders ( struct regsvr_metadatareader const list)
static

Definition at line 892 of file regsvr.c.

893{
895 HKEY coclass_key;
896 WCHAR buf[39];
897 HKEY readers_key;
898 HKEY instance_key;
899
901 KEY_READ | KEY_WRITE, &coclass_key);
902 if (res == ERROR_FILE_NOT_FOUND) return S_OK;
903
904 if (res == ERROR_SUCCESS) {
905 StringFromGUID2(&CATID_WICMetadataReader, buf, 39);
906 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
907 KEY_READ | KEY_WRITE, NULL, &readers_key, NULL);
908 if (res == ERROR_SUCCESS)
909 {
910 res = RegCreateKeyExW(readers_key, instance_keyname, 0, NULL, 0,
911 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
912 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
913 }
914 if (res != ERROR_SUCCESS)
915 RegCloseKey(coclass_key);
916 }
917 if (res != ERROR_SUCCESS) goto error_return;
918
919 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
920 StringFromGUID2(list->clsid, buf, 39);
921
922 res = RegDeleteTreeW(coclass_key, buf);
924 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
925
926 res = RegDeleteTreeW(instance_key, buf);
928 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
929 }
930
931error_close_coclass_key:
932 RegCloseKey(instance_key);
933 RegCloseKey(readers_key);
934 RegCloseKey(coclass_key);
935error_return:
937}

Referenced by DllUnregisterServer().

◆ unregister_pixelformats()

static HRESULT unregister_pixelformats ( struct regsvr_pixelformat const list)
static

Definition at line 1066 of file regsvr.c.

1067{
1069 HKEY coclass_key;
1070 WCHAR buf[39];
1071 HKEY formats_key;
1072 HKEY instance_key;
1073
1075 KEY_READ | KEY_WRITE, &coclass_key);
1076 if (res == ERROR_FILE_NOT_FOUND) return S_OK;
1077
1078 if (res == ERROR_SUCCESS) {
1079 StringFromGUID2(&CATID_WICPixelFormats, buf, 39);
1080 res = RegCreateKeyExW(coclass_key, buf, 0, NULL, 0,
1081 KEY_READ | KEY_WRITE, NULL, &formats_key, NULL);
1082 if (res == ERROR_SUCCESS)
1083 {
1084 res = RegCreateKeyExW(formats_key, instance_keyname, 0, NULL, 0,
1085 KEY_READ | KEY_WRITE, NULL, &instance_key, NULL);
1086 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
1087 }
1088 if (res != ERROR_SUCCESS)
1089 RegCloseKey(coclass_key);
1090 }
1091 if (res != ERROR_SUCCESS) goto error_return;
1092
1093 for (; res == ERROR_SUCCESS && list->clsid; ++list) {
1094 StringFromGUID2(list->clsid, buf, 39);
1095
1096 res = RegDeleteTreeW(coclass_key, buf);
1098 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
1099
1100 res = RegDeleteTreeW(instance_key, buf);
1102 if (res != ERROR_SUCCESS) goto error_close_coclass_key;
1103 }
1104
1105error_close_coclass_key:
1106 RegCloseKey(instance_key);
1107 RegCloseKey(formats_key);
1108 RegCloseKey(coclass_key);
1109error_return:
1111}

Referenced by DllUnregisterServer().

◆ WIC_DllRegisterServer()

HRESULT WINAPI WIC_DllRegisterServer ( void  )

Referenced by DllRegisterServer().

◆ WIC_DllUnregisterServer()

HRESULT WINAPI WIC_DllUnregisterServer ( void  )

Referenced by DllUnregisterServer().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wincodecs  )

Variable Documentation

◆ ape_containers

const struct reader_containers ape_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatGif,
},
{ NULL }
}
static const struct metadata_pattern ape_metadata_pattern[]
Definition: regsvr.c:1699

Definition at line 1704 of file regsvr.c.

◆ ape_magic

const BYTE ape_magic[] = { 0x21, 0xff, 0x0b }
static

Definition at line 1697 of file regsvr.c.

◆ ape_metadata_pattern

const struct metadata_pattern ape_metadata_pattern[]
static
Initial value:
= {
{ 0, 3, ape_magic, mask_all, 0 },
{ 0 }
}
static const BYTE mask_all[]
Definition: regsvr.c:1116
static const BYTE ape_magic[]
Definition: regsvr.c:1697

Definition at line 1699 of file regsvr.c.

◆ author_valuename

const char author_valuename[] = "Author"
static

◆ bitsperpixel_valuename

const char bitsperpixel_valuename[] = "BitLength"
static

Definition at line 175 of file regsvr.c.

Referenced by register_pixelformats().

◆ bmp_encode_formats

GUID const* const bmp_encode_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat16bppBGR555,
&GUID_WICPixelFormat16bppBGR565,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
}

Definition at line 1423 of file regsvr.c.

◆ bmp_formats

GUID const* const bmp_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormat16bppBGR555,
&GUID_WICPixelFormat16bppBGR565,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppBGRA,
}

Definition at line 1120 of file regsvr.c.

◆ bmp_magic

const BYTE bmp_magic[] = {0x42,0x4d}
static

Definition at line 1118 of file regsvr.c.

◆ bmp_patterns

struct decoder_pattern const bmp_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE bmp_magic[]
Definition: regsvr.c:1118

Definition at line 1133 of file regsvr.c.

◆ category_list

const struct regsvr_category category_list[]
static
Initial value:
= {
{ &CATID_WICBitmapDecoders },
{ &CATID_WICBitmapEncoders },
{ &CATID_WICFormatConverters },
{ &CATID_WICMetadataReader },
{ &CATID_WICPixelFormats },
{ NULL }
}

Definition at line 2230 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ channel_mask_128bit1

BYTE const channel_mask_128bit1[] = { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
static

Definition at line 1871 of file regsvr.c.

◆ channel_mask_128bit2

BYTE const channel_mask_128bit2[] = { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
static

Definition at line 1872 of file regsvr.c.

◆ channel_mask_128bit3

BYTE const channel_mask_128bit3[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }
static

Definition at line 1873 of file regsvr.c.

◆ channel_mask_128bit4

BYTE const channel_mask_128bit4[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }
static

Definition at line 1874 of file regsvr.c.

◆ channel_mask_16bit

BYTE const channel_mask_16bit[] = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
static

Definition at line 1860 of file regsvr.c.

◆ channel_mask_16bit2

BYTE const channel_mask_16bit2[] = { 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
static

Definition at line 1861 of file regsvr.c.

◆ channel_mask_16bit3

BYTE const channel_mask_16bit3[] = { 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00 }
static

Definition at line 1862 of file regsvr.c.

◆ channel_mask_16bit4

BYTE const channel_mask_16bit4[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff }
static

Definition at line 1863 of file regsvr.c.

◆ channel_mask_1bit

BYTE const channel_mask_1bit[] = { 0x01 }
static

Definition at line 1851 of file regsvr.c.

◆ channel_mask_2bit

BYTE const channel_mask_2bit[] = { 0x03 }
static

Definition at line 1852 of file regsvr.c.

◆ channel_mask_32bit

BYTE const channel_mask_32bit[] = { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
static

Definition at line 1865 of file regsvr.c.

◆ channel_mask_4bit

BYTE const channel_mask_4bit[] = { 0x0f }
static

Definition at line 1853 of file regsvr.c.

◆ channel_mask_5bit

BYTE const channel_mask_5bit[] = { 0x1f, 0x00 }
static

Definition at line 1876 of file regsvr.c.

◆ channel_mask_5bit2

BYTE const channel_mask_5bit2[] = { 0xe0, 0x03 }
static

Definition at line 1877 of file regsvr.c.

◆ channel_mask_5bit3

BYTE const channel_mask_5bit3[] = { 0x00, 0x7c }
static

Definition at line 1878 of file regsvr.c.

◆ channel_mask_5bit4

BYTE const channel_mask_5bit4[] = { 0x00, 0x80 }
static

Definition at line 1879 of file regsvr.c.

◆ channel_mask_8bit

BYTE const channel_mask_8bit[] = { 0xff, 0x00, 0x00, 0x00 }
static

Definition at line 1855 of file regsvr.c.

◆ channel_mask_8bit2

BYTE const channel_mask_8bit2[] = { 0x00, 0xff, 0x00, 0x00 }
static

Definition at line 1856 of file regsvr.c.

◆ channel_mask_8bit3

BYTE const channel_mask_8bit3[] = { 0x00, 0x00, 0xff, 0x00 }
static

Definition at line 1857 of file regsvr.c.

◆ channel_mask_8bit4

BYTE const channel_mask_8bit4[] = { 0x00, 0x00, 0x00, 0xff }
static

Definition at line 1858 of file regsvr.c.

◆ channel_mask_96bit1

BYTE const channel_mask_96bit1[] = { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
static

Definition at line 1867 of file regsvr.c.

◆ channel_mask_96bit2

BYTE const channel_mask_96bit2[] = { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }
static

Definition at line 1868 of file regsvr.c.

◆ channel_mask_96bit3

BYTE const channel_mask_96bit3[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }
static

Definition at line 1869 of file regsvr.c.

◆ channel_mask_BGR565_2

BYTE const channel_mask_BGR565_2[] = { 0xe0, 0x07 }
static

Definition at line 1881 of file regsvr.c.

◆ channel_mask_BGR565_3

BYTE const channel_mask_BGR565_3[] = { 0x00, 0xf8 }
static

Definition at line 1882 of file regsvr.c.

◆ channel_masks_128bit

Definition at line 1894 of file regsvr.c.

◆ channel_masks_16bit

BYTE const* const channel_masks_16bit[]
static
Initial value:
static BYTE const channel_mask_16bit[]
Definition: regsvr.c:1860
static BYTE const channel_mask_16bit2[]
Definition: regsvr.c:1861
static BYTE const channel_mask_16bit4[]
Definition: regsvr.c:1863
static BYTE const channel_mask_16bit3[]
Definition: regsvr.c:1862

Definition at line 1889 of file regsvr.c.

◆ channel_masks_1bit

BYTE const* const channel_masks_1bit[] = { channel_mask_1bit }
static

Definition at line 1884 of file regsvr.c.

◆ channel_masks_2bit

BYTE const* const channel_masks_2bit[] = { channel_mask_2bit }
static

Definition at line 1885 of file regsvr.c.

◆ channel_masks_32bit

BYTE const* const channel_masks_32bit[] = { channel_mask_32bit }
static

Definition at line 1892 of file regsvr.c.

◆ channel_masks_4bit

BYTE const* const channel_masks_4bit[] = { channel_mask_4bit }
static

Definition at line 1886 of file regsvr.c.

◆ channel_masks_8bit

BYTE const* const channel_masks_8bit[]
static
Initial value:
static BYTE const channel_mask_8bit4[]
Definition: regsvr.c:1858
static BYTE const channel_mask_8bit[]
Definition: regsvr.c:1855
static BYTE const channel_mask_8bit3[]
Definition: regsvr.c:1857
static BYTE const channel_mask_8bit2[]
Definition: regsvr.c:1856

Definition at line 1887 of file regsvr.c.

◆ channel_masks_96bit

Definition at line 1893 of file regsvr.c.

◆ channel_masks_BGR565

BYTE const* const channel_masks_BGR565[]
static
Initial value:
static BYTE const channel_mask_5bit[]
Definition: regsvr.c:1876
static BYTE const channel_mask_BGR565_3[]
Definition: regsvr.c:1882
static BYTE const channel_mask_BGR565_2[]
Definition: regsvr.c:1881

Definition at line 1899 of file regsvr.c.

◆ channel_masks_BGRA5551

BYTE const* const channel_masks_BGRA5551[]
static
Initial value:
static BYTE const channel_mask_5bit2[]
Definition: regsvr.c:1877
static BYTE const channel_mask_5bit4[]
Definition: regsvr.c:1879
static BYTE const channel_mask_5bit3[]
Definition: regsvr.c:1878

Definition at line 1896 of file regsvr.c.

◆ channelcount_valuename

const char channelcount_valuename[] = "ChannelCount"
static

Definition at line 176 of file regsvr.c.

Referenced by register_pixelformats().

◆ channelmasks_keyname

const WCHAR channelmasks_keyname[] = L"ChannelMasks"
static

Definition at line 179 of file regsvr.c.

Referenced by register_pixelformats().

◆ cHRM

const BYTE cHRM[] = "cHRM"
static

Definition at line 1608 of file regsvr.c.

◆ clsid_keyname

const WCHAR clsid_keyname[] = L"CLSID"
static

Definition at line 150 of file regsvr.c.

◆ clsid_valuename

◆ containerformat_valuename

const WCHAR containerformat_valuename[] = L"ContainerFormat"
static

Definition at line 154 of file regsvr.c.

Referenced by register_decoders(), and register_encoders().

◆ containers_keyname

const WCHAR containers_keyname[] = L"Containers"
static

Definition at line 173 of file regsvr.c.

Referenced by register_metadatareaders().

◆ converter_formats

GUID const* const converter_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat2bppGray,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat16bppBGR555,
&GUID_WICPixelFormat16bppBGR565,
&GUID_WICPixelFormat16bppBGRA5551,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat24bppRGB,
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppRGB,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppRGBA,
&GUID_WICPixelFormat32bppPBGRA,
&GUID_WICPixelFormat32bppPRGBA,
&GUID_WICPixelFormat32bppGrayFloat,
&GUID_WICPixelFormat48bppRGB,
&GUID_WICPixelFormat64bppRGBA,
&GUID_WICPixelFormat32bppCMYK,
}

Definition at line 1523 of file regsvr.c.

◆ converter_list

struct regsvr_converter const converter_list[]
static
Initial value:
= {
{ &CLSID_WICDefaultFormatConverter,
"The Wine Project",
"Default Pixel Format Converter",
"1.0.0.0",
&GUID_VendorMicrosoft,
},
{ NULL }
}
static GUID const *const converter_formats[]
Definition: regsvr.c:1523

Definition at line 1551 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ dataoffset_valuename

const char dataoffset_valuename[] = "DataOffset"
static

Definition at line 174 of file regsvr.c.

Referenced by register_metadatareaders().

◆ dds_formats

GUID const* const dds_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat32bppBGRA,
}

Definition at line 1140 of file regsvr.c.

◆ dds_magic

const BYTE dds_magic[] = "DDS "
static

Definition at line 1138 of file regsvr.c.

◆ dds_patterns

struct decoder_pattern const dds_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE dds_magic[]
Definition: regsvr.c:1138

Definition at line 1145 of file regsvr.c.

◆ decoder_list

struct regsvr_decoder const decoder_list[]
static

Definition at line 1320 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ encoder_list

struct regsvr_encoder const encoder_list[]
static

Definition at line 1469 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ endofstream_valuename

const char endofstream_valuename[] = "EndOfStream"
static

Definition at line 166 of file regsvr.c.

Referenced by register_decoders().

◆ extensions_valuename

const char extensions_valuename[] = "FileExtensions"
static

Definition at line 157 of file regsvr.c.

Referenced by register_decoders(), and register_encoders().

◆ formats_keyname

const WCHAR formats_keyname[] = L"Formats"
static

Definition at line 158 of file regsvr.c.

Referenced by register_decoders(), and register_encoders().

◆ friendlyname_valuename

const char friendlyname_valuename[] = "FriendlyName"
static

◆ gAMA

const BYTE gAMA[] = "gAMA"
static

Definition at line 1593 of file regsvr.c.

◆ gce_containers

const struct reader_containers gce_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatGif,
},
{ NULL }
}
static const struct metadata_pattern gce_metadata_pattern[]
Definition: regsvr.c:1684

Definition at line 1689 of file regsvr.c.

◆ gce_magic

const BYTE gce_magic[] = { 0x21, 0xf9, 0x04 }
static

Definition at line 1682 of file regsvr.c.

◆ gce_metadata_pattern

const struct metadata_pattern gce_metadata_pattern[]
static
Initial value:
= {
{ 0, 3, gce_magic, mask_all, 3 },
{ 0 }
}
static const BYTE gce_magic[]
Definition: regsvr.c:1682

Definition at line 1684 of file regsvr.c.

◆ gif87a_magic

const BYTE gif87a_magic[6] = "GIF87a"
static

Definition at line 1150 of file regsvr.c.

◆ gif89a_magic

const BYTE gif89a_magic[6] = "GIF89a"
static

Definition at line 1151 of file regsvr.c.

◆ gif_comment_containers

const struct reader_containers gif_comment_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatGif,
},
{ NULL }
}
static const struct metadata_pattern gif_comment_metadata_pattern[]
Definition: regsvr.c:1714

Definition at line 1719 of file regsvr.c.

◆ gif_comment_magic

const BYTE gif_comment_magic[] = { 0x21, 0xfe }
static

Definition at line 1712 of file regsvr.c.

◆ gif_comment_metadata_pattern

const struct metadata_pattern gif_comment_metadata_pattern[]
static
Initial value:
= {
{ 0, 2, gif_comment_magic, mask_all, 0 },
{ 0 }
}
static const BYTE gif_comment_magic[]
Definition: regsvr.c:1712

Definition at line 1714 of file regsvr.c.

◆ gif_formats

GUID const* const gif_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat8bppIndexed,
}

Definition at line 1153 of file regsvr.c.

◆ gif_patterns

struct decoder_pattern const gif_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE gif87a_magic[6]
Definition: regsvr.c:1150
static const BYTE gif89a_magic[6]
Definition: regsvr.c:1151

Definition at line 1158 of file regsvr.c.

◆ hIST

const BYTE hIST[] = "hIST"
static

Definition at line 1623 of file regsvr.c.

◆ ico_formats

GUID const* const ico_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat32bppBGRA,
}

Definition at line 1166 of file regsvr.c.

◆ ico_magic

const BYTE ico_magic[] = {00,00,01,00}
static

Definition at line 1164 of file regsvr.c.

◆ ico_patterns

struct decoder_pattern const ico_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE ico_magic[]
Definition: regsvr.c:1164

Definition at line 1171 of file regsvr.c.

◆ ifd_containers

const struct reader_containers ifd_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatTiff,
},
{ NULL }
}
static const struct metadata_pattern ifd_metadata_pattern[]
Definition: regsvr.c:1565

Definition at line 1570 of file regsvr.c.

◆ ifd_metadata_pattern

const struct metadata_pattern ifd_metadata_pattern[]
static
Initial value:
= {
{ 0, 1, no_magic, no_mask, 0 },
{ 0 }
}
static const BYTE no_mask[1]
Definition: regsvr.c:1563
static const BYTE no_magic[1]
Definition: regsvr.c:1562

Definition at line 1565 of file regsvr.c.

◆ imd_containers

const struct reader_containers imd_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatGif,
},
{ NULL }
}
static const struct metadata_pattern imd_metadata_pattern[]
Definition: regsvr.c:1669

Definition at line 1674 of file regsvr.c.

◆ imd_magic

const BYTE imd_magic[] = { 0x2c }
static

Definition at line 1667 of file regsvr.c.

◆ imd_metadata_pattern

const struct metadata_pattern imd_metadata_pattern[]
static
Initial value:
= {
{ 0, 1, imd_magic, mask_all, 1 },
{ 0 }
}
static const BYTE imd_magic[]
Definition: regsvr.c:1667

Definition at line 1669 of file regsvr.c.

◆ instance_keyname

◆ jpeg_formats

GUID const* const jpeg_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppCMYK,
&GUID_WICPixelFormat8bppGray,
}

Definition at line 1178 of file regsvr.c.

◆ jpeg_magic

const BYTE jpeg_magic[] = {0xff, 0xd8}
static

Definition at line 1176 of file regsvr.c.

◆ jpeg_patterns

struct decoder_pattern const jpeg_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE jpeg_magic[]
Definition: regsvr.c:1176

Definition at line 1185 of file regsvr.c.

◆ length_valuename

const char length_valuename[] = "Length"
static

Definition at line 162 of file regsvr.c.

Referenced by register_decoders().

◆ lsd_containers

const struct reader_containers lsd_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatGif,
},
{ NULL }
}
static const struct metadata_pattern lsd_metadata_patterns[]
Definition: regsvr.c:1653

Definition at line 1659 of file regsvr.c.

◆ lsd_metadata_patterns

const struct metadata_pattern lsd_metadata_patterns[]
static
Initial value:
= {
{ 0, 6, gif87a_magic, mask_all, 0 },
{ 0, 6, gif89a_magic, mask_all, 0 },
{ 0 }
}

Definition at line 1653 of file regsvr.c.

◆ mask_all

const BYTE mask_all[] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
static

Definition at line 1116 of file regsvr.c.

◆ mask_valuename

const char mask_valuename[] = "Mask"
static

Definition at line 165 of file regsvr.c.

Referenced by register_decoders(), register_metadatareaders(), and register_pixelformats().

◆ metadataformat_valuename

const WCHAR metadataformat_valuename[] = L"MetadataFormat"
static

Definition at line 168 of file regsvr.c.

Referenced by register_metadatareaders().

◆ metadatareader_list

struct regsvr_metadatareader const metadatareader_list[]
static

Definition at line 1727 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ mimetypes_valuename

const char mimetypes_valuename[] = "MimeTypes"
static

Definition at line 156 of file regsvr.c.

Referenced by register_decoders(), and register_encoders().

◆ no_magic

const BYTE no_magic[1] = { 0 }
static

Definition at line 1562 of file regsvr.c.

◆ no_mask

const BYTE no_mask[1] = { 0 }
static

Definition at line 1563 of file regsvr.c.

◆ numericrepresentation_valuename

const char numericrepresentation_valuename[] = "NumericRepresentation"
static

Definition at line 177 of file regsvr.c.

Referenced by register_pixelformats().

◆ pattern_valuename

const char pattern_valuename[] = "Pattern"
static

Definition at line 164 of file regsvr.c.

Referenced by register_decoders(), and register_metadatareaders().

◆ patterns_keyname

const WCHAR patterns_keyname[] = L"Patterns"
static

Definition at line 159 of file regsvr.c.

Referenced by register_decoders().

◆ pixelformat_list

struct regsvr_pixelformat const pixelformat_list[]
static

Definition at line 1902 of file regsvr.c.

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ pixelformats_keyname

const WCHAR pixelformats_keyname[] = L"PixelFormats"
static

Definition at line 167 of file regsvr.c.

Referenced by register_converters().

◆ png_encode_formats

GUID const* const png_encode_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat2bppGray,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat48bppRGB,
&GUID_WICPixelFormat64bppRGBA,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
}

Definition at line 1435 of file regsvr.c.

◆ png_formats

GUID const* const png_formats[]
static
Initial value:
= {
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat2bppGray,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat64bppRGBA,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat48bppRGB,
}

Definition at line 1234 of file regsvr.c.

◆ png_magic

const BYTE png_magic[] = {137,80,78,71,13,10,26,10}
static

Definition at line 1232 of file regsvr.c.

◆ png_patterns

struct decoder_pattern const png_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE png_magic[]
Definition: regsvr.c:1232

Definition at line 1251 of file regsvr.c.

◆ pngchrm_containers

const struct reader_containers pngchrm_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatPng,
},
{ NULL }
}
static const struct metadata_pattern pngchrm_metadata_pattern[]
Definition: regsvr.c:1610

Definition at line 1615 of file regsvr.c.

◆ pngchrm_metadata_pattern

const struct metadata_pattern pngchrm_metadata_pattern[]
static
Initial value:
= {
{ 4, 4, cHRM, mask_all, 4 },
{ 0 }
}
static const BYTE cHRM[]
Definition: regsvr.c:1608

Definition at line 1610 of file regsvr.c.

◆ pnggama_containers

const struct reader_containers pnggama_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatPng,
},
{ NULL }
}
static const struct metadata_pattern pnggama_metadata_pattern[]
Definition: regsvr.c:1595

Definition at line 1600 of file regsvr.c.

◆ pnggama_metadata_pattern

const struct metadata_pattern pnggama_metadata_pattern[]
static
Initial value:
= {
{ 4, 4, gAMA, mask_all, 4 },
{ 0 }
}
static const BYTE gAMA[]
Definition: regsvr.c:1593

Definition at line 1595 of file regsvr.c.

◆ pnghist_containers

const struct reader_containers pnghist_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatPng,
},
{ NULL }
}
static const struct metadata_pattern pnghist_metadata_pattern[]
Definition: regsvr.c:1625

Definition at line 1630 of file regsvr.c.

◆ pnghist_metadata_pattern

const struct metadata_pattern pnghist_metadata_pattern[]
static
Initial value:
= {
{ 4, 4, hIST, mask_all, 4 },
{ 0 }
}
static const BYTE hIST[]
Definition: regsvr.c:1623

Definition at line 1625 of file regsvr.c.

◆ pngtext_containers

const struct reader_containers pngtext_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatPng,
},
{ NULL }
}
static const struct metadata_pattern pngtext_metadata_pattern[]
Definition: regsvr.c:1580

Definition at line 1585 of file regsvr.c.

◆ pngtext_metadata_pattern

const struct metadata_pattern pngtext_metadata_pattern[]
static
Initial value:
= {
{ 4, 4, tEXt, mask_all, 4 },
{ 0 }
}
static const BYTE tEXt[]
Definition: regsvr.c:1578

Definition at line 1580 of file regsvr.c.

◆ pngtime_containers

const struct reader_containers pngtime_containers[]
static
Initial value:
= {
{
&GUID_ContainerFormatPng,
},
{ NULL }
}
static const struct metadata_pattern pngtime_metadata_pattern[]
Definition: regsvr.c:1640

Definition at line 1645 of file regsvr.c.

◆ pngtime_metadata_pattern

const struct metadata_pattern pngtime_metadata_pattern[]
static
Initial value:
= {
{ 4, 4, tIME, mask_all, 4 },
{ 0 }
}
static const BYTE tIME[]
Definition: regsvr.c:1638

Definition at line 1640 of file regsvr.c.

◆ position_valuename

const char position_valuename[] = "Position"
static

Definition at line 163 of file regsvr.c.

Referenced by register_decoders(), and register_metadatareaders().

◆ requiresfixedsize_valuename

const char requiresfixedsize_valuename[] = "FixedSize"
static

Definition at line 172 of file regsvr.c.

Referenced by register_metadatareaders().

◆ requiresfullstream_valuename

const char requiresfullstream_valuename[] = "RequiresFullStream"
static

Definition at line 170 of file regsvr.c.

Referenced by register_metadatareaders().

◆ specversion_valuename

const char specversion_valuename[] = "SpecVersion"
static

Definition at line 169 of file regsvr.c.

Referenced by register_metadatareaders().

◆ supportspadding_valuename

const char supportspadding_valuename[] = "SupportsPadding"
static

Definition at line 171 of file regsvr.c.

Referenced by register_metadatareaders().

◆ supportstransparency_valuename

const char supportstransparency_valuename[] = "SupportsTransparency"
static

Definition at line 178 of file regsvr.c.

Referenced by register_pixelformats().

◆ tEXt

const BYTE tEXt[] = "tEXt"
static

Definition at line 1578 of file regsvr.c.

◆ tga_footer_magic

const BYTE tga_footer_magic[18] = "TRUEVISION-XFILE."
static

Definition at line 1290 of file regsvr.c.

◆ tga_formats

GUID const* const tga_formats[]
static
Initial value:
= {
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat16bppBGR555,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA,
}

Definition at line 1301 of file regsvr.c.

◆ tga_grayscale_magic

const BYTE tga_grayscale_magic[18] = {0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0}
static

Definition at line 1298 of file regsvr.c.

◆ tga_grayscale_mask

const BYTE tga_grayscale_mask[18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xcf}
static

Definition at line 1299 of file regsvr.c.

◆ tga_indexed_magic

const BYTE tga_indexed_magic[18] = {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0}
static

Definition at line 1292 of file regsvr.c.

◆ tga_indexed_mask

const BYTE tga_indexed_mask[18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xcf}
static

Definition at line 1293 of file regsvr.c.

◆ tga_patterns

struct decoder_pattern const tga_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE tga_footer_magic[18]
Definition: regsvr.c:1290
static const BYTE tga_indexed_magic[18]
Definition: regsvr.c:1292
static const BYTE tga_grayscale_magic[18]
Definition: regsvr.c:1298
static const BYTE tga_grayscale_mask[18]
Definition: regsvr.c:1299
static const BYTE tga_truecolor_mask[18]
Definition: regsvr.c:1296
static const BYTE tga_indexed_mask[18]
Definition: regsvr.c:1293
static const BYTE tga_truecolor_magic[18]
Definition: regsvr.c:1295

Definition at line 1312 of file regsvr.c.

◆ tga_truecolor_magic

const BYTE tga_truecolor_magic[18] = {0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
static

Definition at line 1295 of file regsvr.c.

◆ tga_truecolor_mask

const BYTE tga_truecolor_mask[18] = {0,0xff,0xf7,0,0,0,0,0,0,0,0,0,0,0,0,0,0x87,0xc0}
static

Definition at line 1296 of file regsvr.c.

◆ tiff_decode_formats

GUID const* const tiff_decode_formats[]
static
Initial value:
= {
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat16bppGray,
&GUID_WICPixelFormat32bppGrayFloat,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat2bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppBGR,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA,
&GUID_WICPixelFormat48bppRGB,
&GUID_WICPixelFormat64bppRGBA,
&GUID_WICPixelFormat64bppPRGBA,
&GUID_WICPixelFormat32bppCMYK,
&GUID_WICPixelFormat64bppCMYK,
&GUID_WICPixelFormat96bppRGBFloat,
&GUID_WICPixelFormat128bppRGBAFloat,
&GUID_WICPixelFormat128bppPRGBAFloat,
}

Definition at line 1259 of file regsvr.c.

◆ tiff_encode_formats

GUID const* const tiff_encode_formats[]
static
Initial value:
= {
&GUID_WICPixelFormatBlackWhite,
&GUID_WICPixelFormat4bppGray,
&GUID_WICPixelFormat8bppGray,
&GUID_WICPixelFormat1bppIndexed,
&GUID_WICPixelFormat4bppIndexed,
&GUID_WICPixelFormat8bppIndexed,
&GUID_WICPixelFormat24bppBGR,
&GUID_WICPixelFormat32bppBGRA,
&GUID_WICPixelFormat32bppPBGRA,
&GUID_WICPixelFormat48bppRGB,
&GUID_WICPixelFormat64bppRGBA,
&GUID_WICPixelFormat64bppPRGBA,
}

Definition at line 1453 of file regsvr.c.

◆ tiff_magic_be

const BYTE tiff_magic_be[] = {0x4d,0x4d,0,42}
static

Definition at line 1257 of file regsvr.c.

◆ tiff_magic_le

const BYTE tiff_magic_le[] = {0x49,0x49,42,0}
static

Definition at line 1256 of file regsvr.c.

◆ tiff_patterns

struct decoder_pattern const tiff_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE tiff_magic_be[]
Definition: regsvr.c:1257
static const BYTE tiff_magic_le[]
Definition: regsvr.c:1256

Definition at line 1284 of file regsvr.c.

◆ tIME

const BYTE tIME[] = "tIME"
static

Definition at line 1638 of file regsvr.c.

◆ vendor_valuename

const WCHAR vendor_valuename[] = L"Vendor"
static

◆ version_valuename

const char version_valuename[] = "Version"
static

◆ wmp_formats

GUID const* const wmp_formats[]
static

Definition at line 1193 of file regsvr.c.

◆ wmp_magic_v0

const BYTE wmp_magic_v0[] = {0x49, 0x49, 0xbc, 0x00}
static

Definition at line 1190 of file regsvr.c.

◆ wmp_magic_v1

const BYTE wmp_magic_v1[] = {0x49, 0x49, 0xbc, 0x01}
static

Definition at line 1191 of file regsvr.c.

◆ wmp_patterns

struct decoder_pattern const wmp_patterns[]
static
Initial value:
= {
{0}
}
static const BYTE wmp_magic_v1[]
Definition: regsvr.c:1191
static const BYTE wmp_magic_v0[]
Definition: regsvr.c:1190

Definition at line 1226 of file regsvr.c.