mirror of
https://github.com/reactos/reactos.git
synced 2025-07-27 17:52:35 +00:00
[QUARTZ]
* Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64305
This commit is contained in:
parent
cd97d921f9
commit
80675f700d
9 changed files with 53 additions and 38 deletions
|
@ -134,6 +134,7 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
|
||||||
PullPin *pin = This->Parser.pInputPin;
|
PullPin *pin = This->Parser.pInputPin;
|
||||||
IMediaSample *sample = NULL;
|
IMediaSample *sample = NULL;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
ULONG ref;
|
||||||
|
|
||||||
TRACE("(%p, %u)->()\n", This, streamnumber);
|
TRACE("(%p, %u)->()\n", This, streamnumber);
|
||||||
|
|
||||||
|
@ -247,7 +248,10 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
|
||||||
hr = IAsyncReader_Request(pin->pReader, sample, streamnumber);
|
hr = IAsyncReader_Request(pin->pReader, sample, streamnumber);
|
||||||
|
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
assert(IMediaSample_Release(sample) == 0);
|
{
|
||||||
|
ref = IMediaSample_Release(sample);
|
||||||
|
assert(ref == 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -261,7 +265,8 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
|
||||||
if (sample)
|
if (sample)
|
||||||
{
|
{
|
||||||
ERR("There should be no sample!\n");
|
ERR("There should be no sample!\n");
|
||||||
assert(IMediaSample_Release(sample) == 0);
|
ref = IMediaSample_Release(sample);
|
||||||
|
assert(ref == 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TRACE("--> %08x\n", hr);
|
TRACE("--> %08x\n", hr);
|
||||||
|
@ -493,8 +498,8 @@ static HRESULT AVISplitter_first_request(LPVOID iface)
|
||||||
static HRESULT AVISplitter_done_process(LPVOID iface)
|
static HRESULT AVISplitter_done_process(LPVOID iface)
|
||||||
{
|
{
|
||||||
AVISplitterImpl *This = iface;
|
AVISplitterImpl *This = iface;
|
||||||
|
|
||||||
DWORD x;
|
DWORD x;
|
||||||
|
ULONG ref;
|
||||||
|
|
||||||
for (x = 0; x < This->Parser.cStreams; ++x)
|
for (x = 0; x < This->Parser.cStreams; ++x)
|
||||||
{
|
{
|
||||||
|
@ -508,7 +513,10 @@ static HRESULT AVISplitter_done_process(LPVOID iface)
|
||||||
stream->thread = NULL;
|
stream->thread = NULL;
|
||||||
|
|
||||||
if (stream->sample)
|
if (stream->sample)
|
||||||
assert(IMediaSample_Release(stream->sample) == 0);
|
{
|
||||||
|
ref = IMediaSample_Release(stream->sample);
|
||||||
|
assert(ref == 0);
|
||||||
|
}
|
||||||
stream->sample = NULL;
|
stream->sample = NULL;
|
||||||
|
|
||||||
ResetEvent(stream->packet_queued);
|
ResetEvent(stream->packet_queued);
|
||||||
|
@ -1202,6 +1210,7 @@ static HRESULT AVISplitter_Flush(LPVOID iface)
|
||||||
{
|
{
|
||||||
AVISplitterImpl *This = iface;
|
AVISplitterImpl *This = iface;
|
||||||
DWORD x;
|
DWORD x;
|
||||||
|
ULONG ref;
|
||||||
|
|
||||||
TRACE("(%p)->()\n", This);
|
TRACE("(%p)->()\n", This);
|
||||||
|
|
||||||
|
@ -1210,7 +1219,10 @@ static HRESULT AVISplitter_Flush(LPVOID iface)
|
||||||
StreamData *stream = This->streams + x;
|
StreamData *stream = This->streams + x;
|
||||||
|
|
||||||
if (stream->sample)
|
if (stream->sample)
|
||||||
assert(IMediaSample_Release(stream->sample) == 0);
|
{
|
||||||
|
ref = IMediaSample_Release(stream->sample);
|
||||||
|
assert(ref == 0);
|
||||||
|
}
|
||||||
stream->sample = NULL;
|
stream->sample = NULL;
|
||||||
|
|
||||||
ResetEvent(stream->packet_queued);
|
ResetEvent(stream->packet_queued);
|
||||||
|
|
|
@ -225,7 +225,7 @@ end:
|
||||||
|
|
||||||
static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
|
static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
|
||||||
{
|
{
|
||||||
while (1)
|
while (This->renderer.filter.state == State_Running)
|
||||||
{
|
{
|
||||||
DWORD pos1, pos2;
|
DWORD pos1, pos2;
|
||||||
DSoundRender_UpdatePositions(This, &pos1, &pos2);
|
DSoundRender_UpdatePositions(This, &pos1, &pos2);
|
||||||
|
@ -236,8 +236,8 @@ static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
|
||||||
LeaveCriticalSection(&This->renderer.filter.csFilter);
|
LeaveCriticalSection(&This->renderer.filter.csFilter);
|
||||||
LeaveCriticalSection(&This->renderer.csRenderLock);
|
LeaveCriticalSection(&This->renderer.csRenderLock);
|
||||||
WaitForSingleObject(This->blocked, 10);
|
WaitForSingleObject(This->blocked, 10);
|
||||||
EnterCriticalSection(&This->renderer.filter.csFilter);
|
|
||||||
EnterCriticalSection(&This->renderer.csRenderLock);
|
EnterCriticalSection(&This->renderer.csRenderLock);
|
||||||
|
EnterCriticalSection(&This->renderer.filter.csFilter);
|
||||||
This->in_loop = 0;
|
This->in_loop = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -834,7 +834,7 @@ static ULONG WINAPI FileAsyncReaderPin_Release(IPin * iface)
|
||||||
CloseHandle(This->hFile);
|
CloseHandle(This->hFile);
|
||||||
This->csList.DebugInfo->Spare[0] = 0;
|
This->csList.DebugInfo->Spare[0] = 0;
|
||||||
DeleteCriticalSection(&This->csList);
|
DeleteCriticalSection(&This->csList);
|
||||||
CoTaskMemFree(This);
|
BaseOutputPin_Destroy(&This->pin);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return refCount;
|
return refCount;
|
||||||
|
|
|
@ -801,7 +801,7 @@ static HRESULT GetFilterInfo(IMoniker* pMoniker, VARIANT* pvar)
|
||||||
hr = IPropertyBag_Read(pPropBagCat, wszFriendlyName, pvar, NULL);
|
hr = IPropertyBag_Read(pPropBagCat, wszFriendlyName, pvar, NULL);
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
TRACE("Moniker = %s\n", debugstr_w(V_UNION(pvar, bstrVal)));
|
TRACE("Moniker = %s\n", debugstr_w(V_BSTR(pvar)));
|
||||||
|
|
||||||
if (pPropBagCat)
|
if (pPropBagCat)
|
||||||
IPropertyBag_Release(pPropBagCat);
|
IPropertyBag_Release(pPropBagCat);
|
||||||
|
@ -1050,7 +1050,7 @@ static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = IFilterGraph2_AddFilter(iface, pfilter, V_UNION(&var, bstrVal));
|
hr = IFilterGraph2_AddFilter(iface, pfilter, V_BSTR(&var));
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
WARN("Unable to add filter (%x)\n", hr);
|
WARN("Unable to add filter (%x)\n", hr);
|
||||||
IBaseFilter_Release(pfilter);
|
IBaseFilter_Release(pfilter);
|
||||||
|
@ -1384,7 +1384,7 @@ static HRESULT WINAPI FilterGraph2_Render(IFilterGraph2 *iface, IPin *ppinOut)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = IFilterGraph2_AddFilter(iface, pfilter, V_UNION(&var, bstrVal));
|
hr = IFilterGraph2_AddFilter(iface, pfilter, V_BSTR(&var));
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
WARN("Unable to add filter (%x)\n", hr);
|
WARN("Unable to add filter (%x)\n", hr);
|
||||||
IBaseFilter_Release(pfilter);
|
IBaseFilter_Release(pfilter);
|
||||||
|
@ -1424,10 +1424,10 @@ static HRESULT WINAPI FilterGraph2_Render(IFilterGraph2 *iface, IPin *ppinOut)
|
||||||
IPin_Release(ppinfilter);
|
IPin_Release(ppinfilter);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
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;
|
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);
|
VariantClear(&var);
|
||||||
|
|
||||||
|
|
|
@ -348,7 +348,7 @@ static HRESULT FM2_WriteFriendlyName(IPropertyBag * pPropBag, LPCWSTR szName)
|
||||||
BSTR value;
|
BSTR value;
|
||||||
|
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_UNION(&var, bstrVal) = value = SysAllocString(szName);
|
V_BSTR(&var) = value = SysAllocString(szName);
|
||||||
|
|
||||||
ret = IPropertyBag_Write(pPropBag, wszFriendlyName, &var);
|
ret = IPropertyBag_Write(pPropBag, wszFriendlyName, &var);
|
||||||
SysFreeString(value);
|
SysFreeString(value);
|
||||||
|
@ -367,7 +367,7 @@ static HRESULT FM2_WriteClsid(IPropertyBag * pPropBag, REFCLSID clsid)
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_UNION(&var, bstrVal) = wszClsid;
|
V_BSTR(&var) = wszClsid;
|
||||||
hr = IPropertyBag_Write(pPropBag, wszClsidName, &var);
|
hr = IPropertyBag_Write(pPropBag, wszClsidName, &var);
|
||||||
}
|
}
|
||||||
CoTaskMemFree(wszClsid);
|
CoTaskMemFree(wszClsid);
|
||||||
|
@ -779,7 +779,7 @@ static HRESULT WINAPI FilterMapper3_RegisterFilter(
|
||||||
}
|
}
|
||||||
|
|
||||||
V_VT(&var) = VT_ARRAY | VT_UI1;
|
V_VT(&var) = VT_ARRAY | VT_UI1;
|
||||||
V_UNION(&var, parray) = psa;
|
V_ARRAY(&var) = psa;
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
hr = IPropertyBag_Write(pPropBag, wszFilterDataName, &var);
|
hr = IPropertyBag_Write(pPropBag, wszFilterDataName, &var);
|
||||||
|
@ -928,7 +928,7 @@ static HRESULT WINAPI FilterMapper3_EnumMatchingFilters(
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = IPropertyBag_Read(pPropBagCat, wszMeritName, &var, NULL);
|
hrSub = IPropertyBag_Read(pPropBagCat, wszMeritName, &var, NULL);
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub) && (V_UNION(&var, ulVal) >= dwMerit))
|
if (SUCCEEDED(hrSub) && (V_UI4(&var) >= dwMerit))
|
||||||
{
|
{
|
||||||
CLSID clsidCat;
|
CLSID clsidCat;
|
||||||
IEnumMoniker * pEnum;
|
IEnumMoniker * pEnum;
|
||||||
|
@ -941,14 +941,14 @@ static HRESULT WINAPI FilterMapper3_EnumMatchingFilters(
|
||||||
VARIANT temp;
|
VARIANT temp;
|
||||||
V_VT(&temp) = VT_EMPTY;
|
V_VT(&temp) = VT_EMPTY;
|
||||||
IPropertyBag_Read(pPropBagCat, wszFriendlyName, &temp, NULL);
|
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);
|
VariantClear(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
|
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = CLSIDFromString(V_UNION(&var, bstrVal), &clsidCat);
|
hrSub = CLSIDFromString(V_BSTR(&var), &clsidCat);
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat, &pEnum, 0);
|
hrSub = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat, &pEnum, 0);
|
||||||
|
@ -975,7 +975,7 @@ static HRESULT WINAPI FilterMapper3_EnumMatchingFilters(
|
||||||
VARIANT temp;
|
VARIANT temp;
|
||||||
V_VT(&temp) = VT_EMPTY;
|
V_VT(&temp) = VT_EMPTY;
|
||||||
IPropertyBag_Read(pPropBag, wszFriendlyName, &temp, NULL);
|
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);
|
VariantClear(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -985,13 +985,13 @@ static HRESULT WINAPI FilterMapper3_EnumMatchingFilters(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = SafeArrayAccessData(V_UNION(&var, parray), (LPVOID*)&pData);
|
hrSub = SafeArrayAccessData(V_ARRAY(&var), (LPVOID*)&pData);
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = FM2_ReadFilterData(pData, &rf2);
|
hrSub = FM2_ReadFilterData(pData, &rf2);
|
||||||
|
|
||||||
if (pData)
|
if (pData)
|
||||||
SafeArrayUnaccessData(V_UNION(&var, parray));
|
SafeArrayUnaccessData(V_ARRAY(&var));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
|
|
||||||
|
@ -1203,7 +1203,7 @@ static HRESULT WINAPI FilterMapper_EnumMatchingFilters(
|
||||||
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
|
hrSub = IPropertyBag_Read(pPropBagCat, wszClsidName, &var, NULL);
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
if (SUCCEEDED(hrSub))
|
||||||
hrSub = CLSIDFromString(V_UNION(&var, bstrVal), &clsid);
|
hrSub = CLSIDFromString(V_BSTR(&var), &clsid);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
|
|
||||||
|
@ -1212,14 +1212,14 @@ static HRESULT WINAPI FilterMapper_EnumMatchingFilters(
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub))
|
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)))
|
if (!(regfilters[idx].Name = CoTaskMemAlloc(len*2)))
|
||||||
hr = E_OUTOFMEMORY;
|
hr = E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hrSub) && regfilters[idx].Name)
|
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;
|
regfilters[idx].Clsid = clsid;
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,6 +156,7 @@ void Parser_Destroy(ParserImpl *This)
|
||||||
{
|
{
|
||||||
IPin *connected = NULL;
|
IPin *connected = NULL;
|
||||||
ULONG pinref;
|
ULONG pinref;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
assert(!This->filter.refCount);
|
assert(!This->filter.refCount);
|
||||||
PullPin_WaitForStateChange(This->pInputPin, INFINITE);
|
PullPin_WaitForStateChange(This->pInputPin, INFINITE);
|
||||||
|
@ -164,9 +165,11 @@ void Parser_Destroy(ParserImpl *This)
|
||||||
IPin_ConnectedTo(&This->pInputPin->pin.IPin_iface, &connected);
|
IPin_ConnectedTo(&This->pInputPin->pin.IPin_iface, &connected);
|
||||||
if (connected)
|
if (connected)
|
||||||
{
|
{
|
||||||
assert(IPin_Disconnect(connected) == S_OK);
|
hr = IPin_Disconnect(connected);
|
||||||
|
assert(hr == S_OK);
|
||||||
IPin_Release(connected);
|
IPin_Release(connected);
|
||||||
assert(IPin_Disconnect(&This->pInputPin->pin.IPin_iface) == S_OK);
|
hr = IPin_Disconnect(&This->pInputPin->pin.IPin_iface);
|
||||||
|
assert(hr == S_OK);
|
||||||
}
|
}
|
||||||
pinref = IPin_Release(&This->pInputPin->pin.IPin_iface);
|
pinref = IPin_Release(&This->pInputPin->pin.IPin_iface);
|
||||||
if (pinref)
|
if (pinref)
|
||||||
|
|
|
@ -592,7 +592,7 @@ static HRESULT register_filters(struct regsvr_filter const *list)
|
||||||
if (list->pins[i].mediatypes[j].subtype)
|
if (list->pins[i].mediatypes[j].subtype)
|
||||||
memcpy(lpClsid + j*2 + 1, list->pins[i].mediatypes[j].subtype, sizeof(CLSID));
|
memcpy(lpClsid + j*2 + 1, list->pins[i].mediatypes[j].subtype, sizeof(CLSID));
|
||||||
else {
|
else {
|
||||||
/* Subtype are often a combination of major type + fourcc/tag */
|
/* Subtypes are often a combination of major type + fourcc/tag */
|
||||||
memcpy(lpClsid + j*2 + 1, list->pins[i].mediatypes[j].majortype, sizeof(CLSID));
|
memcpy(lpClsid + j*2 + 1, list->pins[i].mediatypes[j].majortype, sizeof(CLSID));
|
||||||
*(DWORD*)(lpClsid + j*2 + 1) = list->pins[i].mediatypes[j].fourcc;
|
*(DWORD*)(lpClsid + j*2 + 1) = list->pins[i].mediatypes[j].fourcc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -352,11 +352,11 @@ static HRESULT WINAPI VideoRenderer_EndFlush(BaseRenderer* iface)
|
||||||
if (This->renderer.pMediaSample) {
|
if (This->renderer.pMediaSample) {
|
||||||
ResetEvent(This->hEvent);
|
ResetEvent(This->hEvent);
|
||||||
LeaveCriticalSection(iface->pInputPin->pin.pCritSec);
|
LeaveCriticalSection(iface->pInputPin->pin.pCritSec);
|
||||||
LeaveCriticalSection(&iface->csRenderLock);
|
|
||||||
LeaveCriticalSection(&iface->filter.csFilter);
|
LeaveCriticalSection(&iface->filter.csFilter);
|
||||||
|
LeaveCriticalSection(&iface->csRenderLock);
|
||||||
WaitForSingleObject(This->hEvent, INFINITE);
|
WaitForSingleObject(This->hEvent, INFINITE);
|
||||||
EnterCriticalSection(&iface->filter.csFilter);
|
|
||||||
EnterCriticalSection(&iface->csRenderLock);
|
EnterCriticalSection(&iface->csRenderLock);
|
||||||
|
EnterCriticalSection(&iface->filter.csFilter);
|
||||||
EnterCriticalSection(iface->pInputPin->pin.pCritSec);
|
EnterCriticalSection(iface->pInputPin->pin.pCritSec);
|
||||||
}
|
}
|
||||||
if (This->renderer.filter.state == State_Paused) {
|
if (This->renderer.filter.state == State_Paused) {
|
||||||
|
|
|
@ -45,7 +45,7 @@ reactos/dll/directx/wine/dxdiagn # Synced to Wine-1.7.17
|
||||||
reactos/dll/directx/wine/dxgi # Synced to Wine-1.7.27
|
reactos/dll/directx/wine/dxgi # Synced to Wine-1.7.27
|
||||||
reactos/dll/directx/wine/msdmo # Synced to Wine-1.7.17
|
reactos/dll/directx/wine/msdmo # Synced to Wine-1.7.17
|
||||||
reactos/dll/directx/wine/qedit # Synced to Wine-1.7.27
|
reactos/dll/directx/wine/qedit # Synced to Wine-1.7.27
|
||||||
reactos/dll/directx/wine/quartz # Synced to Wine-1.7.17
|
reactos/dll/directx/wine/quartz # Synced to Wine-1.7.27
|
||||||
reactos/dll/directx/wine/wined3d # Synced to Wine-1.7.27
|
reactos/dll/directx/wine/wined3d # Synced to Wine-1.7.27
|
||||||
|
|
||||||
reactos/dll/win32/activeds # Synced to Wine-1.7.17
|
reactos/dll/win32/activeds # Synced to Wine-1.7.17
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue