다음을 통해 공유


9단계. 속성 페이지 연결 끊기

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 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 등록 지원

필터 속성 페이지 만들기