22#define NONAMELESSUNION
23#define NONAMELESSSTRUCT
37#include "wine/unicode.h"
47#define ARRAYSIZE(array) (sizeof(array)/sizeof((array)[0]))
80static const WCHAR wszSlashInstance[] = {
'\\',
'I',
'n',
's',
't',
'a',
'n',
'c',
'e',
'\\',0};
86static const WCHAR wszFriendlyName[] = {
'F',
'r',
'i',
'e',
'n',
'd',
'l',
'y',
'N',
'a',
'm',
'e',0};
90static const WCHAR wszFilterDataName[] = {
'F',
'i',
'l',
't',
'e',
'r',
'D',
'a',
't',
'a',0};
96static const WCHAR wszAllowedMany[] = {
'A',
'l',
'l',
'o',
'w',
'e',
'd',
'M',
'a',
'n',
'y',0};
97static const WCHAR wszAllowedZero[] = {
'A',
'l',
'l',
'o',
'w',
'e',
'd',
'Z',
'e',
'r',
'o',0};
99static const WCHAR wszIsRendered[] = {
'I',
's',
'R',
'e',
'n',
'd',
'e',
'r',
'e',
'd',0};
149 if (
v->current +
size >
v->capacity)
152 v->capacity = (
v->capacity +
size) * 2;
154 memcpy(
v->pData, pOldData,
v->current);
191 *
ppv = &
This->IFilterMapper3_iface;
193 *
ppv = &
This->IFilterMapper_iface;
195 *
ppv = &
This->IAMFilterData_iface;
241 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
248 return IUnknown_AddRef(
This->outer_unk);
255 return IUnknown_Release(
This->outer_unk);
261 IFilterMapper3 * iface,
263 DWORD dwCategoryMerit,
285 strcatW(wszKeyName, wClsidAMCat);
287 strcatW(wszKeyName, wClsidCategory);
319 IFilterMapper3 * iface,
320 const CLSID *pclsidCategory,
332 pclsidCategory = &CLSID_LegacyAmFilterCategory;
339 strcatW(wszKeyName, wClsidCategory);
342 strcatW(wszKeyName, szInstance);
436 rrfp.
bCategory = rgPin2.clsPinCategory ? 1 : 0;
449 for (
j = 0;
j < rgPin2.nMediaTypes;
j++)
471 for (
j = 0;
j < rgPin2.nMediums;
j++)
514 FIXME(
"Filter registry version %d not supported\n", prrf->
dwVersion);
521 TRACE(
"version = %d, merit = %x, #pins = %d, unused = %x\n",
529 pCurrent +=
sizeof(
struct REG_RF);
542 TRACE(
"\tpin[%d]: flags = %x, instances = %d, media types = %d, mediums = %d\n",
549 pCurrent +=
sizeof(
struct REG_RFP);
554 pCurrent +=
sizeof(
DWORD);
560 if (rgPins2[
i].nMediaTypes > 0)
561 lpMediaType =
CoTaskMemAlloc(rgPins2[
i].nMediaTypes *
sizeof(*lpMediaType));
579 lpMediaType[
j].clsMajorType = clsMajor;
580 lpMediaType[
j].clsMinorType = clsMinor;
582 pCurrent +=
sizeof(*prt);
585 if (rgPins2[
i].nMediums > 0)
627 IFilterMapper3 * iface,
631 const CLSID *pclsidCategory,
642 static const WCHAR wszDevice[] = {
'@',
'd',
'e',
'v',
'i',
'c',
'e',
':',
's',
'w',
':',0};
649 TRACE(
"(%s, %s, %p, %s, %s, %p)\n",
670 regfilter2.u.s2.
rgPins2 = pregfp2;
671 for (
i = 0;
i < prf2->u.s1.
cPins;
i++)
693 FIXME(
"dwVersion other that 1 or 2 not supported at the moment\n");
703 pclsidCategory = &CLSID_LegacyAmFilterCategory;
709 nameLen =
sizeof(wszDevice)/
sizeof(wszDevice[0]) +
CHARS_IN_GUID - 1 + 1;
712 nameLen +=
strlenW(szInstance);
720 strcpyW(pwszParseName, wszDevice);
721 pCurrent +=
strlenW(wszDevice);
732 strcpyW(pCurrent+1, szInstance);
740 strcpyW(pCurrent+1, szClsidTemp);
751 hr = IParseDisplayName_ParseDisplayName(pParser, pBindCtx, pwszParseName, &ulEaten, &pMoniker);
754 IBindCtx_Release(pBindCtx);
756 IParseDisplayName_Release(pParser);
784 ERR(
"Couldn't create SAFEARRAY\n");
812 IPropertyBag_Release(pPropBag);
817 *ppMoniker = pMoniker;
819 IMoniker_Release(pMoniker);
823 TRACE(
"-- returning %x\n",
hr);
834 const GUID * pMatchTypes)
839 if ((nMatchTypes == 0) && (nPinTypes > 0))
842 for (
j = 0;
j < nPinTypes;
j++)
845 for (
i = 0;
i < nMatchTypes*2;
i+=2)
879 IFilterMapper3 * iface,
886 const GUID *pInputTypes,
888 const CLSID *pPinCategoryIn,
892 const GUID *pOutputTypes,
894 const CLSID *pPinCategoryOut)
902 TRACE(
"(%p, %x, %s, %x, %s, %d, %p, %p, %p, %s, %s, %p, %p, %p)\n",
905 bExactMatch ?
"true" :
"false",
907 bInputNeeded ?
"true" :
"false",
912 bRender ?
"true" :
"false",
913 bOutputNeeded ?
"true" :
"false",
929 hr = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &CLSID_ActiveMovieCategories, &pEnumCat, 0);
931 ICreateDevEnum_Release(pCreateDevEnum);
935 while (IEnumMoniker_Next(pEnumCat, 1, &pMonikerCat,
NULL) ==
S_OK)
972 hrSub = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat, &pEnum, 0);
976 while (IEnumMoniker_Next(pEnum, 1, &pMoniker,
NULL) ==
S_OK)
983 BOOL bInputMatch = !bInputNeeded;
984 BOOL bOutputMatch = !bOutputNeeded;
1027 for (
i = 0; (
i < rf2.u.s2.
cPins2) && (!bInputMatch || !bOutputMatch);
i++)
1038 if (bInputMatch && bOutputMatch)
1048 IPropertyBag_Release(pPropBag);
1051 IEnumMoniker_Release(pEnum);
1057 IPropertyBag_Release(pPropBagCat);
1058 IMoniker_Release(pMonikerCat);
1074 for (
i = 0;
i < nMonikerCount;
i++)
1084 IEnumMoniker_Release(pEnumCat);
1085 ICreateDevEnum_Release(pCreateDevEnum);
1092 TRACE(
"(%p, %p)\n", iface, ppEnum);
1095 return CoCreateInstance(&CLSID_SystemDeviceEnum,
NULL, CLSCTX_INPROC, &IID_ICreateDevEnum, (
void**)ppEnum);
1127 return IUnknown_AddRef(
This->outer_unk);
1134 return IUnknown_Release(
This->outer_unk);
1140 IFilterMapper * iface,
1161 TRACE(
"(%p/%p)->(%p, %x, %s, %s, %s, %s, %s, %s, %s)\n",
1166 bInputNeeded ?
"true" :
"false",
1169 bRender ?
"true" :
"false",
1170 bOutputNeeded ?
"true" :
"false",
1174 InputType[0] = clsInMaj;
1175 InputType[1] = clsInSub;
1176 OutputType[0] = clsOutMaj;
1177 OutputType[1] = clsOutSub;
1181 hr = IFilterMapper3_EnumMatchingFilters(&
This->IFilterMapper3_iface, &ppEnumMoniker, 0,
TRUE,
1188 while(IEnumMoniker_Next(ppEnumMoniker, 1, &IMon, &nb) ==
S_OK)
1190 IMoniker_Release(IMon);
1196 IEnumMoniker_Release(ppEnumMoniker);
1203 IEnumMoniker_Release(ppEnumMoniker);
1208 IEnumMoniker_Reset(ppEnumMoniker);
1209 while(IEnumMoniker_Next(ppEnumMoniker, 1, &IMon, &nb) ==
S_OK)
1247 IPropertyBag_Release(pPropBagCat);
1248 IMoniker_Release(IMon);
1260 IEnumMoniker_Release(ppEnumMoniker);
1281 strcatW(wszKeyName, wszClsid);
1297 strcatW(wszKeyName, wszClsid);
1325 IFilterMapper * iface,
1332 CLSID ConnectsToFilter,
1340 WCHAR * wszPinsKeyName;
1343 TRACE(
"(%p)->(%s, %s, %d, %d, %d, %d, %s, %s)\n", iface,
debugstr_guid(&
Filter),
debugstr_w(
szName), bRendered,
1351 strcatW(wszKeyName, wszClsid);
1360 if (!wszPinsKeyName)
1420 IFilterMapper * iface,
1432 WCHAR * wszTypesKey;
1461 strcatW(wszTypesKey, wszClsid);
1478 strcpyW(wszKeyName, wszClsidMajorType);
1480 strcatW(wszKeyName, wszClsidSubType);
1524 strcatW(wszKeyName, wszClsid);
1566 WCHAR * wszPinNameKey;
1579 strcatW(wszKeyName, wszClsid);
1633 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
1640 return IUnknown_AddRef(
This->outer_unk);
1647 return IUnknown_Release(
This->outer_unk);
1653 BYTE **ppRegFilter2)
1664 *ppRegFilter2 = (
BYTE *)&prf2;
1670 *ppRegFilter2 =
NULL;
1678 BYTE **pRegFilterData,
1683 TRACE(
"(%p/%p)->(%p, %p, %p)\n",
This, iface, prf2, pRegFilterData, pcb);
1700 TRACE(
"(%p, %p)\n", pUnkOuter, ppObj);
1719 TRACE(
"-- created at %p\n", pFM2impl);
1729 TRACE(
"(%p, %p)\n", pUnkOuter, ppObj);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
const CLSID * clsMinorType
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
static const WCHAR szDescription[]
static const WCHAR wszDirection[]
static HRESULT WINAPI FilterMapper_UnregisterPin(IFilterMapper *iface, CLSID Filter, LPCWSTR Name)
static const WCHAR wszClsidName[]
static FilterMapper3Impl * impl_from_IFilterMapper(IFilterMapper *iface)
static ULONG WINAPI AMFilterData_Release(IAMFilterData *iface)
static const WCHAR wszFilterSlash[]
static const WCHAR wszSlashInstance[]
static int mm_compare(const void *left, const void *right)
static const IAMFilterDataVtbl AMFilterDataVtbl
static const WCHAR wszTypes[]
static HRESULT FM2_ReadFilterData(BYTE *pData, REGFILTER2 *prf2)
static HRESULT WINAPI FilterMapper3_QueryInterface(IFilterMapper3 *iface, REFIID riid, LPVOID *ppv)
static void delete_vector(struct Vector *v)
static BOOL MatchTypes(BOOL bExactMatch, DWORD nPinTypes, const REGPINTYPES *pPinTypes, DWORD nMatchTypes, const GUID *pMatchTypes)
static HRESULT FM2_WriteFriendlyName(IPropertyBag *pPropBag, LPCWSTR szName)
static ULONG WINAPI FilterMapper3_Release(IFilterMapper3 *iface)
static const WCHAR wszSlash[]
static const WCHAR wszFilter[]
static HRESULT WINAPI Inner_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static HRESULT WINAPI FilterMapper_UnregisterFilter(IFilterMapper *iface, CLSID Filter)
static const WCHAR wszAllowedMany[]
static HRESULT WINAPI FilterMapper_RegisterPinType(IFilterMapper *iface, CLSID clsFilter, LPCWSTR szName, CLSID clsMajorType, CLSID clsSubType)
static HRESULT WINAPI FilterMapper3_EnumMatchingFilters(IFilterMapper3 *iface, IEnumMoniker **ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID *pInputTypes, const REGPINMEDIUM *pMedIn, const CLSID *pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID *pOutputTypes, const REGPINMEDIUM *pMedOut, const CLSID *pPinCategoryOut)
static HRESULT WINAPI FilterMapper_RegisterFilter(IFilterMapper *iface, CLSID clsid, LPCWSTR szName, DWORD dwMerit)
static ULONG WINAPI FilterMapper_Release(IFilterMapper *iface)
static HRESULT WINAPI FilterMapper3_GetICreateDevEnum(IFilterMapper3 *iface, ICreateDevEnum **ppEnum)
static const IFilterMapperVtbl fmvtbl
static ULONG WINAPI AMFilterData_AddRef(IAMFilterData *iface)
static ULONG WINAPI Inner_Release(IUnknown *iface)
static int add_data(struct Vector *v, const BYTE *pData, int size)
static HRESULT WINAPI FilterMapper_RegisterFilterInstance(IFilterMapper *iface, CLSID clsid, LPCWSTR szName, CLSID *MRId)
static HRESULT WINAPI FilterMapper_RegisterPin(IFilterMapper *iface, CLSID Filter, LPCWSTR szName, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin)
static int find_data(const struct Vector *v, const BYTE *pData, int size)
static HRESULT WINAPI FilterMapper_QueryInterface(IFilterMapper *iface, REFIID riid, LPVOID *ppv)
static HRESULT WINAPI FilterMapper3_RegisterFilter(IFilterMapper3 *iface, REFCLSID clsidFilter, LPCWSTR szName, IMoniker **ppMoniker, const CLSID *pclsidCategory, const OLECHAR *szInstance, const REGFILTER2 *prf2)
static const WCHAR wszMeritName[]
static const IFilterMapper3Vtbl fm3vtbl
static HRESULT WINAPI AMFilterData_QueryInterface(IAMFilterData *iface, REFIID riid, LPVOID *ppv)
static FilterMapper3Impl * impl_from_IFilterMapper3(IFilterMapper3 *iface)
static HRESULT FM2_WriteFilterData(const REGFILTER2 *prf2, BYTE **ppData, ULONG *pcbData)
static HRESULT WINAPI AMFilterData_ParseFilterData(IAMFilterData *iface, BYTE *pData, ULONG cb, BYTE **ppRegFilter2)
static void FM2_DeleteRegFilter(REGFILTER2 *prf2)
static const WCHAR wszPins[]
static HRESULT WINAPI AMFilterData_CreateFilterData(IAMFilterData *iface, REGFILTER2 *prf2, BYTE **pRegFilterData, ULONG *pcb)
HRESULT FilterMapper2_create(IUnknown *pUnkOuter, LPVOID *ppObj)
static const WCHAR wszAllowedZero[]
static HRESULT FM2_WriteClsid(IPropertyBag *pPropBag, REFCLSID clsid)
static const WCHAR wszClsidSlash[]
static ULONG WINAPI Inner_AddRef(IUnknown *iface)
static HRESULT WINAPI FilterMapper3_CreateCategory(IFilterMapper3 *iface, REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR szDescription)
static HRESULT WINAPI FilterMapper_UnregisterFilterInstance(IFilterMapper *iface, CLSID MRId)
static HRESULT WINAPI FilterMapper3_UnregisterFilter(IFilterMapper3 *iface, const CLSID *pclsidCategory, const OLECHAR *szInstance, REFCLSID Filter)
static ULONG WINAPI FilterMapper3_AddRef(IFilterMapper3 *iface)
static const WCHAR wszFilterDataName[]
static HRESULT WINAPI FilterMapper_EnumMatchingFilters(IFilterMapper *iface, IEnumRegFilters **ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOutputNeeded, CLSID clsOutMaj, CLSID clsOutSub)
HRESULT FilterMapper_create(IUnknown *pUnkOuter, LPVOID *ppObj)
static FilterMapper3Impl * impl_from_IUnknown(IUnknown *iface)
static const IUnknownVtbl IInner_VTable
static const WCHAR wszFriendlyName[]
static ULONG WINAPI FilterMapper_AddRef(IFilterMapper *iface)
static const WCHAR wszIsRendered[]
static FilterMapper3Impl * impl_from_IAMFilterData(IAMFilterData *iface)
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 RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
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 RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
static __inline const char * debugstr_an(const char *s, int n)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
#define REG_PINFLAG_B_MANY
HRESULT EnumMonikerImpl_Create(IMoniker **ppMoniker, ULONG nMonikerCount, IEnumMoniker **ppEnum)
HRESULT IEnumRegFiltersImpl_Construct(REGFILTER *pInRegFilters, const ULONG size, IEnumRegFilters **ppEnum)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
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)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID * ppData
static HMODULE MODULEINFO DWORD cb
static SCRIPT_CACHE SCRIPT_ANALYSIS * psa
#define REG_OPTION_NON_VOLATILE
_In_ DWORD _In_ DWORD dwOffset
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IParseDisplayName
const GUID IID_IPropertyBag
static const WCHAR szName[]
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
IFilterMapper3 IFilterMapper3_iface
IFilterMapper IFilterMapper_iface
IAMFilterData IAMFilterData_iface
const REGFILTERPINS * rgPins
const REGFILTERPINS2 * rgPins2
const CLSID * clsPinCategory
const REGPINMEDIUM * lpMedium
const REGPINTYPES * lpMediaType
const REGPINTYPES * lpMediaType
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
#define MEDIASUBTYPE_NULL
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
#define HRESULT_FROM_WIN32(x)
#define HKEY_CLASSES_ROOT