hresult enumfilters (ifiltergraph *pgraph)
{
ienumfilters *penum = null;
ibasefilter *pfilter;
ulong cfetched;
hresult hr = pgraph->enumfilters(&penum);
if (failed(hr)) return hr;
while(penum->next(1, &pfilter, &cfetched) == s_ok)
{
filter_info filterinfo;
hr = pfilter->queryfilterinfo(&filterinfo);
if (failed(hr))
{
messagebox(null, text("could not get the filter info"),
text("error"), mb_ok | mb_iconerror);
continue; // maybe the next one will work.
}
#ifdef unicode
messagebox(null, filterinfo.achname, text("filter name"), mb_ok);
#else
char szname[max_filter_name];