如何在创建 DirectShow 类别后将其销毁?
How Do I Destroy A DirectShow Category After Creating It?
MSDN 关于使用 IFilterMapper2 创建用于注册 DirectShow 过滤器的类别的方法令人耳目一新:
IFilterMapper2 *pFM2 = NULL;
CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
IID_IFilterMapper2, (void **)&pFM2);
pFM2->CreateCategory(
CLSID_MyFiltersCategory, // Category.
MERIT_DO_NOT_USE, // Merit.
L"My Filters" // Description.
);
pFM2->Release();
但是,没有为接口定义 "DestroyCategory" 方法。我宁愿不对注册表进行任何形式的考古挖掘。有谁知道在使用 IFilterMapper2::CreateCategory 创建 DirectShow 类别后销毁它的可靠方法?
您将不得不进行考古 - 没有删除类别的方法。好处是它非常简单:
HKEY_CLASSES_ROOT\CLSID\<category-GUID>
HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance\<category-GUID>
MSDN 关于使用 IFilterMapper2 创建用于注册 DirectShow 过滤器的类别的方法令人耳目一新:
IFilterMapper2 *pFM2 = NULL;
CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
IID_IFilterMapper2, (void **)&pFM2);
pFM2->CreateCategory(
CLSID_MyFiltersCategory, // Category.
MERIT_DO_NOT_USE, // Merit.
L"My Filters" // Description.
);
pFM2->Release();
但是,没有为接口定义 "DestroyCategory" 方法。我宁愿不对注册表进行任何形式的考古挖掘。有谁知道在使用 IFilterMapper2::CreateCategory 创建 DirectShow 类别后销毁它的可靠方法?
您将不得不进行考古 - 没有删除类别的方法。好处是它非常简单:
HKEY_CLASSES_ROOT\CLSID\<category-GUID>
HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance\<category-GUID>