IUnknown을 구현하는 방법

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

Microsoft DirectShow는 COM(구성 요소 개체 모델)을 기반으로 합니다. 고유한 필터를 작성하는 경우 COM 개체로 구현해야 합니다. DirectShow 기본 클래스는 이 작업을 수행할 프레임워크를 제공합니다. 기본 클래스를 사용할 필요는 없지만 개발 프로세스를 간소화할 수 있습니다. 이 문서에서는 DIRECTShow 기본 클래스에서 COM 개체의 내부 세부 정보 및 해당 구현에 대해 설명합니다.

이 문서에서는 COM 클라이언트 애플리케이션을 프로그래밍하는 방법을 알고 있다고 가정합니다. 즉, IUnknown의 메서드를 이해하지만 이전에 COM 개체를 개발한 경험이 없다고 가정합니다. DirectShow는 COM 개체 개발의 많은 세부 정보를 처리합니다. COM 개체를 개발한 경험이 있는 경우 CUnknown 기본 클래스를 설명하는 CUnknown 사용 섹션을 읽 어야 합니다.

COM은 구현이 아닌 사양입니다. 구성 요소가 따라야 하는 규칙을 정의합니다. 이러한 규칙을 적용하는 것은 개발자에게 남지 않습니다. DirectShow에서 모든 개체는 C++ 기본 클래스 집합에서 파생됩니다. 기본 클래스 생성자 및 메서드는 일관된 참조 수를 유지하는 것과 같은 대부분의 COM "bookkeeping" 작업을 수행합니다. 기본 클래스에서 필터를 파생하여 클래스의 기능을 상속합니다. 기본 클래스를 효과적으로 사용하려면 COM 사양을 구현하는 방법에 대한 일반적인 이해가 필요합니다.

이 문서에는 다음 topics 포함되어 있습니다.

DirectShow 및 COM