CUnknown 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

cunknown 클래스 계층 구조

CUnknown 클래스는 IUnknown 인터페이스를 구현합니다. DirectShow의 대부분의 COM(구성 요소 개체 모델) 개체는 CUnknown에서 파생됩니다.

COM 개체를 구현하는 경우 CUnknown에서 파생할 수 있습니다. CUnknown에서 파생하면 스레드로부터 안전한 구현이 제공되고 IUnknown을 구현하는 데 문제가 발생합니다.

이 기본 클래스를 사용하는 방법에 대한 자세한 내용은 IUnknown을 구현하는 방법을 참조하세요. 다음은 간략한 요약입니다.

  • 클래스 정의의 공용 섹션에 DECLARE_IUNKNOWN 매크로를 포함합니다. 이 매크로는 IUnknown 인터페이스의 세 가지 메서드를 선언합니다.
  • IUnknown 이외의 인터페이스를 지원하도록 NonDelegatingQueryInterface 메서드를 재정의합니다. 이 메서드 내에서 GetInterface 함수를 호출하여 인터페이스 포인터를 검색합니다.
  • 클래스 생성자에서 CUnknown 생성자 메서드를 호출합니다.
보호된 멤버 변수 Description
m_cRef 참조 수입니다.
Public 메서드 Description
CUnknown 생성자 메서드입니다.
~ CUnknown 소멸자 메서드입니다. 가상.
GetOwner 제어하는 IUnknown에 대한 포인터를 가져옵니다.
INonDelegatingUnknown 메서드 Description
NonDelegatingAddRef 참조 수를 증분합니다.
NonDelegatingQueryInterface 인터페이스 포인터를 검색하고 참조 수를 증분합니다.
NonDelegatingRelease 참조 수를 감소합니다.

요구 사항

요구 사항
헤더
Combase.h(Streams.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)

추가 정보

DirectShow 기본 클래스