39#include "wine/unicode.h"
58#define EVENTS_RING_BUFFER_INCREMENT 64
144#define MAX_ITF_CACHE_ENTRIES 3
219 *ppvObj = &
This->IUnknown_inner;
220 TRACE(
" returning IUnknown interface (%p)\n", *ppvObj);
224 *ppvObj = &
This->IFilterGraph2_iface;
225 TRACE(
" returning IGraphBuilder interface (%p)\n", *ppvObj);
227 *ppvObj = &
This->IMediaControl_iface;
228 TRACE(
" returning IMediaControl interface (%p)\n", *ppvObj);
230 *ppvObj = &
This->IMediaSeeking_iface;
231 TRACE(
" returning IMediaSeeking interface (%p)\n", *ppvObj);
233 *ppvObj = &
This->IBasicAudio_iface;
234 TRACE(
" returning IBasicAudio interface (%p)\n", *ppvObj);
237 *ppvObj = &
This->IBasicVideo2_iface;
238 TRACE(
" returning IBasicVideo2 interface (%p)\n", *ppvObj);
240 *ppvObj = &
This->IVideoWindow_iface;
241 TRACE(
" returning IVideoWindow interface (%p)\n", *ppvObj);
244 *ppvObj = &
This->IMediaEventEx_iface;
245 TRACE(
" returning IMediaEvent(Ex) interface (%p)\n", *ppvObj);
248 *ppvObj = &
This->IMediaFilter_iface;
249 TRACE(
" returning IMediaFilter interface (%p)\n", *ppvObj);
251 *ppvObj = &
This->IMediaEventSink_iface;
252 TRACE(
" returning IMediaEventSink interface (%p)\n", *ppvObj);
254 *ppvObj = &
This->IGraphConfig_iface;
255 TRACE(
" returning IGraphConfig interface (%p)\n", *ppvObj);
257 *ppvObj = &
This->IMediaPosition_iface;
258 TRACE(
" returning IMediaPosition interface (%p)\n", *ppvObj);
260 *ppvObj = &
This->IObjectWithSite_iface;
261 TRACE(
" returning IObjectWithSite interface (%p)\n", *ppvObj);
263 TRACE(
" requesting IFilterMapper interface from aggregated filtermapper (%p)\n", *ppvObj);
264 return IUnknown_QueryInterface(
This->punkFilterMapper2,
riid, ppvObj);
266 TRACE(
" returning IFilterMapper2 interface from aggregated filtermapper (%p)\n", *ppvObj);
267 return IUnknown_QueryInterface(
This->punkFilterMapper2,
riid, ppvObj);
269 TRACE(
" returning IFilterMapper3 interface from aggregated filtermapper (%p)\n", *ppvObj);
270 return IUnknown_QueryInterface(
This->punkFilterMapper2,
riid, ppvObj);
272 *ppvObj = &
This->IGraphConfig_iface;
273 TRACE(
" returning IGraphConfig interface (%p)\n", *ppvObj);
280 IUnknown_AddRef((
IUnknown *)*ppvObj);
306 IMediaControl_Stop(&
This->IMediaControl_iface);
308 while (
This->nFilters)
309 IFilterGraph2_RemoveFilter(&
This->IFilterGraph2_iface,
This->ppFiltersInGraph[0]);
314 for (
i = 0;
i <
This->nItfCacheEntries;
i++)
316 if (
This->ItfCacheEntries[
i].iface)
317 IUnknown_Release(
This->ItfCacheEntries[
i].iface);
320 IUnknown_Release(
This->punkFilterMapper2);
322 if (
This->pSite) IUnknown_Release(
This->pSite);
326 This->cs.DebugInfo->Spare[0] = 0;
346 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
355 return IUnknown_AddRef(
This->outer_unk);
364 return IUnknown_Release(
This->outer_unk);
387 for(
i = 0;
i <
This->nFilters;
i++)
390 duplicate_name =
TRUE;
396 if (!
pName || duplicate_name)
398 static const WCHAR wszFmt1[] = {
'%',
's',
' ',
'%',
'0',
'4',
'd',0};
399 static const WCHAR wszFmt2[] = {
'%',
'0',
'4',
'd',0};
401 for (
j = 0;
j < 10000 ;
j++)
411 for(
i = 0;
i <
This->nFilters;
i++)
416 if (
This->nameIndex++ == 10000)
418 if (
i ==
This->nFilters)
431 if (
This->nFilters + 1 >
This->filterCapacity)
433 int newCapacity =
This->filterCapacity ? 2 *
This->filterCapacity : 1;
438 if (
This->filterCapacity)
443 This->ppFiltersInGraph = ppNewFilters;
444 This->pFilterNames = pNewNames;
445 This->filterCapacity = newCapacity;
448 hr = IBaseFilter_JoinFilterGraph(pFilter, (
IFilterGraph *)&
This->IFilterGraph2_iface, wszFilterName);
452 IBaseFilter_AddRef(pFilter);
453 This->ppFiltersInGraph[
This->nFilters] = pFilter;
454 This->pFilterNames[
This->nFilters] = wszFilterName;
457 IBaseFilter_SetSyncSource(pFilter,
This->refClock);
474 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pFilter);
478 for (
i = 0;
i <
This->nFilters;
i++)
480 if (
This->ppFiltersInGraph[
i] == pFilter)
485 if (
This->defaultclock &&
This->refClockProvider == pFilter)
487 IMediaFilter_SetSyncSource(&
This->IMediaFilter_iface,
NULL);
492 IBaseFilter_GetState(pFilter, 0, &
state);
493 if (
state == State_Running)
494 IBaseFilter_Pause(pFilter);
495 if (
state != State_Stopped)
496 IBaseFilter_Stop(pFilter);
498 hr = IBaseFilter_EnumPins(pFilter, &penumpins);
501 while(IEnumPins_Next(penumpins, 1, &ppin,
NULL) ==
S_OK)
505 IPin_ConnectedTo(ppin, &victim);
508 h = IPin_Disconnect(victim);
509 TRACE(
"Disconnect other side: %08x\n",
h);
513 IPin_QueryPinInfo(victim, &pinfo);
515 IBaseFilter_GetState(pinfo.pFilter, 0, &
state);
516 if (
state == State_Running)
517 IBaseFilter_Pause(pinfo.pFilter);
518 IBaseFilter_Stop(pinfo.pFilter);
519 IBaseFilter_Release(pinfo.pFilter);
520 h = IPin_Disconnect(victim);
521 TRACE(
"Disconnect retry: %08x\n",
h);
523 IPin_Release(victim);
525 h = IPin_Disconnect(ppin);
526 TRACE(
"Disconnect 2: %08x\n",
h);
530 IEnumPins_Release(penumpins);
533 hr = IBaseFilter_JoinFilterGraph(pFilter,
NULL,
This->pFilterNames[
i]);
536 IBaseFilter_SetSyncSource(pFilter,
NULL);
537 IBaseFilter_Release(pFilter);
544 for (
i = 0;
i <
This->nItfCacheEntries;
i++)
545 if (pFilter ==
This->ItfCacheEntries[
i].filter)
547 IUnknown_Release(
This->ItfCacheEntries[
i].iface);
564 TRACE(
"(%p/%p)->(%p)\n",
This, iface, ppEnum);
580 for (
i = 0;
i <
This->nFilters;
i++)
584 *ppFilter =
This->ppFiltersInGraph[
i];
585 IBaseFilter_AddRef(*ppFilter);
603 hr = IPin_QueryPinInfo(
out, &info_out);
608 IBaseFilter_Release(info_out.pFilter);
612 hr = IPin_QueryPinInfo(
in, &info_in);
614 IBaseFilter_Release(info_in.pFilter);
623 if (info_out.pFilter == info_in.pFilter)
630 hr = IBaseFilter_EnumPins(info_out.pFilter, &enumpins);
634 IEnumPins_Reset(enumpins);
638 IPin_QueryDirection(
test, &
dir);
642 IPin_ConnectedTo(
test, &victim);
646 IPin_Release(victim);
656 IEnumPins_Release(enumpins);
660 IBaseFilter_Release(info_out.pFilter);
662 ERR(
"Checking filtergraph returned %08x, something's not right!\n",
hr);
680 TRACE(
"(%p/%p)->(%p, %p, %p)\n",
This, iface, ppinIn, ppinOut, pmt);
688 hr = IPin_QueryPinInfo(ppinIn, &PinInfo);
692 TRACE(
"Filter owning ppinIn(%p) => %p\n", ppinIn, PinInfo.pFilter);
693 IBaseFilter_Release(PinInfo.pFilter);
695 hr = IPin_QueryPinInfo(ppinOut, &PinInfo);
699 TRACE(
"Filter owning ppinOut(%p) => %p\n", ppinOut, PinInfo.pFilter);
700 IBaseFilter_Release(PinInfo.pFilter);
703 hr = IPin_QueryDirection(ppinIn, &
dir);
710 hr = IPin_Connect(ppinOut, ppinIn, pmt);
716 hr = IPin_Connect(ppinIn, ppinOut, pmt);
730 IPin_QueryDirection(ppin, &pindir);
731 hr = IPin_ConnectedTo(ppin, &pConnectedTo);
733 TRACE(
"(%p/%p)->(%p) -- %p\n",
This, iface, ppin, pConnectedTo);
736 TRACE(
"Querying connected to failed: %x\n",
hr);
739 IPin_Disconnect(ppin);
740 IPin_Disconnect(pConnectedTo);
742 hr = IPin_Connect(pConnectedTo, ppin,
NULL);
744 hr = IPin_Connect(ppin, pConnectedTo,
NULL);
745 IPin_Release(pConnectedTo);
747 WARN(
"Reconnecting pins failed, pins are not connected now..\n");
756 TRACE(
"(%p/%p)->(%p)\n",
This, iface, ppin);
761 return IPin_Disconnect(ppin);
771 TRACE(
"(%p/%p)->() live sources not handled properly!\n",
This, iface);
775 for (
i = 0;
i <
This->nFilters; ++
i)
779 IBaseFilter_QueryInterface(
This->ppFiltersInGraph[
i], &IID_IAMFilterMiscFlags, (
void**)&
flags);
782 miscflags = IAMFilterMiscFlags_GetMiscFlags(
flags);
783 IAMFilterMiscFlags_Release(
flags);
785 IBaseFilter_QueryInterface(
This->ppFiltersInGraph[
i], &IID_IReferenceClock, (
void**)&pClock);
796 This->refClockProvider =
This->ppFiltersInGraph[
i];
800 hr = IMediaFilter_SetSyncSource(&
This->IMediaFilter_iface, pClock);
811 static const WCHAR wszFriendlyName[] = {
'F',
'r',
'i',
'e',
'n',
'd',
'l',
'y',
'N',
'a',
'm',
'e',0};
826 IPropertyBag_Release(pPropBagCat);
836 TRACE(
"(%p, %p, %p, %p)\n", pfilter, pinputpin, pppins, pnb);
837 hr = IPin_QueryInternalConnections(pinputpin,
NULL, &nb);
842 hr = IPin_QueryInternalConnections(pinputpin, *pppins, &nb);
851 TRACE(
"E_NOTIMPL\n");
852 hr = IBaseFilter_EnumPins(pfilter, &penumpins);
854 WARN(
"filter Enumpins failed (%x)\n",
hr);
859 while(IEnumPins_Next(penumpins, 1, &ppin, &nb) ==
S_OK) {
861 IPin_QueryDirection(ppin, &pindir);
868 IEnumPins_Reset(penumpins);
870 while(IEnumPins_Next(penumpins, 1, &ppin, &nb) ==
S_OK) {
872 IPin_QueryDirection(ppin, &pindir);
874 (*pppins)[
i++] = ppin;
878 IEnumPins_Release(penumpins);
881 WARN(
"Next failed (%x)\n",
hr);
885 WARN(
"Cannot get internal connection (%x)\n",
hr);
913 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, ppinOut, ppinIn);
915 if(!ppinOut || !ppinIn)
920 hr = IPin_QueryPinInfo(ppinIn, &PinInfo);
924 TRACE(
"Filter owning ppinIn(%p) => %p\n", ppinIn, PinInfo.pFilter);
925 IBaseFilter_Release(PinInfo.pFilter);
927 hr = IPin_QueryPinInfo(ppinOut, &PinInfo);
931 TRACE(
"Filter owning ppinOut(%p) => %p\n", ppinOut, PinInfo.pFilter);
932 IBaseFilter_Release(PinInfo.pFilter);
936 ++
This->recursioncount;
937 if (
This->recursioncount >= 5)
939 WARN(
"Recursion count has reached %d\n",
This->recursioncount);
944 hr = IPin_QueryDirection(ppinOut, &
dir);
952 TRACE(
"Directions seem backwards, swapping pins\n");
964 hr = IPin_Connect(ppinOut, ppinIn,
NULL);
968 TRACE(
"Direct connection failed, trying to render using extra filters\n");
970 hr = IPin_QueryPinInfo(ppinIn, &PinInfo);
974 hr = IBaseFilter_GetClassID(PinInfo.pFilter, &FilterCLSID);
975 IBaseFilter_Release(PinInfo.pFilter);
981 hr = IPin_EnumMediaTypes(ppinOut, &penummt);
984 WARN(
"EnumMediaTypes (%x)\n",
hr);
988 hr = IEnumMediaTypes_Next(penummt, 1, &mt, &nbmt);
990 WARN(
"IEnumMediaTypes_Next (%x)\n",
hr);
996 WARN(
"No media type found!\n");
1003 hr = IUnknown_QueryInterface(
This->punkFilterMapper2, &IID_IFilterMapper2, (
void**)&pFilterMapper2);
1005 WARN(
"Unable to get IFilterMapper2 (%x)\n",
hr);
1010 tab[0] = mt->majortype;
1011 tab[1] = mt->subtype;
1012 hr = IFilterMapper2_EnumMatchingFilters(pFilterMapper2, &pEnumMoniker, 0,
FALSE, MERIT_UNLIKELY,
TRUE, 1,
tab,
NULL,
NULL,
FALSE,
FALSE, 0,
NULL,
NULL,
NULL);
1014 WARN(
"Unable to enum filters (%x)\n",
hr);
1019 while(IEnumMoniker_Next(pEnumMoniker, 1, &pMoniker, &nb) ==
S_OK)
1030 WARN(
"Unable to retrieve filter info (%x)\n",
hr);
1035 IMoniker_Release(pMoniker);
1037 WARN(
"Unable to create filter (%x), trying next one\n",
hr);
1041 hr = IBaseFilter_GetClassID(pfilter, &
clsid);
1044 IBaseFilter_Release(pfilter);
1050 IBaseFilter_Release(pfilter);
1057 IUnknown_QueryInterface(
This->pSite, &IID_IAMGraphBuilderCallback, (
LPVOID*)&
callback);
1061 rc = IAMGraphBuilderCallback_SelectedFilter(
callback, pMoniker);
1064 TRACE(
"Filter rejected by IAMGraphBuilderCallback_SelectedFilter\n");
1065 IAMGraphBuilderCallback_Release(
callback);
1074 rc = IAMGraphBuilderCallback_CreatedFilter(
callback, pfilter);
1075 IAMGraphBuilderCallback_Release(
callback);
1078 IBaseFilter_Release(pfilter);
1080 TRACE(
"Filter rejected by IAMGraphBuilderCallback_CreatedFilter\n");
1085 hr = IFilterGraph2_AddFilter(iface, pfilter,
V_BSTR(&
var));
1087 WARN(
"Unable to add filter (%x)\n",
hr);
1088 IBaseFilter_Release(pfilter);
1095 hr = IBaseFilter_EnumPins(pfilter, &penumpins);
1097 WARN(
"Enumpins (%x)\n",
hr);
1101 hr = IEnumPins_Next(penumpins, 1, &ppinfilter, &
pin);
1102 IEnumPins_Release(penumpins);
1105 WARN(
"Obtaining next pin: (%x)\n",
hr);
1109 WARN(
"Cannot use this filter: no pins\n");
1113 hr = IPin_Connect(ppinOut, ppinfilter,
NULL);
1115 TRACE(
"Cannot connect to filter (%x), trying next one\n",
hr);
1118 TRACE(
"Successfully connected to filter, follow chain...\n");
1125 IPin_Disconnect(ppinfilter);
1126 IPin_Disconnect(ppinOut);
1129 TRACE(
"pins to consider: %d\n", nb);
1130 for(
i = 0;
i < nb;
i++)
1134 TRACE(
"Processing pin %u\n",
i);
1136 hr = IPin_QueryId(ppins[
i], &pinname);
1139 if (pinname[0] ==
'~')
1145 hr = IFilterGraph2_Connect(iface, ppins[
i], ppinIn);
1150 TRACE(
"Cannot connect pin %p (%x)\n", ppinfilter,
hr);
1152 IPin_Release(ppins[
i]);
1155 while (++
i < nb) IPin_Release(ppins[
i]);
1157 IPin_Release(ppinfilter);
1158 IBaseFilter_Release(pfilter);
1161 IPin_Disconnect(ppinfilter);
1162 IPin_Disconnect(ppinOut);
1163 IFilterGraph2_RemoveFilter(iface, pfilter);
1171 if (ppinfilter) IPin_Release(ppinfilter);
1173 IFilterGraph2_RemoveFilter(iface, pfilter);
1174 IBaseFilter_Release(pfilter);
1176 while (++
i < nb) IPin_Release(ppins[
i]);
1180 IEnumMoniker_Release(pEnumMoniker);
1184 IFilterMapper2_Release(pFilterMapper2);
1186 IEnumMediaTypes_Release(penummt);
1189 --
This->recursioncount;
1204 IPin_QueryPinInfo(ppinOut, &
info);
1206 IBaseFilter_EnumPins(
info.pFilter, &enumpins);
1208 IBaseFilter_Release(
info.pFilter);
1210 IEnumPins_Reset(enumpins);
1211 while (IEnumPins_Next(enumpins, 1, &to,
NULL) ==
S_OK)
1215 IPin_QueryDirection(to, &
dir);
1221 IPin_ConnectedTo(to, &
out);
1225 hr = IFilterGraph2_Render(&
This->IFilterGraph2_iface, to);
1238 IEnumPins_Release(enumpins);
1282 TRACE(
"(%p/%p)->(%p)\n",
This, iface, ppinOut);
1288 hr = IPin_QueryPinInfo(ppinOut, &PinInfo);
1292 TRACE(
"Filter owning pin => %p\n", PinInfo.pFilter);
1293 IBaseFilter_Release(PinInfo.pFilter);
1299 for (
x = 0;
x <
This->nFilters; ++
x)
1304 hr = IBaseFilter_EnumPins(
This->ppFiltersInGraph[
x], &enumpins);
1309 IEnumPins_Reset(enumpins);
1310 while (IEnumPins_Next(enumpins, 1, &
pin,
NULL) ==
S_OK)
1315 IPin_QueryDirection(
pin, &
dir);
1321 IPin_ConnectedTo(
pin, &to);
1328 TRACE(
"Connected successfully %p/%p, %08x look if we should render more!\n", ppinOut,
pin,
hr);
1334 IPin_Disconnect(ppinOut);
1335 IPin_Disconnect(
pin);
1338 IEnumPins_Release(enumpins);
1342 WARN(
"Could not connect!\n");
1349 IEnumPins_Release(enumpins);
1354 hr = IPin_EnumMediaTypes(ppinOut, &penummt);
1356 WARN(
"EnumMediaTypes (%x)\n",
hr);
1360 IEnumMediaTypes_Reset(penummt);
1368 hr = IEnumMediaTypes_Next(penummt, 1, &mt, &nbmt);
1370 WARN(
"IEnumMediaTypes_Next (%x)\n",
hr);
1390 if (pFilterMapper2 ==
NULL)
1392 hr = IUnknown_QueryInterface(
This->punkFilterMapper2, &IID_IFilterMapper2, (
void**)&pFilterMapper2);
1395 WARN(
"Unable to query IFilterMapper2 (%x)\n",
hr);
1401 tab[0] = mt->majortype;
1402 tab[1] = mt->subtype;
1403 hr = IFilterMapper2_EnumMatchingFilters(pFilterMapper2, &pEnumMoniker, 0,
FALSE, MERIT_UNLIKELY,
TRUE, 1,
tab,
NULL,
NULL,
FALSE,
FALSE, 0,
NULL,
NULL,
NULL);
1406 WARN(
"Unable to enum filters (%x)\n",
hr);
1412 while (IEnumMoniker_Next(pEnumMoniker, 1, &pMoniker, &nb) ==
S_OK)
1422 WARN(
"Unable to retrieve filter info (%x)\n",
hr);
1427 IMoniker_Release(pMoniker);
1430 WARN(
"Unable to create filter (%x), trying next one\n",
hr);
1434 hr = IFilterGraph2_AddFilter(iface, pfilter,
V_BSTR(&
var));
1436 WARN(
"Unable to add filter (%x)\n",
hr);
1437 IBaseFilter_Release(pfilter);
1442 hr = IBaseFilter_EnumPins(pfilter, &penumpins);
1444 WARN(
"Splitter Enumpins (%x)\n",
hr);
1448 while ((
hr = IEnumPins_Next(penumpins, 1, &ppinfilter, &
pin)) ==
S_OK)
1458 hr = IPin_QueryDirection(ppinfilter, &
dir);
1460 IPin_Release(ppinfilter);
1461 WARN(
"QueryDirection failed (%x)\n",
hr);
1465 IPin_Release(ppinfilter);
1470 hr = IPin_Connect(ppinOut, ppinfilter,
NULL);
1471 IPin_Release(ppinfilter);
1483 WARN(
"Unable to connect recursively (%x)\n",
hr);
1486 IBaseFilter_Release(pfilter);
1490 IEnumPins_Release(penumpins);
1495 WARN(
"IEnumPins_Next (%x)\n",
hr);
1501 IEnumPins_Release(penumpins);
1503 IFilterGraph2_RemoveFilter(iface, pfilter);
1504 IBaseFilter_Release(pfilter);
1509 IEnumMoniker_Release(pEnumMoniker);
1518 IFilterMapper2_Release(pFilterMapper2);
1520 IEnumMediaTypes_Release(penummt);
1528 static const WCHAR string[] = {
'R',
'e',
'a',
'd',
'e',
'r',0};
1538 if (lpcwstrPlayList !=
NULL)
1541 hr = IFilterGraph2_AddSourceFilter(iface, lpcwstrFile,
string, &preader);
1545 hr = IBaseFilter_EnumPins(preader, &penumpins);
1548 while (IEnumPins_Next(penumpins, 1, &ppinreader,
NULL) ==
S_OK)
1552 IPin_QueryDirection(ppinreader, &
dir);
1557 hr = IFilterGraph2_Render(iface, ppinreader);
1560 for (
i = 0;
i <
This->nFilters; ++
i)
1568 IPin_Release(ppinreader);
1570 IEnumPins_Release(penumpins);
1579 IBaseFilter_Release(preader);
1596 IBaseFilter_Release(*
filter);
1602 IFileSourceFilter_Release(
source);
1605 IBaseFilter_Release(*
filter);
1633 hr = IBaseFilter_QueryInterface(*
filter, &IID_IFileSourceFilter, (
LPVOID *)&pSource);
1636 IBaseFilter_Release(*
filter);
1641 IFileSourceFilter_Release(pSource);
1644 IBaseFilter_Release(*
filter);
1651 IBaseFilter_Release(*
filter);
1656 IPin_Release(pOutputPin);
1659 IBaseFilter_Release(*
filter);
1665 IAsyncReader_Release(pReader);
1670 IBaseFilter_Release(*
filter);
1693 WARN(
"Unable to create file source filter (%x)\n",
hr);
1697 hr = IFilterGraph2_AddFilter(iface, preader, lpcwstrFilterName);
1699 WARN(
"Unable add filter (%x)\n",
hr);
1700 IBaseFilter_Release(preader);
1704 hr = IBaseFilter_QueryInterface(preader, &IID_IFileSourceFilter, (
LPVOID*)&pfile);
1706 WARN(
"Unable to get IFileSourceInterface (%x)\n",
hr);
1711 hr = IFileSourceFilter_GetCurFile(pfile, &
filename, &mt);
1713 WARN(
"GetCurFile (%x)\n",
hr);
1722 *ppFilter = preader;
1723 IFileSourceFilter_Release(pfile);
1729 IFileSourceFilter_Release(pfile);
1730 IFilterGraph2_RemoveFilter(iface, preader);
1731 IBaseFilter_Release(preader);
1749 TRACE(
"(%p/%p)->(): stub !!!\n",
This, iface);
1758 TRACE(
"(%p/%p)->(): stub !!!\n",
This, iface);
1771 TRACE(
"(%p/%p)->(%p %p %s %p)\n",
This, iface, pMoniker, pCtx,
debugstr_w(lpcwstrFilterName), ppFilter);
1775 WARN(
"Unable to bind moniker to filter object (%x)\n",
hr);
1779 hr = IFilterGraph2_AddFilter(iface, pfilter, lpcwstrFilterName);
1781 WARN(
"Unable to add filter (%x)\n",
hr);
1782 IBaseFilter_Release(pfilter);
1787 *ppFilter = pfilter;
1788 else IBaseFilter_Release(pfilter);
1798 TRACE(
"(%p/%p)->(%p %p): stub !!!\n",
This, iface, ppin, pmt);
1808 TRACE(
"(%p/%p)->(%p %08x %p): stub !!!\n",
This, iface, pPinOut,
dwFlags, pvContext);
1850 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
1859 return IUnknown_AddRef(
This->outer_unk);
1868 return IUnknown_Release(
This->outer_unk);
1877 TRACE(
"(%p/%p)->(%p): stub !!!\n",
This, iface, pctinfo);
1887 TRACE(
"(%p/%p)->(%d, %d, %p): stub !!!\n",
This, iface, iTInfo, lcid, ppTInfo);
1898 cNames, lcid, rgDispId);
1909 TRACE(
"(%p/%p)->(%d, %s, %d, %04x, %p, %p, %p, %p): stub !!!\n",
This, iface, dispIdMember,
1926 TRACE(
"%p %p\n", pGraph, pOutputPin);
1927 PinInfo.pFilter =
NULL;
1929 hr = IPin_ConnectedTo(pOutputPin, &pInputPin);
1933 hr = IPin_QueryPinInfo(pInputPin, &PinInfo);
1936 IPin_Release(pInputPin);
1943 TRACE(
"Reached a renderer\n");
1949 for(
i = 0;
i < nb;
i++)
1955 IPin_Release(ppPins[
i]);
1960 TRACE(
"Doing stuff with filter %p\n", PinInfo.pFilter);
1962 FoundFilter(PinInfo.pFilter,
data);
1965 if (PinInfo.pFilter) IBaseFilter_Release(PinInfo.pFilter);
1972 return IBaseFilter_Run(pFilter,
time);
1977 return IBaseFilter_Pause(pFilter);
1982 return IBaseFilter_Stop(pFilter);
1996 else if (time_end > time_now)
1998 wait = time_end - time_now;
2003 return IBaseFilter_GetState(pFilter, wait, &
state);
2021 This->nRenderers = 0;
2024 for(
i = 0;
i <
This->nFilters;
i++)
2027 pfilter =
This->ppFiltersInGraph[
i];
2028 hr = IBaseFilter_EnumPins(pfilter, &pEnum);
2031 WARN(
"Enum pins failed %x\n",
hr);
2035 while(IEnumPins_Next(pEnum, 1, &pPin, &
dummy) ==
S_OK)
2037 IPin_QueryDirection(pPin, &
dir);
2047 TRACE(
"Found a source filter %p\n", pfilter);
2048 IEnumPins_Reset(pEnum);
2049 while(IEnumPins_Next(pEnum, 1, &pPin, &
dummy) ==
S_OK)
2055 FoundFilter(pfilter,
data);
2057 IEnumPins_Release(pEnum);
2071 if (
This->state == State_Running)
2073 This->EcCompleteCount = 0;
2075 if (
This->defaultclock && !
This->refClock)
2076 IFilterGraph2_SetDefaultSyncSource(&
This->IFilterGraph2_iface);
2082 if (
This->state == State_Stopped)
2083 This->start_time =
now + 500000;
2084 else if (
This->pause_time >= 0)
2089 else This->start_time = 0;
2092 This->state = State_Running;
2105 if (
This->state == State_Paused)
2108 if (
This->state == State_Running &&
This->refClock &&
This->start_time >= 0)
2111 This->pause_time = -1;
2114 This->state = State_Paused;
2126 if (
This->state == State_Stopped)
return S_OK;
2131 This->state = State_Stopped;
2142 TRACE(
"(%p/%p)->(%d, %p)\n",
This, iface, msTimeout, pfs);
2154 else if (msTimeout < 0)
2176 return IFilterGraph2_RenderFile(&
This->IFilterGraph2_iface, strFilename,
NULL);
2184 FIXME(
"(%p/%p)->(%s (%p), %p): stub !!!\n",
This, iface,
debugstr_w(strFilename), strFilename, ppUnk);
2193 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, ppUnk);
2202 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, ppUnk);
2211 FIXME(
"(%p/%p)->(): stub !!!\n",
This, iface);
2248 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
2257 return IUnknown_AddRef(
This->outer_unk);
2266 return IUnknown_Release(
This->outer_unk);
2279 for(
i = 0;
i <
This->nFilters;
i++)
2285 IBaseFilter_QueryInterface(pfilter, &IID_IAMFilterMiscFlags, (
void**)&
flags);
2288 filterflags = IAMFilterMiscFlags_GetMiscFlags(
flags);
2289 IAMFilterMiscFlags_Release(
flags);
2293 IBaseFilter_QueryInterface(pfilter, &IID_IMediaSeeking, (
void**)&
seek);
2297 IMediaSeeking_Release(
seek);
2314 hr = IMediaSeeking_GetCapabilities(
seek, &caps);
2319 *(
DWORD*)pcaps &= caps;
2330 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pCapabilities);
2336 *pCapabilities = 0xffffffff;
2350 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pCapabilities);
2356 originalcaps = *pCapabilities;
2363 if (!*pCapabilities)
2365 if (*pCapabilities != originalcaps)
2379 if (!
IsEqualGUID(&TIME_FORMAT_MEDIA_TIME, pFormat))
2395 FIXME(
"(%p/%p)->(%p): semi-stub !!!\n",
This, iface, pFormat);
2396 memcpy(pFormat, &TIME_FORMAT_MEDIA_TIME,
sizeof(
GUID));
2408 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pFormat);
2418 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pFormat);
2437 if (
This->state != State_Stopped)
2440 if (!
IsEqualGUID(&TIME_FORMAT_MEDIA_TIME, pFormat))
2454 hr = IMediaSeeking_GetDuration(
seek, &duration);
2458 if (*pdur < duration)
2468 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pDuration);
2491 pSourceFormat = &
This->timeformatseek;
2494 pTargetFormat = &
This->timeformatseek;
2513 return IMediaSeeking_SetPositions(
seek,
args->current,
args->curflags,
args->stop,
args->stopflags);
2524 TRACE(
"(%p/%p)->(%p, %08x, %p, %08x)\n",
This, iface, pCurrent, dwCurrentFlags, pStop, dwStopFlags);
2528 TRACE(
"State: %s\n",
state == State_Running ?
"Running" : (
state == State_Paused ?
"Paused" : (
state == State_Stopped ?
"Stopped" :
"UNKNOWN")));
2532 FIXME(
"Adjust method %x not handled yet!\n", dwCurrentFlags & 0x7);
2535 IMediaControl_Pause(&
This->IMediaControl_iface);
2536 args.current = pCurrent;
2538 args.curflags = dwCurrentFlags;
2539 args.stopflags = dwStopFlags;
2543 This->pause_time =
This->start_time = -1;
2545 IMediaControl_Run(&
This->IMediaControl_iface);
2555 return IMediaSeeking_GetPositions(
seek,
args->current,
args->stop);
2566 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pCurrent, pStop);
2568 args.current = pCurrent;
2572 if (
This->state == State_Running &&
This->refClock &&
This->start_time >= 0)
2578 if (
This->pause_time > 0)
2596 TRACE(
"Time: %u.%03u\n", (
DWORD)(*pCurrent / 10000000), (
DWORD)((*pCurrent / 10000)%1000));
2607 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pStop);
2622 FIXME(
"(%p/%p)->(%p, %p): stub !!!\n",
This, iface, pEarliest, pLatest);
2631 FIXME(
"(%p/%p)->(%f): stub !!!\n",
This, iface, dRate);
2640 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, pdRate);
2654 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, pllPreroll);
2696 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
2705 return IUnknown_AddRef(
This->outer_unk);
2714 return IUnknown_Release(
This->outer_unk);
2720 FIXME(
"(%p) stub!\n", iface);
2726 FIXME(
"(%p) stub!\n", iface);
2732 FIXME(
"(%p) stub!\n", iface);
2738 FIXME(
"(%p) stub!\n", iface);
2750 if (!
IsEqualGUID(&TIME_FORMAT_MEDIA_TIME, &time_format))
2752 FIXME(
"Unsupported time format.\n");
2756 *time_out = (
LONGLONG) (time_in * 10000000);
2768 if (!
IsEqualGUID(&TIME_FORMAT_MEDIA_TIME, &time_format))
2770 FIXME(
"Unsupported time format.\n");
2774 *time_out = (
REFTIME)time_in / 10000000;
2783 HRESULT hr = IMediaSeeking_GetDuration(&
This->IMediaSeeking_iface, &duration);
2798 return IMediaSeeking_SetPositions(&
This->IMediaSeeking_iface, &reftime,
2808 hr = IMediaSeeking_GetCurrentPosition(&
This->IMediaSeeking_iface, &
pos);
2818 HRESULT hr = IMediaSeeking_GetStopPosition(&
This->IMediaSeeking_iface, &
pos);
2839 FIXME(
"(%p)->(%p) stub!\n", iface, pllTime);
2845 FIXME(
"(%p)->(%f) stub!\n", iface, llTime);
2852 return IMediaSeeking_SetRate(&
This->IMediaSeeking_iface, dRate);
2858 return IMediaSeeking_GetRate(&
This->IMediaSeeking_iface, pdRate);
2863 FIXME(
"(%p)->(%p) stub!\n", iface, pCanSeekForward);
2869 FIXME(
"(%p)->(%p) stub!\n", iface, pCanSeekBackward);
2908 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
2917 return IUnknown_AddRef(
This->outer_unk);
2926 return IUnknown_Release(
This->outer_unk);
2936 if (
This->pSite) IUnknown_Release(
This->pSite);
2937 This->pSite = pUnkSite;
2938 IUnknown_AddRef(
This->pSite);
2952 return IUnknown_QueryInterface(
This->pSite,
riid, ppvSite);
2985 FIXME(
"Not enough space to store interface in the cache\n");
3020 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
3029 return IUnknown_AddRef(
This->outer_unk);
3038 return IUnknown_Release(
This->outer_unk);
3045 IBasicAudio* pBasicAudio;
3048 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pctinfo);
3055 hr = IBasicAudio_GetTypeInfoCount(pBasicAudio, pctinfo);
3066 IBasicAudio* pBasicAudio;
3069 TRACE(
"(%p/%p)->(%d, %d, %p)\n",
This, iface, iTInfo, lcid, ppTInfo);
3076 hr = IBasicAudio_GetTypeInfo(pBasicAudio, iTInfo, lcid, ppTInfo);
3087 IBasicAudio* pBasicAudio;
3090 TRACE(
"(%p/%p)->(%s, %p, %d, %d, %p)\n",
This, iface,
debugstr_guid(
riid), rgszNames, cNames,
3098 hr = IBasicAudio_GetIDsOfNames(pBasicAudio,
riid, rgszNames, cNames, lcid, rgDispId);
3110 IBasicAudio* pBasicAudio;
3113 TRACE(
"(%p/%p)->(%d, %s, %d, %04x, %p, %p, %p, %p)\n",
This, iface, dispIdMember,
3121 hr = IBasicAudio_Invoke(pBasicAudio, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
3132 IBasicAudio* pBasicAudio;
3135 TRACE(
"(%p/%p)->(%d)\n",
This, iface, lVolume);
3142 hr = IBasicAudio_put_Volume(pBasicAudio, lVolume);
3152 IBasicAudio* pBasicAudio;
3155 TRACE(
"(%p/%p)->(%p)\n",
This, iface, plVolume);
3162 hr = IBasicAudio_get_Volume(pBasicAudio, plVolume);
3172 IBasicAudio* pBasicAudio;
3175 TRACE(
"(%p/%p)->(%d)\n",
This, iface, lBalance);
3182 hr = IBasicAudio_put_Balance(pBasicAudio, lBalance);
3192 IBasicAudio* pBasicAudio;
3195 TRACE(
"(%p/%p)->(%p)\n",
This, iface, plBalance);
3202 hr = IBasicAudio_get_Balance(pBasicAudio, plBalance);
3235 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
3244 return IUnknown_AddRef(
This->outer_unk);
3253 return IUnknown_Release(
This->outer_unk);
3260 IBasicVideo *pBasicVideo;
3263 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pctinfo);
3270 hr = IBasicVideo_GetTypeInfoCount(pBasicVideo, pctinfo);
3281 IBasicVideo *pBasicVideo;
3284 TRACE(
"(%p/%p)->(%d, %d, %p)\n",
This, iface, iTInfo, lcid, ppTInfo);
3291 hr = IBasicVideo_GetTypeInfo(pBasicVideo, iTInfo, lcid, ppTInfo);
3302 IBasicVideo *pBasicVideo;
3305 TRACE(
"(%p/%p)->(%s, %p, %d, %d, %p)\n",
This, iface,
debugstr_guid(
riid), rgszNames, cNames,
3313 hr = IBasicVideo_GetIDsOfNames(pBasicVideo,
riid, rgszNames, cNames, lcid, rgDispId);
3325 IBasicVideo *pBasicVideo;
3328 TRACE(
"(%p/%p)->(%d, %s, %d, %04x, %p, %p, %p, %p)\n",
This, iface, dispIdMember,
3336 hr = IBasicVideo_Invoke(pBasicVideo, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
3347 IBasicVideo *pBasicVideo;
3350 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pAvgTimePerFrame);
3357 hr = IBasicVideo_get_AvgTimePerFrame(pBasicVideo, pAvgTimePerFrame);
3367 IBasicVideo *pBasicVideo;
3370 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pBitRate);
3377 hr = IBasicVideo_get_BitRate(pBasicVideo, pBitRate);
3387 IBasicVideo *pBasicVideo;
3390 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pBitErrorRate);
3397 hr = IBasicVideo_get_BitErrorRate(pBasicVideo, pBitErrorRate);
3407 IBasicVideo *pBasicVideo;
3410 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pVideoWidth);
3417 hr = IBasicVideo_get_VideoWidth(pBasicVideo, pVideoWidth);
3427 IBasicVideo *pBasicVideo;
3430 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pVideoHeight);
3437 hr = IBasicVideo_get_VideoHeight(pBasicVideo, pVideoHeight);
3447 IBasicVideo *pBasicVideo;
3450 TRACE(
"(%p/%p)->(%d)\n",
This, iface, SourceLeft);
3457 hr = IBasicVideo_put_SourceLeft(pBasicVideo, SourceLeft);
3467 IBasicVideo *pBasicVideo;
3470 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pSourceLeft);
3477 hr = IBasicVideo_get_SourceLeft(pBasicVideo, pSourceLeft);
3487 IBasicVideo *pBasicVideo;
3490 TRACE(
"(%p/%p)->(%d)\n",
This, iface, SourceWidth);
3497 hr = IBasicVideo_put_SourceWidth(pBasicVideo, SourceWidth);
3507 IBasicVideo *pBasicVideo;
3510 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pSourceWidth);
3517 hr = IBasicVideo_get_SourceWidth(pBasicVideo, pSourceWidth);
3527 IBasicVideo *pBasicVideo;
3530 TRACE(
"(%p/%p)->(%d)\n",
This, iface, SourceTop);
3537 hr = IBasicVideo_put_SourceTop(pBasicVideo, SourceTop);
3547 IBasicVideo *pBasicVideo;
3550 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pSourceTop);
3557 hr = IBasicVideo_get_SourceTop(pBasicVideo, pSourceTop);
3567 IBasicVideo *pBasicVideo;
3570 TRACE(
"(%p/%p)->(%d)\n",
This, iface, SourceHeight);
3577 hr = IBasicVideo_put_SourceHeight(pBasicVideo, SourceHeight);
3587 IBasicVideo *pBasicVideo;
3590 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pSourceHeight);
3597 hr = IBasicVideo_get_SourceHeight(pBasicVideo, pSourceHeight);
3607 IBasicVideo *pBasicVideo;
3610 TRACE(
"(%p/%p)->(%d)\n",
This, iface, DestinationLeft);
3617 hr = IBasicVideo_put_DestinationLeft(pBasicVideo, DestinationLeft);
3627 IBasicVideo *pBasicVideo;
3630 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pDestinationLeft);
3637 hr = IBasicVideo_get_DestinationLeft(pBasicVideo, pDestinationLeft);
3647 IBasicVideo *pBasicVideo;
3650 TRACE(
"(%p/%p)->(%d)\n",
This, iface, DestinationWidth);
3657 hr = IBasicVideo_put_DestinationWidth(pBasicVideo, DestinationWidth);
3667 IBasicVideo *pBasicVideo;
3670 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pDestinationWidth);
3677 hr = IBasicVideo_get_DestinationWidth(pBasicVideo, pDestinationWidth);
3687 IBasicVideo *pBasicVideo;
3690 TRACE(
"(%p/%p)->(%d)\n",
This, iface, DestinationTop);
3697 hr = IBasicVideo_put_DestinationTop(pBasicVideo, DestinationTop);
3707 IBasicVideo *pBasicVideo;
3710 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pDestinationTop);
3717 hr = IBasicVideo_get_DestinationTop(pBasicVideo, pDestinationTop);
3727 IBasicVideo *pBasicVideo;
3730 TRACE(
"(%p/%p)->(%d)\n",
This, iface, DestinationHeight);
3737 hr = IBasicVideo_put_DestinationHeight(pBasicVideo, DestinationHeight);
3745 LONG *pDestinationHeight)
3748 IBasicVideo *pBasicVideo;
3751 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pDestinationHeight);
3758 hr = IBasicVideo_get_DestinationHeight(pBasicVideo, pDestinationHeight);
3769 IBasicVideo *pBasicVideo;
3790 IBasicVideo *pBasicVideo;
3793 TRACE(
"(%p/%p)->(%p, %p, %p, %p)\n",
This, iface, pLeft, pTop, pWidth, pHeight);
3800 hr = IBasicVideo_GetSourcePosition(pBasicVideo, pLeft, pTop, pWidth, pHeight);
3810 IBasicVideo *pBasicVideo;
3820 hr = IBasicVideo_SetDefaultSourcePosition(pBasicVideo);
3831 IBasicVideo *pBasicVideo;
3841 hr = IBasicVideo_SetDestinationPosition(pBasicVideo, Left,
Top,
Width,
Height);
3852 IBasicVideo *pBasicVideo;
3855 TRACE(
"(%p/%p)->(%p, %p, %p, %p)\n",
This, iface, pLeft, pTop, pWidth, pHeight);
3862 hr = IBasicVideo_GetDestinationPosition(pBasicVideo, pLeft, pTop, pWidth, pHeight);
3872 IBasicVideo *pBasicVideo;
3882 hr = IBasicVideo_SetDefaultDestinationPosition(pBasicVideo);
3892 IBasicVideo *pBasicVideo;
3895 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pWidth, pHeight);
3902 hr = IBasicVideo_GetVideoSize(pBasicVideo, pWidth, pHeight);
3913 IBasicVideo *pBasicVideo;
3916 TRACE(
"(%p/%p)->(%d, %d, %p, %p)\n",
This, iface, StartIndex,
Entries, pRetrieved, pPalette);
3923 hr = IBasicVideo_GetVideoPaletteEntries(pBasicVideo, StartIndex,
Entries, pRetrieved, pPalette);
3934 IBasicVideo *pBasicVideo;
3944 hr = IBasicVideo_GetCurrentImage(pBasicVideo,
pBufferSize, pDIBImage);
3954 IBasicVideo *pBasicVideo;
3964 hr = IBasicVideo_IsUsingDefaultSource(pBasicVideo);
3974 IBasicVideo *pBasicVideo;
3984 hr = IBasicVideo_IsUsingDefaultDestination(pBasicVideo);
3995 IBasicVideo2 *pBasicVideo2;
4067 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
4076 return IUnknown_AddRef(
This->outer_unk);
4085 return IUnknown_Release(
This->outer_unk);
4092 IVideoWindow *pVideoWindow;
4095 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pctinfo);
4102 hr = IVideoWindow_GetTypeInfoCount(pVideoWindow, pctinfo);
4113 IVideoWindow *pVideoWindow;
4116 TRACE(
"(%p/%p)->(%d, %d, %p)\n",
This, iface, iTInfo, lcid, ppTInfo);
4123 hr = IVideoWindow_GetTypeInfo(pVideoWindow, iTInfo, lcid, ppTInfo);
4134 IVideoWindow *pVideoWindow;
4137 TRACE(
"(%p/%p)->(%s, %p, %d, %d, %p)\n",
This, iface,
debugstr_guid(
riid), rgszNames, cNames,
4145 hr = IVideoWindow_GetIDsOfNames(pVideoWindow,
riid, rgszNames, cNames, lcid, rgDispId);
4157 IVideoWindow *pVideoWindow;
4160 TRACE(
"(%p/%p)->(%d, %s, %d, %04x, %p, %p, %p, %p)\n",
This, iface, dispIdMember,
4168 hr = IVideoWindow_Invoke(pVideoWindow, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
4180 IVideoWindow *pVideoWindow;
4190 hr = IVideoWindow_put_Caption(pVideoWindow, strCaption);
4200 IVideoWindow *pVideoWindow;
4203 TRACE(
"(%p/%p)->(%p)\n",
This, iface, strCaption);
4210 hr = IVideoWindow_get_Caption(pVideoWindow, strCaption);
4220 IVideoWindow *pVideoWindow;
4223 TRACE(
"(%p/%p)->(%d)\n",
This, iface, WindowStyle);
4230 hr = IVideoWindow_put_WindowStyle(pVideoWindow, WindowStyle);
4240 IVideoWindow *pVideoWindow;
4243 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowStyle);
4250 hr = IVideoWindow_get_WindowStyle(pVideoWindow, WindowStyle);
4260 IVideoWindow *pVideoWindow;
4263 TRACE(
"(%p/%p)->(%d)\n",
This, iface, WindowStyleEx);
4270 hr = IVideoWindow_put_WindowStyleEx(pVideoWindow, WindowStyleEx);
4280 IVideoWindow *pVideoWindow;
4283 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowStyleEx);
4290 hr = IVideoWindow_get_WindowStyleEx(pVideoWindow, WindowStyleEx);
4300 IVideoWindow *pVideoWindow;
4303 TRACE(
"(%p/%p)->(%d)\n",
This, iface, AutoShow);
4310 hr = IVideoWindow_put_AutoShow(pVideoWindow, AutoShow);
4320 IVideoWindow *pVideoWindow;
4323 TRACE(
"(%p/%p)->(%p)\n",
This, iface, AutoShow);
4330 hr = IVideoWindow_get_AutoShow(pVideoWindow, AutoShow);
4340 IVideoWindow *pVideoWindow;
4343 TRACE(
"(%p/%p)->(%d)\n",
This, iface, WindowState);
4350 hr = IVideoWindow_put_WindowState(pVideoWindow, WindowState);
4360 IVideoWindow *pVideoWindow;
4363 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowState);
4370 hr = IVideoWindow_get_WindowState(pVideoWindow, WindowState);
4380 IVideoWindow *pVideoWindow;
4383 TRACE(
"(%p/%p)->(%d)\n",
This, iface, BackgroundPalette);
4390 hr = IVideoWindow_put_BackgroundPalette(pVideoWindow, BackgroundPalette);
4398 LONG *pBackgroundPalette)
4401 IVideoWindow *pVideoWindow;
4404 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pBackgroundPalette);
4411 hr = IVideoWindow_get_BackgroundPalette(pVideoWindow, pBackgroundPalette);
4421 IVideoWindow *pVideoWindow;
4424 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Visible);
4431 hr = IVideoWindow_put_Visible(pVideoWindow, Visible);
4441 IVideoWindow *pVideoWindow;
4444 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pVisible);
4451 hr = IVideoWindow_get_Visible(pVideoWindow, pVisible);
4461 IVideoWindow *pVideoWindow;
4464 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Left);
4471 hr = IVideoWindow_put_Left(pVideoWindow, Left);
4481 IVideoWindow *pVideoWindow;
4484 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pLeft);
4491 hr = IVideoWindow_get_Left(pVideoWindow, pLeft);
4501 IVideoWindow *pVideoWindow;
4511 hr = IVideoWindow_put_Width(pVideoWindow,
Width);
4521 IVideoWindow *pVideoWindow;
4524 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pWidth);
4531 hr = IVideoWindow_get_Width(pVideoWindow, pWidth);
4541 IVideoWindow *pVideoWindow;
4551 hr = IVideoWindow_put_Top(pVideoWindow,
Top);
4561 IVideoWindow *pVideoWindow;
4564 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pTop);
4571 hr = IVideoWindow_get_Top(pVideoWindow, pTop);
4581 IVideoWindow *pVideoWindow;
4591 hr = IVideoWindow_put_Height(pVideoWindow,
Height);
4601 IVideoWindow *pVideoWindow;
4604 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pHeight);
4611 hr = IVideoWindow_get_Height(pVideoWindow, pHeight);
4621 IVideoWindow *pVideoWindow;
4631 hr = IVideoWindow_put_Owner(pVideoWindow,
Owner);
4641 IVideoWindow *pVideoWindow;
4651 hr = IVideoWindow_get_Owner(pVideoWindow,
Owner);
4661 IVideoWindow *pVideoWindow;
4671 hr = IVideoWindow_put_MessageDrain(pVideoWindow, Drain);
4681 IVideoWindow *pVideoWindow;
4684 TRACE(
"(%p/%p)->(%p)\n",
This, iface, Drain);
4691 hr = IVideoWindow_get_MessageDrain(pVideoWindow, Drain);
4701 IVideoWindow *pVideoWindow;
4711 hr = IVideoWindow_get_BorderColor(pVideoWindow,
Color);
4721 IVideoWindow *pVideoWindow;
4731 hr = IVideoWindow_put_BorderColor(pVideoWindow,
Color);
4741 IVideoWindow *pVideoWindow;
4744 TRACE(
"(%p/%p)->(%p)\n",
This, iface, FullScreenMode);
4751 hr = IVideoWindow_get_FullScreenMode(pVideoWindow, FullScreenMode);
4761 IVideoWindow *pVideoWindow;
4764 TRACE(
"(%p/%p)->(%d)\n",
This, iface, FullScreenMode);
4771 hr = IVideoWindow_put_FullScreenMode(pVideoWindow, FullScreenMode);
4781 IVideoWindow *pVideoWindow;
4784 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Focus);
4791 hr = IVideoWindow_SetWindowForeground(pVideoWindow, Focus);
4802 IVideoWindow *pVideoWindow;
4823 IVideoWindow *pVideoWindow;
4833 hr = IVideoWindow_SetWindowPosition(pVideoWindow, Left,
Top,
Width,
Height);
4844 IVideoWindow *pVideoWindow;
4847 TRACE(
"(%p/%p)->(%p, %p, %p, %p)\n",
This, iface, pLeft, pTop, pWidth, pHeight);
4854 hr = IVideoWindow_GetWindowPosition(pVideoWindow, pLeft, pTop, pWidth, pHeight);
4865 IVideoWindow *pVideoWindow;
4868 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pWidth, pHeight);
4875 hr = IVideoWindow_GetMinIdealImageSize(pVideoWindow, pWidth, pHeight);
4886 IVideoWindow *pVideoWindow;
4889 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pWidth, pHeight);
4896 hr = IVideoWindow_GetMaxIdealImageSize(pVideoWindow, pWidth, pHeight);
4907 IVideoWindow *pVideoWindow;
4910 TRACE(
"(%p/%p)->(%p, %p, %p, %p)\n",
This, iface, pLeft, pTop, pWidth, pHeight);
4917 hr = IVideoWindow_GetRestorePosition(pVideoWindow, pLeft, pTop, pWidth, pHeight);
4927 IVideoWindow *pVideoWindow;
4930 TRACE(
"(%p/%p)->(%d)\n",
This, iface, HideCursor);
4937 hr = IVideoWindow_HideCursor(pVideoWindow, HideCursor);
4947 IVideoWindow *pVideoWindow;
4950 TRACE(
"(%p/%p)->(%p)\n",
This, iface, CursorHidden);
4957 hr = IVideoWindow_IsCursorHidden(pVideoWindow, CursorHidden);
5026 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
5035 return IUnknown_AddRef(
This->outer_unk);
5044 return IUnknown_Release(
This->outer_unk);
5052 TRACE(
"(%p/%p)->(%p): stub !!!\n",
This, iface, pctinfo);
5062 TRACE(
"(%p/%p)->(%d, %d, %p): stub !!!\n",
This, iface, iTInfo, lcid, ppTInfo);
5073 cNames, lcid, rgDispId);
5084 TRACE(
"(%p/%p)->(%d, %s, %d, %04x, %p, %p, %p, %p): stub !!!\n",
This, iface, dispIdMember,
5108 TRACE(
"(%p/%p)->(%p, %p, %p, %d)\n",
This, iface, lEventCode, lParam1, lParam2, msTimeout);
5127 TRACE(
"(%p/%p)->(%d, %p)\n",
This, iface, msTimeout, pEvCode);
5129 if (
This->state != State_Running)
5134 *pEvCode =
This->CompletionStatus;
5146 TRACE(
"(%p/%p)->(%d)\n",
This, iface, lEvCode);
5164 TRACE(
"(%p/%p)->(%d)\n",
This, iface, lEvCode);
5183 TRACE(
"(%p/%p)->(%d, %08lx, %08lx): stub !!!\n",
This, iface, lEvCode, lParam1, lParam2);
5194 TRACE(
"(%p/%p)->(%08lx, %d, %08lx)\n",
This, iface,
hwnd, lMsg, lInstanceData);
5197 This->notif.msg = lMsg;
5198 This->notif.instance = lInstanceData;
5207 TRACE(
"(%p/%p)->(%d)\n",
This, iface, lNoNotifyFlags);
5209 if ((lNoNotifyFlags != 0) && (lNoNotifyFlags != 1))
5212 This->notif.disabled = lNoNotifyFlags;
5221 TRACE(
"(%p/%p)->(%p)\n",
This, iface, lplNoNotifyFlags);
5223 if (!lplNoNotifyFlags)
5226 *lplNoNotifyFlags =
This->notif.disabled;
5262 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
5269 return IUnknown_AddRef(
This->outer_unk);
5276 return IUnknown_Release(
This->outer_unk);
5281 FIXME(
"(%p): stub\n", pClassID);
5311 FILTER_STATE *pState)
5324 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pClock);
5328 for (
i = 0;
i <
This->nFilters;
i++)
5330 hr = IBaseFilter_SetSyncSource(
This->ppFiltersInGraph[
i], pClock);
5338 IBaseFilter_SetSyncSource(
This->ppFiltersInGraph[
i],
This->refClock);
5344 This->refClock = pClock;
5349 if (
This->HandleEcClockChanged)
5354 eshr = IMediaFilter_QueryInterface(iface, &IID_IMediaEventSink, (
void **)&pEventSink);
5358 IMediaEventSink_Release(pEventSink);
5372 TRACE(
"(%p/%p)->(%p)\n",
This, iface, ppClock);
5379 *ppClock =
This->refClock;
5411 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
5418 return IUnknown_AddRef(
This->outer_unk);
5425 return IUnknown_Release(
This->outer_unk);
5434 TRACE(
"(%p/%p)->(%d, %ld, %ld)\n",
This, iface,
EventCode, EventParam1, EventParam2);
5441 TRACE(
"Process EC_COMPLETE notification\n");
5442 if (++
This->EcCompleteCount ==
This->nRenderers)
5447 TRACE(
"Send EC_COMPLETE to app\n");
5449 if (!
This->notif.disabled &&
This->notif.hWnd)
5451 TRACE(
"Send Window message\n");
5468 if (!
This->notif.disabled &&
This->notif.hWnd)
5493 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
5500 return IUnknown_AddRef(
This->outer_unk);
5507 return IUnknown_Release(
This->outer_unk);
5516 FIXME(
"(%p)->(%p, %p, %p, %p, %p, %x): stub!\n",
This, pOutputPin, pInputPin, pmtFirstConnection, pUsingFilter, hAbortEvent,
dwFlags);
5530 FIXME(
"The parameter hAbortEvent is not handled!\n");
5545 FIXME(
"(%p)->(%p): stub!\n",
This, pFilter);
5554 FIXME(
"(%p)->(%p): stub!\n",
This, pEnum);
5563 FIXME(
"(%p)->(%p): stub!\n",
This, pFilter);
5572 FIXME(
"(%p)->(%p): stub!\n",
This, prtStart);
5582 FIXME(
"(%p)->(%p, %p, %p): stub!\n",
This, pOutputPin, pConnection, hEventAbort);
5643 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
5650 return IUnknown_AddRef(
This->outer_unk);
5657 return IUnknown_Release(
This->outer_unk);
5667 TRACE(
"(%p)->(%p): current version %i\n",
This, pVersion,
This->version);
5669 *pVersion =
This->version;
5694 TRACE(
"(%p,%p)\n", pUnkOuter, ppObj);
5730 fimpl->
state = State_Stopped;
5752 ERR(
"Unable to create filter mapper (%x)\n",
hr);
5768 FIXME(
"CLSID_FilterGraphNoThread partially implemented - Forwarding to CLSID_FilterGraph\n");
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
@ AM_SEEKING_NoPositioning
@ AM_SEEKING_AbsolutePositioning
enum _PinDirection PIN_DIRECTION
@ AM_FILTER_MISC_FLAGS_IS_RENDERER
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR wszFriendlyName[]
const GUID IID_IBaseFilter
const GUID IID_IAsyncReader
static HRESULT WINAPI VideoWindow_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI BasicVideo_GetTypeInfo(IBasicVideo2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI MediaPosition_put_StopTime(IMediaPosition *iface, REFTIME llTime)
static HRESULT WINAPI MediaEvent_QueryInterface(IMediaEventEx *iface, REFIID riid, void **ppvObj)
static HRESULT all_renderers_seek(IFilterGraphImpl *This, fnFoundSeek FoundSeek, DWORD_PTR arg)
static HRESULT WINAPI FilterGraph2_Render(IFilterGraph2 *iface, IPin *ppinOut)
static HRESULT WINAPI MediaSeeking_GetCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
static ULONG WINAPI ObjectWithSite_Release(IObjectWithSite *iface)
static HRESULT WINAPI BasicVideo_get_BitErrorRate(IBasicVideo2 *iface, LONG *pBitErrorRate)
static HRESULT WINAPI MediaControl_GetTypeInfoCount(IMediaControl *iface, UINT *pctinfo)
static HRESULT WINAPI VideoWindow_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static IFilterGraphImpl * impl_from_IObjectWithSite(IObjectWithSite *iface)
static HRESULT WINAPI VideoWindow_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI FilterGraph2_RenderEx(IFilterGraph2 *iface, IPin *pPinOut, DWORD dwFlags, DWORD *pvContext)
static HRESULT WINAPI found_getposition(IFilterGraphImpl *This, IMediaSeeking *seek, DWORD_PTR pargs)
static HRESULT WINAPI MediaEvent_GetEvent(IMediaEventEx *iface, LONG *lEventCode, LONG_PTR *lParam1, LONG_PTR *lParam2, LONG msTimeout)
HRESULT(WINAPI * fnFoundFilter)(IBaseFilter *, DWORD_PTR data)
static HRESULT WINAPI MediaPosition_CanSeekBackward(IMediaPosition *iface, LONG *pCanSeekBackward)
static HRESULT WINAPI BasicVideo_put_DestinationTop(IBasicVideo2 *iface, LONG DestinationTop)
static HRESULT WINAPI VideoWindow_put_Height(IVideoWindow *iface, LONG Height)
static HRESULT WINAPI MediaEventSink_QueryInterface(IMediaEventSink *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VideoWindow_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode)
static ULONG WINAPI MediaPosition_AddRef(IMediaPosition *iface)
static HRESULT WINAPI BasicVideo_SetDefaultSourcePosition(IBasicVideo2 *iface)
static HRESULT WINAPI FilterGraph2_Connect(IFilterGraph2 *iface, IPin *ppinOut, IPin *ppinIn)
static ULONG WINAPI MediaEventSink_Release(IMediaEventSink *iface)
static HRESULT WINAPI MediaPosition_GetTypeInfoCount(IMediaPosition *iface, UINT *pctinfo)
static ULONG WINAPI MediaEvent_Release(IMediaEventEx *iface)
static ULONG WINAPI ObjectWithSite_AddRef(IObjectWithSite *iface)
static HRESULT WINAPI BasicVideo_put_DestinationHeight(IBasicVideo2 *iface, LONG DestinationHeight)
static HRESULT WINAPI VideoWindow_QueryInterface(IVideoWindow *iface, REFIID riid, void **ppvObj)
static ULONG WINAPI FilterGraph2_Release(IFilterGraph2 *iface)
static HRESULT WINAPI MediaEvent_GetTypeInfo(IMediaEventEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI MediaPosition_put_Rate(IMediaPosition *iface, double dRate)
static BOOL EventsQueue_PutEvent(EventsQueue *omr, const Event *evt)
static HRESULT WINAPI VideoWindow_put_Width(IVideoWindow *iface, LONG Width)
static HRESULT WINAPI BasicAudio_GetIDsOfNames(IBasicAudio *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI MediaSeeking_GetAvailable(IMediaSeeking *iface, LONGLONG *pEarliest, LONGLONG *pLatest)
static ULONG WINAPI FilterGraph2_AddRef(IFilterGraph2 *iface)
static HRESULT WINAPI VideoWindow_put_Top(IVideoWindow *iface, LONG Top)
static HRESULT WINAPI GraphConfig_RemoveFilterFromCache(IGraphConfig *iface, IBaseFilter *pFilter)
static HRESULT WINAPI ObjectWithSite_QueryInterface(IObjectWithSite *iface, REFIID riid, void **ppvObj)
static const IMediaEventExVtbl IMediaEventEx_VTable
static HRESULT WINAPI MediaControl_Invoke(IMediaControl *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI VideoWindow_SetWindowForeground(IVideoWindow *iface, LONG Focus)
static HRESULT WINAPI MediaControl_RenderFile(IMediaControl *iface, BSTR strFilename)
static ULONG WINAPI MediaFilter_AddRef(IMediaFilter *iface)
static HRESULT WINAPI MediaFilter_Pause(IMediaFilter *iface)
static HRESULT WINAPI BasicVideo_put_DestinationLeft(IBasicVideo2 *iface, LONG DestinationLeft)
static HRESULT WINAPI VideoWindow_put_MessageDrain(IVideoWindow *iface, OAHWND Drain)
static HRESULT WINAPI GraphConfig_RemoveFilterEx(IGraphConfig *iface, IBaseFilter *pFilter, DWORD dwFlags)
static HRESULT WINAPI VideoWindow_put_WindowState(IVideoWindow *iface, LONG WindowState)
static HRESULT WINAPI VideoWindow_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx)
static ULONG WINAPI BasicVideo_AddRef(IBasicVideo2 *iface)
static HRESULT WINAPI BasicVideo_QueryInterface(IBasicVideo2 *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI MediaControl_Run(IMediaControl *iface)
static ULONG WINAPI MediaControl_Release(IMediaControl *iface)
static HRESULT WINAPI MediaControl_AddSourceFilter(IMediaControl *iface, BSTR strFilename, IDispatch **ppUnk)
static HRESULT WINAPI FilterGraph2_RenderFile(IFilterGraph2 *iface, LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList)
static HRESULT WINAPI VideoWindow_get_Left(IVideoWindow *iface, LONG *pLeft)
static HRESULT WINAPI BasicVideo_GetIDsOfNames(IBasicVideo2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI MediaPosition_get_Duration(IMediaPosition *iface, REFTIME *plength)
static HRESULT CheckCircularConnection(IFilterGraphImpl *This, IPin *out, IPin *in)
static HRESULT WINAPI MediaEvent_GetIDsOfNames(IMediaEventEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI VideoWindow_put_Owner(IVideoWindow *iface, OAHWND Owner)
static HRESULT WINAPI MediaSeeking_IsFormatSupported(IMediaSeeking *iface, const GUID *pFormat)
static HRESULT WINAPI BasicVideo_get_DestinationLeft(IBasicVideo2 *iface, LONG *pDestinationLeft)
static HRESULT WINAPI MediaControl_GetTypeInfo(IMediaControl *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI MediaSeeking_GetDuration(IMediaSeeking *iface, LONGLONG *pDuration)
static HRESULT WINAPI BasicAudio_GetTypeInfo(IBasicAudio *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static const IBasicAudioVtbl IBasicAudio_VTable
static HRESULT WINAPI MediaControl_get_RegFilterCollection(IMediaControl *iface, IDispatch **ppUnk)
static HRESULT WINAPI SendStop(IBaseFilter *pFilter, DWORD_PTR data)
static HRESULT WINAPI MediaControl_GetIDsOfNames(IMediaControl *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI BasicVideo_GetVideoPaletteEntries(IBasicVideo2 *iface, LONG StartIndex, LONG Entries, LONG *pRetrieved, LONG *pPalette)
static HRESULT WINAPI VideoWindow_put_FullScreenMode(IVideoWindow *iface, LONG FullScreenMode)
static HRESULT WINAPI MediaControl_get_FilterCollection(IMediaControl *iface, IDispatch **ppUnk)
static HRESULT WINAPI MediaFilter_GetSyncSource(IMediaFilter *iface, IReferenceClock **ppClock)
static HRESULT WINAPI BasicVideo_IsUsingDefaultDestination(IBasicVideo2 *iface)
static HRESULT WINAPI BasicVideo_IsUsingDefaultSource(IBasicVideo2 *iface)
static BOOL EventsQueue_GetEvent(EventsQueue *omr, Event *evt, LONG msTimeOut)
static HRESULT WINAPI FilterGraph2_Abort(IFilterGraph2 *iface)
static HRESULT WINAPI ObjectWithSite_GetSite(IObjectWithSite *iface, REFIID riid, PVOID *ppvSite)
static IFilterGraphImpl * impl_from_IMediaFilter(IMediaFilter *iface)
#define EVENTS_RING_BUFFER_INCREMENT
static HRESULT WINAPI MediaPosition_GetIDsOfNames(IMediaPosition *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ULONG WINAPI GraphConfig_Release(IGraphConfig *iface)
static HRESULT WINAPI GraphConfig_Reconnect(IGraphConfig *iface, IPin *pOutputPin, IPin *pInputPin, const AM_MEDIA_TYPE *pmtFirstConnection, IBaseFilter *pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags)
static HRESULT WINAPI VideoWindow_SetWindowPosition(IVideoWindow *iface, LONG Left, LONG Top, LONG Width, LONG Height)
static HRESULT WINAPI BasicAudio_QueryInterface(IBasicAudio *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI MediaSeeking_CheckCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
static HRESULT WINAPI GraphConfig_AddFilterToCache(IGraphConfig *iface, IBaseFilter *pFilter)
static ULONG WINAPI FilterGraphInner_Release(IUnknown *iface)
static HRESULT WINAPI BasicVideo_put_SourceLeft(IBasicVideo2 *iface, LONG SourceLeft)
static HRESULT WINAPI MediaEvent_GetTypeInfoCount(IMediaEventEx *iface, UINT *pctinfo)
static HRESULT WINAPI MediaSeeking_IsUsingTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
static IFilterGraphImpl * impl_from_IGraphConfig(IGraphConfig *iface)
static HRESULT WINAPI BasicVideo_put_DestinationWidth(IBasicVideo2 *iface, LONG DestinationWidth)
static HRESULT WINAPI BasicAudio_get_Volume(IBasicAudio *iface, LONG *plVolume)
static HRESULT WINAPI VideoWindow_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden)
static HRESULT WINAPI FilterGraph2_Reconnect(IFilterGraph2 *iface, IPin *ppin)
static HRESULT WINAPI BasicVideo_SetDestinationPosition(IBasicVideo2 *iface, LONG Left, LONG Top, LONG Width, LONG Height)
static IFilterGraphImpl * impl_from_IVideoWindow(IVideoWindow *iface)
static HRESULT WINAPI MediaSeeking_GetPreroll(IMediaSeeking *iface, LONGLONG *pllPreroll)
static HRESULT WINAPI MediaEvent_Invoke(IMediaEventEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI VideoWindow_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo)
static HRESULT WINAPI FilterGraph2_AddSourceFilterForMoniker(IFilterGraph2 *iface, IMoniker *pMoniker, IBindCtx *pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter **ppFilter)
static HRESULT WINAPI BasicVideo_Invoke(IBasicVideo2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI MediaEvent_GetNotifyFlags(IMediaEventEx *iface, LONG *lplNoNotifyFlags)
static HRESULT WINAPI BasicVideo_GetCurrentImage(IBasicVideo2 *iface, LONG *pBufferSize, LONG *pDIBImage)
static ULONG WINAPI MediaEventSink_AddRef(IMediaEventSink *iface)
static HRESULT WINAPI MediaEvent_GetEventHandle(IMediaEventEx *iface, OAEVENT *hEvent)
static HRESULT WINAPI BasicVideo_get_VideoHeight(IBasicVideo2 *iface, LONG *pVideoHeight)
static HRESULT WINAPI VideoWindow_HideCursor(IVideoWindow *iface, LONG HideCursor)
static HRESULT WINAPI MediaPosition_get_PrerollTime(IMediaPosition *iface, REFTIME *pllTime)
static const IFilterGraph2Vtbl IFilterGraph2_VTable
static int EventsQueue_Destroy(EventsQueue *omr)
static HRESULT WINAPI BasicVideo_SetDefaultDestinationPosition(IBasicVideo2 *iface)
static HRESULT WINAPI FilterGraph2_AddFilter(IFilterGraph2 *iface, IBaseFilter *pFilter, LPCWSTR pName)
static HRESULT WINAPI found_setposition(IFilterGraphImpl *This, IMediaSeeking *seek, DWORD_PTR pargs)
static HRESULT WINAPI MediaSeeking_SetRate(IMediaSeeking *iface, double dRate)
static HRESULT FilterGraph2_RenderRecurse(IFilterGraphImpl *This, IPin *ppinOut)
static HRESULT WINAPI MediaEvent_SetNotifyWindow(IMediaEventEx *iface, OAHWND hwnd, LONG lMsg, LONG_PTR lInstanceData)
static HRESULT WINAPI VideoWindow_get_Visible(IVideoWindow *iface, LONG *pVisible)
static HRESULT WINAPI MediaPosition_GetTypeInfo(IMediaPosition *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static IFilterGraphImpl * impl_from_IGraphVersion(IGraphVersion *iface)
static IFilterGraphImpl * impl_from_IBasicAudio(IBasicAudio *iface)
static HRESULT WINAPI BasicVideo_GetVideoSize(IBasicVideo2 *iface, LONG *pWidth, LONG *pHeight)
static HRESULT WINAPI BasicVideo_SetSourcePosition(IBasicVideo2 *iface, LONG Left, LONG Top, LONG Width, LONG Height)
static ULONG WINAPI GraphVersion_Release(IGraphVersion *iface)
static HRESULT WINAPI MediaPosition_Invoke(IMediaPosition *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI BasicVideo_get_DestinationHeight(IBasicVideo2 *iface, LONG *pDestinationHeight)
static HRESULT WINAPI BasicAudio_GetTypeInfoCount(IBasicAudio *iface, UINT *pctinfo)
static HRESULT WINAPI MediaControl_GetState(IMediaControl *iface, LONG msTimeout, OAFilterState *pfs)
static HRESULT WINAPI VideoWindow_put_AutoShow(IVideoWindow *iface, LONG AutoShow)
HRESULT FilterGraph_create(IUnknown *pUnkOuter, LPVOID *ppObj)
HRESULT FilterGraphNoThread_create(IUnknown *pUnkOuter, LPVOID *ppObj)
static HRESULT WINAPI BasicVideo_GetDestinationPosition(IBasicVideo2 *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
static HRESULT WINAPI VideoWindow_get_Height(IVideoWindow *iface, LONG *pHeight)
static HRESULT WINAPI GraphConfig_GetFilterFlags(IGraphConfig *iface, IBaseFilter *pFilter, DWORD *dwFlags)
HRESULT(WINAPI * fnFoundSeek)(IFilterGraphImpl *This, IMediaSeeking *, DWORD_PTR arg)
static HRESULT WINAPI BasicVideo_get_SourceWidth(IBasicVideo2 *iface, LONG *pSourceWidth)
static HRESULT WINAPI MediaControl_Pause(IMediaControl *iface)
static HRESULT WINAPI BasicVideo_get_SourceLeft(IBasicVideo2 *iface, LONG *pSourceLeft)
static HRESULT WINAPI MediaFilter_QueryInterface(IMediaFilter *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VideoWindow_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle)
struct _ITF_CACHE_ENTRY ITF_CACHE_ENTRY
static HRESULT WINAPI SendGetState(IBaseFilter *pFilter, DWORD_PTR data)
static HRESULT WINAPI VideoWindow_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
static HRESULT WINAPI VideoWindow_get_BorderColor(IVideoWindow *iface, LONG *Color)
static HRESULT WINAPI BasicVideo_put_SourceHeight(IBasicVideo2 *iface, LONG SourceHeight)
static IFilterGraphImpl * impl_from_IUnknown(IUnknown *iface)
static HRESULT WINAPI SendRun(IBaseFilter *pFilter, DWORD_PTR data)
static HRESULT WINAPI GraphConfig_Reconfigure(IGraphConfig *iface, IGraphConfigCallback *pCallback, void *pvContext, DWORD dwFlags, HANDLE hAbortEvent)
static const IMediaSeekingVtbl IMediaSeeking_VTable
static HRESULT WINAPI FoundDuration(IFilterGraphImpl *This, IMediaSeeking *seek, DWORD_PTR pduration)
static HRESULT WINAPI MediaFilter_Stop(IMediaFilter *iface)
static HRESULT WINAPI BasicAudio_put_Volume(IBasicAudio *iface, LONG lVolume)
static HRESULT WINAPI VideoWindow_get_Caption(IVideoWindow *iface, BSTR *strCaption)
static HRESULT WINAPI VideoWindow_put_BorderColor(IVideoWindow *iface, LONG Color)
static HRESULT WINAPI VideoWindow_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
static const IMediaControlVtbl IMediaControl_VTable
static HRESULT WINAPI MediaSeeking_GetRate(IMediaSeeking *iface, double *pdRate)
static HRESULT WINAPI VideoWindow_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette)
static HRESULT WINAPI VideoWindow_get_Owner(IVideoWindow *iface, OAHWND *Owner)
static HRESULT WINAPI MediaSeeking_SetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
static HRESULT WINAPI BasicVideo_GetTypeInfoCount(IBasicVideo2 *iface, UINT *pctinfo)
static HRESULT WINAPI MediaEventSink_Notify(IMediaEventSink *iface, LONG EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2)
static const IMediaEventSinkVtbl IMediaEventSink_VTable
static int EventsQueue_Init(EventsQueue *omr)
static HRESULT WINAPI VideoWindow_get_Width(IVideoWindow *iface, LONG *pWidth)
static HRESULT WINAPI MediaControl_Stop(IMediaControl *iface)
static HRESULT GetFilterInfo(IMoniker *pMoniker, VARIANT *pvar)
static HRESULT WINAPI MediaEvent_SetNotifyFlags(IMediaEventEx *iface, LONG lNoNotifyFlags)
static HRESULT WINAPI MediaPosition_put_PrerollTime(IMediaPosition *iface, REFTIME llTime)
static ULONG WINAPI VideoWindow_Release(IVideoWindow *iface)
static HRESULT WINAPI VideoWindow_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain)
static HRESULT WINAPI MediaFilter_GetState(IMediaFilter *iface, DWORD dwMsTimeout, FILTER_STATE *pState)
static HRESULT WINAPI FilterGraph2_EnumFilters(IFilterGraph2 *iface, IEnumFilters **ppEnum)
static HRESULT WINAPI VideoWindow_put_Caption(IVideoWindow *iface, BSTR strCaption)
static ULONG WINAPI GraphVersion_AddRef(IGraphVersion *iface)
static HRESULT WINAPI VideoWindow_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
static HRESULT WINAPI MediaEvent_WaitForCompletion(IMediaEventEx *iface, LONG msTimeout, LONG *pEvCode)
#define MAX_ITF_CACHE_ENTRIES
static HRESULT WINAPI MediaControl_QueryInterface(IMediaControl *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI FoundCapabilities(IFilterGraphImpl *This, IMediaSeeking *seek, DWORD_PTR pcaps)
static HRESULT WINAPI BasicVideo_put_SourceWidth(IBasicVideo2 *iface, LONG SourceWidth)
static HRESULT WINAPI MediaSeeking_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, LONGLONG *pStop)
static HRESULT WINAPI FilterGraph2_FindFilterByName(IFilterGraph2 *iface, LPCWSTR pName, IBaseFilter **ppFilter)
static HRESULT WINAPI BasicAudio_put_Balance(IBasicAudio *iface, LONG lBalance)
static HRESULT WINAPI BasicVideo_get_VideoWidth(IBasicVideo2 *iface, LONG *pVideoWidth)
static ULONG WINAPI GraphConfig_AddRef(IGraphConfig *iface)
static HRESULT WINAPI BasicVideo_get_SourceHeight(IBasicVideo2 *iface, LONG *pSourceHeight)
static HRESULT WINAPI BasicVideo2_GetPreferredAspectRatio(IBasicVideo2 *iface, LONG *plAspectX, LONG *plAspectY)
static HRESULT ConvertFromREFTIME(IMediaSeeking *seek, REFTIME time_in, LONGLONG *time_out)
static IFilterGraphImpl * impl_from_IBasicVideo2(IBasicVideo2 *iface)
static HRESULT WINAPI GraphVersion_QueryInterface(IGraphVersion *iface, REFIID riid, void **ppv)
static HRESULT WINAPI MediaFilter_SetSyncSource(IMediaFilter *iface, IReferenceClock *pClock)
static HRESULT WINAPI VideoWindow_put_Visible(IVideoWindow *iface, LONG Visible)
static IFilterGraphImpl * impl_from_IMediaControl(IMediaControl *iface)
static ULONG WINAPI MediaSeeking_AddRef(IMediaSeeking *iface)
static HRESULT WINAPI VideoWindow_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx)
static HRESULT WINAPI MediaControl_StopWhenReady(IMediaControl *iface)
static HRESULT WINAPI MediaPosition_get_StopTime(IMediaPosition *iface, REFTIME *pllTime)
static HRESULT WINAPI MediaPosition_get_CurrentPosition(IMediaPosition *iface, REFTIME *pllTime)
static HRESULT GetTargetInterface(IFilterGraphImpl *pGraph, REFIID riid, LPVOID *ppvObj)
static HRESULT WINAPI MediaEvent_FreeEventParams(IMediaEventEx *iface, LONG lEvCode, LONG_PTR lParam1, LONG_PTR lParam2)
static const IVideoWindowVtbl IVideoWindow_VTable
static IFilterGraphImpl * impl_from_IMediaSeeking(IMediaSeeking *iface)
static HRESULT WINAPI FilterGraph2_QueryInterface(IFilterGraph2 *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI FilterGraph2_AddSourceFilter(IFilterGraph2 *iface, LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter **ppFilter)
static IFilterGraphImpl * impl_from_IFilterGraph2(IFilterGraph2 *iface)
static HRESULT WINAPI MediaEvent_RestoreDefaultHandling(IMediaEventEx *iface, LONG lEvCode)
static ULONG WINAPI BasicAudio_AddRef(IBasicAudio *iface)
static HRESULT WINAPI MediaSeeking_SetTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
static HRESULT GetInternalConnections(IBaseFilter *pfilter, IPin *pinputpin, IPin ***pppins, ULONG *pnb)
static HRESULT WINAPI MediaFilter_Run(IMediaFilter *iface, REFERENCE_TIME tStart)
static HRESULT WINAPI MediaSeeking_GetCurrentPosition(IMediaSeeking *iface, LONGLONG *pCurrent)
static ULONG WINAPI MediaControl_AddRef(IMediaControl *iface)
static ULONG WINAPI FilterGraphInner_AddRef(IUnknown *iface)
static HRESULT WINAPI BasicVideo_put_SourceTop(IBasicVideo2 *iface, LONG SourceTop)
static HRESULT WINAPI VideoWindow_put_Left(IVideoWindow *iface, LONG Left)
static HRESULT WINAPI ObjectWithSite_SetSite(IObjectWithSite *iface, IUnknown *pUnkSite)
static IFilterGraphImpl * impl_from_IMediaPosition(IMediaPosition *iface)
static HRESULT WINAPI FilterGraph2_ShouldOperationContinue(IFilterGraph2 *iface)
static HRESULT WINAPI MediaSeeking_GetTimeFormat(IMediaSeeking *iface, GUID *pFormat)
static HRESULT WINAPI BasicAudio_get_Balance(IBasicAudio *iface, LONG *plBalance)
static HRESULT WINAPI MediaEvent_CancelDefaultHandling(IMediaEventEx *iface, LONG lEvCode)
static ULONG WINAPI MediaFilter_Release(IMediaFilter *iface)
static HRESULT WINAPI MediaSeeking_QueryPreferredFormat(IMediaSeeking *iface, GUID *pFormat)
static HRESULT WINAPI GraphConfig_EnumCacheFilter(IGraphConfig *iface, IEnumFilters **pEnum)
static const IBasicVideo2Vtbl IBasicVideo_VTable
static HRESULT WINAPI VideoWindow_get_WindowState(IVideoWindow *iface, LONG *WindowState)
struct _IFilterGraphImpl IFilterGraphImpl
static HRESULT WINAPI FilterGraph2_ConnectDirect(IFilterGraph2 *iface, IPin *ppinIn, IPin *ppinOut, const AM_MEDIA_TYPE *pmt)
static HRESULT WINAPI GraphConfig_PushThroughData(IGraphConfig *iface, IPin *pOutputPin, IPinConnection *pConnection, HANDLE hEventAbort)
static HRESULT WINAPI MediaSeeking_GetStopPosition(IMediaSeeking *iface, LONGLONG *pStop)
static const IMediaPositionVtbl IMediaPosition_VTable
static ULONG WINAPI MediaSeeking_Release(IMediaSeeking *iface)
static ULONG WINAPI MediaEvent_AddRef(IMediaEventEx *iface)
static HRESULT ExploreGraph(IFilterGraphImpl *pGraph, IPin *pOutputPin, fnFoundFilter FoundFilter, DWORD_PTR data)
static HRESULT WINAPI VideoWindow_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette)
static HRESULT WINAPI MediaPosition_put_CurrentPosition(IMediaPosition *iface, REFTIME llTime)
static HRESULT WINAPI GraphConfig_SetFilterFlags(IGraphConfig *iface, IBaseFilter *pFilter, DWORD dwFlags)
static HRESULT WINAPI BasicVideo_get_DestinationTop(IBasicVideo2 *iface, LONG *pDestinationTop)
static HRESULT WINAPI FilterGraph2_SetDefaultSyncSource(IFilterGraph2 *iface)
static HRESULT WINAPI GraphConfig_QueryInterface(IGraphConfig *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VideoWindow_NotifyOwnerMessage(IVideoWindow *iface, OAHWND hwnd, LONG uMsg, LONG_PTR wParam, LONG_PTR lParam)
static ULONG WINAPI BasicVideo_Release(IBasicVideo2 *iface)
static HRESULT WINAPI MediaSeeking_QueryInterface(IMediaSeeking *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI FilterGraph2_SetLogFile(IFilterGraph2 *iface, DWORD_PTR hFile)
static HRESULT WINAPI VideoWindow_get_AutoShow(IVideoWindow *iface, LONG *AutoShow)
static HRESULT WINAPI MediaPosition_CanSeekForward(IMediaPosition *iface, LONG *pCanSeekForward)
static IFilterGraphImpl * impl_from_IMediaEventEx(IMediaEventEx *iface)
static HRESULT CreateFilterInstanceAndLoadFile(GUID *clsid, LPCOLESTR pszFileName, IBaseFilter **filter)
static HRESULT WINAPI BasicVideo_GetSourcePosition(IBasicVideo2 *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
static const IGraphVersionVtbl IGraphVersion_VTable
static HRESULT WINAPI GraphConfig_GetStartTime(IGraphConfig *iface, REFERENCE_TIME *prtStart)
static HRESULT ConvertToREFTIME(IMediaSeeking *seek, LONGLONG time_in, REFTIME *time_out)
static HRESULT WINAPI BasicVideo_get_BitRate(IBasicVideo2 *iface, LONG *pBitRate)
static IFilterGraphImpl * impl_from_IMediaEventSink(IMediaEventSink *iface)
static HRESULT SendFilterMessage(IFilterGraphImpl *This, fnFoundFilter FoundFilter, DWORD_PTR data)
static ULONG WINAPI VideoWindow_AddRef(IVideoWindow *iface)
static HRESULT WINAPI VideoWindow_get_Top(IVideoWindow *iface, LONG *pTop)
static const IGraphConfigVtbl IGraphConfig_VTable
static HRESULT WINAPI FilterGraph2_ReconnectEx(IFilterGraph2 *iface, IPin *ppin, const AM_MEDIA_TYPE *pmt)
static HRESULT GetFileSourceFilter(LPCOLESTR pszFileName, IBaseFilter **filter)
static HRESULT WINAPI VideoWindow_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)
static HRESULT WINAPI BasicVideo_get_SourceTop(IBasicVideo2 *iface, LONG *pSourceTop)
static HRESULT WINAPI MediaSeeking_ConvertTimeFormat(IMediaSeeking *iface, LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
static HRESULT WINAPI SendPause(IBaseFilter *pFilter, DWORD_PTR data)
static const IMediaFilterVtbl IMediaFilter_VTable
static HRESULT WINAPI FilterGraph2_RemoveFilter(IFilterGraph2 *iface, IBaseFilter *pFilter)
static const IUnknownVtbl IInner_VTable
static HRESULT WINAPI FilterGraphInner_QueryInterface(IUnknown *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI FilterGraph2_Disconnect(IFilterGraph2 *iface, IPin *ppin)
static HRESULT WINAPI VideoWindow_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
static HRESULT WINAPI BasicAudio_Invoke(IBasicAudio *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI MediaPosition_QueryInterface(IMediaPosition *iface, REFIID riid, void **ppvObj)
static HRESULT WINAPI BasicVideo_get_DestinationWidth(IBasicVideo2 *iface, LONG *pDestinationWidth)
static HRESULT WINAPI MediaPosition_get_Rate(IMediaPosition *iface, double *pdRate)
static HRESULT WINAPI GraphVersion_QueryVersion(IGraphVersion *iface, LONG *pVersion)
static HRESULT WINAPI MediaFilter_GetClassID(IMediaFilter *iface, CLSID *pClassID)
static ULONG WINAPI MediaPosition_Release(IMediaPosition *iface)
static const IObjectWithSiteVtbl IObjectWithSite_VTable
static HRESULT WINAPI BasicVideo_get_AvgTimePerFrame(IBasicVideo2 *iface, REFTIME *pAvgTimePerFrame)
static ULONG WINAPI BasicAudio_Release(IBasicAudio *iface)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
DWORD WINAPI GetTickCount(VOID)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
#define IReferenceClock_AddRef(p)
#define IReferenceClock_Release(p)
#define IReferenceClock_GetTime(p, a)
HRESULT IEnumFiltersImpl_Construct(IGraphVersion *pVersionSource, IBaseFilter ***pppFilters, ULONG *pNumFilters, IEnumFilters **ppEnum)
HRESULT GetClassMediaFile(IAsyncReader *pReader, LPCOLESTR pszFileName, GUID *majorType, GUID *minorType, GUID *sourceFilter)
static const WCHAR wszOutputPinName[]
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID _Inout_ PULONG pBufferSize
FxPnpStateCallbackInfo * pCallback
GLint GLint GLint GLint GLint x
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLfloat GLfloat GLfloat GLfloat h
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
LPVOID WINAPI CoTaskMemRealloc(LPVOID pvOld, SIZE_T size)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static const ENTRY Entries[]
static IPrintDialogCallback callback
const IID IID_IObjectWithSite
static void DeleteMediaType(AM_MEDIA_TYPE *pMediaType)
static VARIANTARG static DISPID
_In_ NDIS_STATUS EventCode
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
const GUID IID_IPropertyBag
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
int seek(void *fd, ulong off, int mode)
CRITICAL_SECTION msg_crst
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
PCRITICAL_SECTION_DEBUG DebugInfo
IVideoWindow IVideoWindow_iface
IReferenceClock * refClock
IMediaControl IMediaControl_iface
IUnknown * punkFilterMapper2
REFERENCE_TIME pause_time
IBaseFilter * refClockProvider
IMediaPosition IMediaPosition_iface
IGraphVersion IGraphVersion_iface
REFERENCE_TIME start_time
IBaseFilter ** ppFiltersInGraph
IMediaEventSink IMediaEventSink_iface
IBasicAudio IBasicAudio_iface
IMediaSeeking IMediaSeeking_iface
IObjectWithSite IObjectWithSite_iface
ITF_CACHE_ENTRY ItfCacheEntries[MAX_ITF_CACHE_ENTRIES]
IMediaFilter IMediaFilter_iface
IGraphConfig IGraphConfig_iface
IBasicVideo2 IBasicVideo2_iface
IMediaEventEx IMediaEventEx_iface
IFilterGraph2 IFilterGraph2_iface
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
WORD WORD PSZ PSZ pszFileName
#define VFW_E_INVALIDMEDIATYPE
#define VFW_E_NOT_STOPPED
#define VFW_E_CIRCULAR_GRAPH
#define VFW_E_DUPLICATE_NAME
#define VFW_E_WRONG_STATE
#define VFW_S_PARTIAL_RENDER
#define VFW_E_CANNOT_CONNECT
#define VFW_S_DUPLICATE_NAME
#define VFW_E_CANNOT_RENDER
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
static struct wctab tab[]
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI DebugBreak(void)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)