21#define NONAMELESSUNION
22#define NONAMELESSSTRUCT
39#include "wine/unicode.h"
128 'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
'e', 0 };
130 'B',
'a',
's',
'e',
'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
133 'N',
'u',
'm',
'M',
'e',
't',
'h',
'o',
'd',
's', 0 };
135 'P',
'r',
'o',
'x',
'y',
'S',
't',
'u',
'b',
'C',
'l',
's',
138 'P',
'r',
'o',
'x',
'y',
'S',
't',
'u',
'b',
'C',
'l',
's',
139 'i',
'd',
'3',
'2', 0 };
141 'C',
'L',
'S',
'I',
'D', 0 };
143 'C',
'u',
'r',
'V',
'e',
'r', 0 };
145 'I',
'n',
'P',
'r',
'o',
'c',
'S',
'e',
'r',
'v',
'e',
'r',
148 'I',
'n',
'P',
'r',
'o',
'c',
'S',
'e',
'r',
'v',
'e',
'r',
151 'P',
'r',
'o',
'g',
'I',
'D', 0 };
153 'V',
'e',
'r',
's',
'i',
'o',
'n',
'I',
'n',
'd',
'e',
'p',
154 'e',
'n',
'd',
'e',
'n',
't',
'P',
'r',
'o',
'g',
'I',
'D',
158 'M',
'e',
'd',
'i',
'a',
' ',
'T',
'y',
'p',
'e', 0 };
160 'S',
'u',
'b',
't',
'y',
'p',
'e', 0 };
162 'S',
'o',
'u',
'r',
'c',
'e',
' ',
'F',
'i',
'l',
't',
'e',
'r', 0 };
164 'E',
'x',
't',
'e',
'n',
's',
'i',
'o',
'n',
's', 0 };
175 char const *
progid,
char const *curver_progid,
205 if (
list->base_iid) {
210 if (0 <=
list->num_methods) {
211 static const WCHAR fmt[] = {
'%',
'd', 0 };
226 if (
list->ps_clsid) {
231 if (
list->ps_clsid32) {
240error_close_interface_key:
332 if (
list->viprogid) {
342 error_close_clsid_key:
346error_close_coclass_key:
379 if (
list->viprogid) {
386error_close_coclass_key:
425 for(
i = 0;
list->line[
i];
i++) {
491 if (extensions_root_key)
563 if (extensions_root_key)
586 for (
i = 0;
list->pins[
i].flags != 0xFFFFFFFF;
i++) ;
595 for (
i = 0;
list->pins[
i].flags != 0xFFFFFFFF;
i++) {
600 for (nbmt = 0;
list->pins[
i].mediatypes[nbmt].majortype; nbmt++) ;
607 lpClsid = (
CLSID*) (lpMediatype + nbmt);
608 for (
j = 0;
j < nbmt;
j++) {
609 (lpMediatype +
j)->clsMajorType = lpClsid +
j*2;
612 if (
list->pins[
i].mediatypes[
j].subtype)
617 *(
DWORD*)(lpClsid +
j*2 + 1) =
list->pins[
i].mediatypes[
j].fourcc;
630 ERR(
"failed to register with hresult 0x%x\n",
hr);
646 IFilterMapper2_Release(pFM2);
667 hr = IFilterMapper2_UnregisterFilter(pFM2,
list->category,
NULL,
list->clsid);
668 IFilterMapper2_Release(pFM2);
732 char const *curver_progid,
770error_close_progid_key:
797 {
"0,4,,52494646,8,4,,41564920",
801 &MEDIASUBTYPE_MPEG1System,
802 {
"0, 16, FFFFFFFFF100010001800001FFFFFFFF, 000001BA2100010001800001000001BB",
806 &MEDIASUBTYPE_MPEG1VideoCD,
807 {
"0, 4, , 52494646, 8, 8, , 43445841666D7420, 36, 20, FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF, 646174610000000000FFFFFFFFFFFFFFFFFFFF00",
811 &MEDIASUBTYPE_MPEG1Video,
812 {
"0, 4, , 000001B3",
816 &MEDIASUBTYPE_MPEG1Audio,
817 {
"0, 2, FFE0, FFE0",
818 "0, 10, FFFFFF00000080808080, 494433000000000000",
822 &MEDIASUBTYPE_MPEG2_PROGRAM,
823 {
"0, 5, FFFFFFFFC0, 000001BA40",
827 &MEDIASUBTYPE_QTMovie,
828 {
"4, 4, , 6d646174",
834 {
"0,4,,52494646,8,4,,57415645",
844 {
"0,4,,464f524d,8,4,,41494646",
845 "0,4,,464f524d,8,4,,41494643",
856 {
"0,4,,52494646,8,4,,524D4944",
869 &MEDIASUBTYPE_MPEG1Audio,
880 { &CLSID_AviSplitter,
881 &CLSID_LegacyAmFilterCategory,
882 {
'A',
'V',
'I',
' ',
'S',
'p',
'l',
'i',
't',
't',
'e',
'r',0},
885 { { &MEDIATYPE_Stream, &MEDIASUBTYPE_Avi },
897 { &CLSID_MPEG1Splitter,
898 &CLSID_LegacyAmFilterCategory,
899 {
'M',
'P',
'E',
'G',
'-',
'I',
' ',
'S',
't',
'r',
'e',
'a',
'm',
' ',
'S',
'p',
'l',
'i',
't',
't',
'e',
'r',0},
902 { { &MEDIATYPE_Stream, &MEDIASUBTYPE_MPEG1Audio },
903 { &MEDIATYPE_Stream, &MEDIASUBTYPE_MPEG1Video },
904 { &MEDIATYPE_Stream, &MEDIASUBTYPE_MPEG1System },
905 { &MEDIATYPE_Stream, &MEDIASUBTYPE_MPEG1VideoCD },
910 { { &MEDIATYPE_Audio, &MEDIASUBTYPE_MPEG1Packet },
911 { &MEDIATYPE_Audio, &MEDIASUBTYPE_MPEG1AudioPayload },
916 { { &MEDIATYPE_Video, &MEDIASUBTYPE_MPEG1Packet },
917 { &MEDIATYPE_Video, &MEDIASUBTYPE_MPEG1Payload },
924 { &CLSID_NullRenderer,
925 &CLSID_LegacyAmFilterCategory,
926 {
'N',
'u',
'l',
'l',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
936 { &CLSID_VideoRenderer,
937 &CLSID_LegacyAmFilterCategory,
938 {
'V',
'i',
'd',
'e',
'o',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
948 { &CLSID_VideoRendererDefault,
949 &CLSID_LegacyAmFilterCategory,
950 {
'V',
'i',
'd',
'e',
'o',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
960 { &CLSID_VideoMixingRenderer,
961 &CLSID_LegacyAmFilterCategory,
962 {
'V',
'i',
'd',
'e',
'o',
' ',
'M',
'i',
'x',
'i',
'n',
'g',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
972 { &CLSID_VideoMixingRenderer9,
973 &CLSID_LegacyAmFilterCategory,
974 {
'V',
'i',
'd',
'e',
'o',
' ',
'M',
'i',
'x',
'i',
'n',
'g',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',
' ',
'9',0},
984 { &CLSID_DSoundRender,
985 &CLSID_LegacyAmFilterCategory,
986 {
'A',
'u',
'd',
'i',
'o',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
989 { { &MEDIATYPE_Audio, &MEDIASUBTYPE_PCM },
997 { &CLSID_AudioRender,
998 &CLSID_LegacyAmFilterCategory,
999 {
'A',
'u',
'd',
'i',
'o',
' ',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'r',0},
1002 { { &MEDIATYPE_Audio, &MEDIASUBTYPE_PCM },
1011 &CLSID_LegacyAmFilterCategory,
1012 {
'A',
'V',
'I',
' ',
'D',
'e',
'c',
'o',
'm',
'p',
'r',
'e',
's',
's',
'o',
'r',0},
1027 { &CLSID_AsyncReader,
1028 &CLSID_LegacyAmFilterCategory,
1029 {
'F',
'i',
'l',
'e',
' ',
'S',
'o',
'u',
'r',
'c',
'e',
' ',
'(',
'A',
's',
'y',
'n',
'c',
'.',
')',0},
1039 { &CLSID_ACMWrapper,
1040 &CLSID_LegacyAmFilterCategory,
1041 {
'A',
'C',
'M',
' ',
'W',
'r',
'a',
'p',
'p',
'e',
'r',0},
1056 { &CLSID_WAVEParser,
1057 &CLSID_LegacyAmFilterCategory,
1058 {
'W',
'a',
'v',
'e',
' ',
'P',
'a',
'r',
's',
'e',
'r',0},
1061 { { &MEDIATYPE_Stream, &MEDIASUBTYPE_WAVE },
1062 { &MEDIATYPE_Stream, &MEDIASUBTYPE_AU },
1063 { &MEDIATYPE_Stream, &MEDIASUBTYPE_AIFF },
1123 hr = QUARTZ_DllUnregisterServer();
ACPI_SIZE strlen(const char *String)
const CLSID * clsMinorType
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
static WCHAR const interface_keyname[10]
static char const tmodel_valuename[]
static LONG register_key_defvalueW(HKEY base, WCHAR const *name, WCHAR const *value)
static WCHAR const num_methods_keyname[11]
static HRESULT unregister_coclasses(struct regsvr_coclass const *list)
HRESULT WINAPI DllRegisterServer(void)
static HRESULT unregister_interfaces(struct regsvr_interface const *list)
static HRESULT register_interfaces(struct regsvr_interface const *list)
static LONG register_progid(WCHAR const *clsid, char const *progid, char const *curver_progid, char const *name, char const *extra)
static WCHAR const ips_keyname[13]
static WCHAR const ps_clsid_keyname[15]
static WCHAR const ips32_keyname[15]
static WCHAR const clsid_keyname[6]
static WCHAR const curver_keyname[7]
static WCHAR const base_ifa_keyname[14]
static LONG register_key_guid(HKEY base, WCHAR const *name, GUID const *guid)
HRESULT WINAPI DllUnregisterServer(void)
static WCHAR const progid_keyname[7]
static struct regsvr_interface const interface_list[]
static WCHAR const ps_clsid32_keyname[17]
static HRESULT register_coclasses(struct regsvr_coclass const *list)
static WCHAR const viprogid_keyname[25]
static LONG register_key_defvalueA(HKEY base, WCHAR const *name, char const *value)
static struct regsvr_coclass const coclass_list[]
static HRESULT unregister_mediatypes_parsing(struct regsvr_mediatype_parsing const *list)
static const WCHAR subtype_valuename[]
static HRESULT register_mediatypes_parsing(struct regsvr_mediatype_parsing const *list)
static const WCHAR sourcefilter_valuename[]
static HRESULT register_mediatypes_extension(struct regsvr_mediatype_extension const *list)
static struct regsvr_filter const filter_list[]
HRESULT WINAPI QUARTZ_DllRegisterServer(void)
static HRESULT unregister_filters(struct regsvr_filter const *list)
static const WCHAR mediatype_name[]
static HRESULT unregister_mediatypes_extension(struct regsvr_mediatype_extension const *list)
static HRESULT register_filters(struct regsvr_filter const *list)
static const WCHAR extensions_keyname[]
static struct regsvr_mediatype_extension const mediatype_extension_list[]
static struct regsvr_mediatype_parsing const mediatype_parsing_list[]
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)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegDeleteTreeA(IN HKEY hKey, IN LPCSTR lpSubKey OPTIONAL)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
#define ERROR_ACCESS_DENIED
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
GLenum GLuint GLenum GLsizei const GLchar * buf
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
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 GLint GLint j
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
const REGFILTERPINS2 * rgPins2
const CLSID * clsPinCategory
const REGPINMEDIUM * lpMedium
const REGPINTYPES * lpMediaType
struct mediatype mediatypes[11]
#define HRESULT_FROM_WIN32(x)
#define HKEY_CLASSES_ROOT
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)