PullPin *pin = This->Parser.pInputPin;
IMediaSample *sample = NULL;
HRESULT hr;
+ ULONG ref;
TRACE("(%p, %u)->()\n", This, streamnumber);
hr = IAsyncReader_Request(pin->pReader, sample, streamnumber);
if (FAILED(hr))
- assert(IMediaSample_Release(sample) == 0);
+ {
+ ref = IMediaSample_Release(sample);
+ assert(ref == 0);
+ }
}
else
{
if (sample)
{
ERR("There should be no sample!\n");
- assert(IMediaSample_Release(sample) == 0);
+ ref = IMediaSample_Release(sample);
+ assert(ref == 0);
}
}
TRACE("--> %08x\n", hr);
static HRESULT AVISplitter_done_process(LPVOID iface)
{
AVISplitterImpl *This = iface;
-
DWORD x;
+ ULONG ref;
for (x = 0; x < This->Parser.cStreams; ++x)
{
stream->thread = NULL;
if (stream->sample)
- assert(IMediaSample_Release(stream->sample) == 0);
+ {
+ ref = IMediaSample_Release(stream->sample);
+ assert(ref == 0);
+ }
stream->sample = NULL;
ResetEvent(stream->packet_queued);
{
AVISplitterImpl *This = iface;
DWORD x;
+ ULONG ref;
TRACE("(%p)->()\n", This);
StreamData *stream = This->streams + x;
if (stream->sample)
- assert(IMediaSample_Release(stream->sample) == 0);
+ {
+ ref = IMediaSample_Release(stream->sample);
+ assert(ref == 0);
+ }
stream->sample = NULL;
ResetEvent(stream->packet_queued);
hr = IPropertyBag_Read(pPropBagCat, wszFriendlyName, pvar, NULL);
if (SUCCEEDED(hr))
- TRACE("Moniker = %s\n", debugstr_w(V_UNION(pvar, bstrVal)));
+ TRACE("Moniker = %s\n", debugstr_w(V_BSTR(pvar)));
if (pPropBagCat)
IPropertyBag_Release(pPropBagCat);
}
}
- hr = IFilterGraph2_AddFilter(iface, pfilter, V_UNION(&var, bstrVal));
+ hr = IFilterGraph2_AddFilter(iface, pfilter, V_BSTR(&var));
if (FAILED(hr)) {
WARN("Unable to add filter (%x)\n", hr);
IBaseFilter_Release(pfilter);
goto error;
}
- hr = IFilterGraph2_AddFilter(iface, pfilter, V_UNION(&var, bstrVal));
+ hr = IFilterGraph2_AddFilter(iface, pfilter, V_BSTR(&var));
if (FAILED(hr)) {
WARN("Unable to add filter (%x)\n", hr);
IBaseFilter_Release(pfilter);
IPin_Release(ppinfilter);
if (FAILED(hr)) {
- WARN("Unable to connect %s to renderer (%x)\n", debugstr_w(V_UNION(&var, bstrVal)), hr);
+ WARN("Unable to connect %s to renderer (%x)\n", debugstr_w(V_BSTR(&var)), hr);
goto error;
}
- TRACE("Connected, recursing %s\n", debugstr_w(V_UNION(&var, bstrVal)));
+ TRACE("Connected, recursing %s\n", debugstr_w(V_BSTR(&var)));
VariantClear(&var);
BSTR value;
V_VT(&var) = VT_BSTR;
- V_UNION(&var, bstrVal) = value = SysAllocString(szName);
+ V_BSTR(&var) = value = SysAllocString(szName);
ret = IPropertyBag_Write(pPropBag, wszFriendlyName, &var);
SysFreeString(value);
if (SUCCEEDED(hr))
{
V_VT(&var) = VT_BSTR;
- V_UNION(&var, bstrVal) = wszClsid;
+ V_BSTR(&var) = wszClsid;
hr = IPropertyBag_Write(pPropBag, wszClsidName, &var);
}
CoTaskMemFree(wszClsid);
}
V_VT(&var) = VT_ARRAY | VT_UI1;
- V_UNION(&var, parray) = psa;
+ V_ARRAY(&var) = psa;
if (SUCCEEDED(hr))
hr = IPropertyBag_Write(pPropBag, wszFilterDataName, &var);
if (SUCCEEDED(hrSub))
hrSub = IPropertyBag_Read(pPropBagCat, wszMeritName, &var, NULL);
- if (SUCCEEDED(hrSub) && (V_UNION(&var, ulVal) >= dwMerit))
+ if (SUCCEEDED(hrSub) && (V_UI4(&var) >= dwMerit))
{
CLSID clsidCat;
IEnumMoniker * pEnum;
VARIANT temp;
V_VT(&temp) = VT_EMPTY;
IPropertyBag_Read(pPropBagCat, wszFriendlyName, &temp, NULL);
- TRACE("Considering category %s\n", debugstr_w(V_UNION(&temp, bstrVal)));
+ TRACE("Considering category %s\n", debugstr_w(V_BSTR(&temp)));
VariantClear(&temp);
}
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
if (SUCCEEDED(hrSub))
- hrSub = CLSIDFromString(V_UNION(&var, bstrVal), &clsidCat);
+ hrSub = CLSIDFromString(V_BSTR(&var), &clsidCat);
if (SUCCEEDED(hrSub))
hrSub = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat, &pEnum, 0);
VARIANT temp;
V_VT(&temp) = VT_EMPTY;
IPropertyBag_Read(pPropBag, wszFriendlyName, &temp, NULL);
- TRACE("Considering filter %s\n", debugstr_w(V_UNION(&temp, bstrVal)));
+ TRACE("Considering filter %s\n", debugstr_w(V_BSTR(&temp)));
VariantClear(&temp);
}
}
if (SUCCEEDED(hrSub))
- hrSub = SafeArrayAccessData(V_UNION(&var, parray), (LPVOID*)&pData);
+ hrSub = SafeArrayAccessData(V_ARRAY(&var), (LPVOID*)&pData);
if (SUCCEEDED(hrSub))
hrSub = FM2_ReadFilterData(pData, &rf2);
if (pData)
- SafeArrayUnaccessData(V_UNION(&var, parray));
+ SafeArrayUnaccessData(V_ARRAY(&var));
VariantClear(&var);
if (FAILED(hr))
return hr;
-
+
while(IEnumMoniker_Next(ppEnumMoniker, 1, &IMon, &nb) == S_OK)
{
IMoniker_Release(IMon);
return E_OUTOFMEMORY;
}
ZeroMemory(regfilters, nb_mon * sizeof(REGFILTER)); /* will prevent bad free of Name in case of error. */
-
+
IEnumMoniker_Reset(ppEnumMoniker);
while(IEnumMoniker_Next(ppEnumMoniker, 1, &IMon, &nb) == S_OK)
{
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
if (SUCCEEDED(hrSub))
- hrSub = CLSIDFromString(V_UNION(&var, bstrVal), &clsid);
+ hrSub = CLSIDFromString(V_BSTR(&var), &clsid);
VariantClear(&var);
if (SUCCEEDED(hrSub))
{
- len = (strlenW(V_UNION(&var, bstrVal))+1) * sizeof(WCHAR);
+ len = (strlenW(V_BSTR(&var))+1) * sizeof(WCHAR);
if (!(regfilters[idx].Name = CoTaskMemAlloc(len*2)))
hr = E_OUTOFMEMORY;
}
if (SUCCEEDED(hrSub) && regfilters[idx].Name)
{
- memcpy(regfilters[idx].Name, V_UNION(&var, bstrVal), len);
+ memcpy(regfilters[idx].Name, V_BSTR(&var), len);
regfilters[idx].Clsid = clsid;
idx++;
}
CoTaskMemFree(regfilters[idx].Name);
CoTaskMemFree(regfilters);
IEnumMoniker_Release(ppEnumMoniker);
-
+
return hr;
}
{
strcpyW(wszKeyName, wszFilterSlash);
strcatW(wszKeyName, wszClsid);
-
+
lRet = RegCreateKeyExW(HKEY_CLASSES_ROOT, wszKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL);
hr = HRESULT_FROM_WIN32(lRet);
}
{
strcpyW(wszKeyName, wszClsidSlash);
strcatW(wszKeyName, wszClsid);
-
+
lRet = RegCreateKeyExW(HKEY_CLASSES_ROOT, wszKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL);
hr = HRESULT_FROM_WIN32(lRet);
}
hr = HRESULT_FROM_WIN32(lRet);
RegCloseKey(hKey);
}
-
+
CoTaskMemFree(wszClsid);
return hr;
strcpyW(wszPinsKeyName, wszPins);
strcatW(wszPinsKeyName, wszSlash);
strcatW(wszPinsKeyName, szName);
-
+
lRet = RegCreateKeyExW(hKey, wszPinsKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hPinsKey, NULL);
hr = HRESULT_FROM_WIN32(lRet);
CoTaskMemFree(wszPinsKeyName);