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) {
240 error_close_interface_key:
332 if (
list->viprogid) {
342 error_close_clsid_key:
346 error_close_coclass_key:
379 if (
list->viprogid) {
386 error_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,
770 error_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();
static HRESULT unregister_filters(struct regsvr_filter const *list)
#define HRESULT_FROM_WIN32(x)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
HRESULT WINAPI DllRegisterServer(void)
ACPI_SIZE strlen(const char *String)
static const WCHAR sourcefilter_valuename[]
static const WCHAR base_ifa_keyname[]
const REGFILTERPINS2 * rgPins2
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
static HRESULT unregister_coclasses(struct regsvr_coclass const *list)
static LONG register_key_defvalueA(HKEY base, WCHAR const *name, char const *value)
WINE_DEFAULT_DEBUG_CHANNEL(quartz)
LONG WINAPI RegDeleteTreeA(IN HKEY hKey, IN LPCSTR lpSubKey OPTIONAL)
static const WCHAR curver_keyname[]
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)
static const WCHAR ips32_keyname[]
GLenum GLuint GLenum GLsizei const GLchar * buf
static HRESULT unregister_mediatypes_extension(struct regsvr_mediatype_extension const *list)
#define ERROR_ACCESS_DENIED
static HRESULT register_interfaces(struct regsvr_interface const *list)
const CLSID * clsMinorType
HRESULT WINAPI DllUnregisterServer(void)
static LONG register_key_defvalueW(HKEY base, WCHAR const *name, WCHAR const *value)
static const WCHAR ips_keyname[]
const CLSID * clsPinCategory
#define ERROR_FILE_NOT_FOUND
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
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
static HRESULT unregister_interfaces(struct regsvr_interface const *list)
static const WCHAR mediatype_name[]
static const WCHAR viprogid_keyname[]
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI QUARTZ_DllRegisterServer(void)
static const WCHAR interface_keyname[]
static const WCHAR ps_clsid32_keyname[]
static const WCHAR extensions_keyname[]
static const WCHAR clsid_keyname[]
static struct regsvr_mediatype_parsing const mediatype_parsing_list[]
#define memcpy(s1, s2, n)
static struct regsvr_filter const filter_list[]
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
LSTATUS WINAPI RegDeleteTreeW(HKEY hKey, LPCWSTR lpszSubKey)
static struct regsvr_mediatype_extension const mediatype_extension_list[]
int WINAPI lstrlenA(LPCSTR lpString)
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
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
static const WCHAR subtype_valuename[]
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
static HRESULT register_coclasses(struct regsvr_coclass const *list)
const REGPINTYPES * lpMediaType
const REGPINMEDIUM * lpMedium
static const WCHAR ps_clsid_keyname[]
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
struct mediatype mediatypes[11]
static HRESULT register_filters(struct regsvr_filter const *list)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
static struct regsvr_coclass const coclass_list[]
#define HKEY_CLASSES_ROOT
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
static HRESULT register_mediatypes_parsing(struct regsvr_mediatype_parsing const *list)
static const WCHAR num_methods_keyname[]
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)
static LONG register_key_guid(HKEY base, WCHAR const *name, GUID const *guid)
static const WCHAR progid_keyname[]
static HRESULT unregister_mediatypes_parsing(struct regsvr_mediatype_parsing const *list)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
#define RegCloseKey(hKey)
static HRESULT register_mediatypes_extension(struct regsvr_mediatype_extension const *list)
static struct regsvr_interface const interface_list[]
static const char tmodel_valuename[]
static LONG register_progid(WCHAR const *clsid, char const *progid, char const *curver_progid, char const *name, char const *extra)