다음을 통해 공유


CPullPin.Connect 메서드

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

메서드는 Connect 출력 핀에 대한 연결을 완료합니다.

구문

HRESULT Connect(
   IUnknown      *pUnk,
   IMemAllocator *pAlloc,
   BOOL          bSync
);

매개 변수

pUnk

출력 핀의 IUnknown 인터페이스에 대한 포인터입니다.

pAlloc

입력 핀의 기본 할당자 또는 NULLIMemAllocator 인터페이스에 대한 포인터입니다.

bSync

동기 읽기를 사용할지 여부를 지정하는 부울 값입니다. TRUE이면 핀이 출력 핀에서 동기식 읽기 작업을 수행합니다. FALSE이면 핀이 비동기 읽기 요청을 수행합니다.

반환 값

HRESULT를 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드 Description
S_OK
성공.
VFW_E_ALREADY_CONNECTED
입력 핀이 이미 연결되어 있습니다.
E_NOINTERFACE
출력 핀은 IAsyncReader를 노출하지 않습니다.

설명

입력 핀의 연결 프로세스 중에 이 메서드를 호출합니다. 메서드가 실패하면 핀이 연결에 실패해야 합니다.

이 메서드는 IAsyncReader 인터페이스에 대한 출력 핀을 쿼리합니다. 성공하면 CPullPin::D ecideAllocator 를 호출하여 연결에 대한 할당자를 협상합니다. 입력 핀에 기본 할당자가 있는 경우 pAlloc 매개 변수에 지정합니다. DecideAllocator 메서드는 출력 핀의 IAsyncReader::RequestAllocator 메서드에 이 포인터를 전달합니다. 그렇지 않으면 pAllocNULL로 설정합니다.

bSync 값이 TRUE이면 CPullPin 개체는 출력 핀의 IAsyncReader::SyncReadAligned를 호출하여 동기식 읽기 요청을 수행합니다. 그렇지 않으면 IAsyncReader::Request 메서드를 호출하여 겹치는 읽기 요청을 만듭니다.

요구 사항

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

추가 정보

CPullPin 클래스