步骤 9. 断开属性页的连接

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

重写 CBasePropertyPage::OnDisconnect 方法以释放在 OnConnect 方法中获取的任何接口。 此外,如果用户在未提交更改的情况下关闭属性表,则应还原原始值(如果它们已更改)。 用户取消时不会调用“OnCancel”方法,因此需要跟踪用户是否已调用 OnApplyChanges。 此示例使用 m_lVal 变量,如前所述:

HRESULT CGrayProp::OnDisconnect(void)
{
    if (m_pGray)
    {
        // If the user clicked OK, m_lVal holds the new value.
        // Otherwise, if the user clicked Cancel, m_lVal is the old value.
        m_pGray->SetSaturation(m_lVal);  
        m_pGray->Release();
        m_pGray = NULL;
    }
    return S_OK;
}

下一 步:步骤 10。支持 COM 注册

创建筛选器属性页