DirectShow DirectShow 레퍼런스 인터페이스 IVideoWindow   [목차열람] [주소복사] [슬롯비우기]
IVideoWindow 인터페이스
 
Microsoft DirectX 9.0

IVideoWindow 인터페이스

IVideoWindow 인터페이스는, 비디오 윈도우의 프로퍼티를 설정한다. 애플리케이션은 이 인터페이스를 사용해, 윈도우의 오너, 윈도우의 위치와 넓이, 그 외의 프로퍼티를 설정할 수 있다.

비디오 렌더링 필터와 필터 그래프 매니저는 양쪽 모두, 이 인터페이스를 공개한다. 애플리케이션이 이 인터페이스를 사용하는 경우는, 필터 그래프 매니저가 공개하고 있는 인터페이스를 사용할 필요가 있다. 필터 그래프 매니저는, 메서드 호출을 모두 비디오 렌더러에 전송 한다. 게다가 비디오 렌더러가 자신을 갱신하기 위해서 필요한 WM_DISPLAYCHANGE 등의 특정의 윈도우 메시지도 전송 한다. 비디오 윈도우를 자식 윈도우로 하면 이후 그 윈도우는 이러한 메시지를 직접 납득할 수 없게 된다. 따라서, 필터 그래프 매니저로부터의 전송을 기다리게 된다.

다만, 필터 그래프에 복수의 비디오 렌더러가 포함되어 있는 경우, 필터 그래프 매니저는 그 중의 (임의에 선택된) 1 개의 비디오 렌더러로 밖에 통신하지 않는다. 따라서, 애플리케이션이 복수의 비디오 윈도우를 사용하려면 , 필터 자신의 IVideoWindow 인터페이스를 직접 사용할 필요가 있다. 그 경우,IVideoWindow::NotifyOwnerMessage 메서드를 사용해, 반드시 윈도우 메시지를 각 비디오 렌더러에 전송 하는 것.

비디오 윈도우를 자식 윈도우에 배치하는 MFC 애플리케이션은, 하늘의 WM_ERASEBKGND 메시지 핸들러를 정의해야 한다. 정의하지 않으면 비디오 표시 영역은 올바르고 재드로잉(Drawing) 되지 않는다.

비디오 렌더러가 접속되지 않은 경우, 이 인터페이스의 메서드는 모두 에러 코드 VFW_E_NOT_CONNECTED 를 돌려준다. 접속과 절단을 반복해도, 비디오 렌더러로 설정한 프로퍼티는 유효하다. 이 인터페이스는 Automation 호환이므로, 불리언 값은 OAFALSE (0) 또는 OATRUE (-1)이다.

필터 개발자 :CBaseVideoWindow 클래스를 사용하면 이 인터페이스가 처리 하기 쉽다.

IDispatch 로부터 계승하는 메서드 외에,IVideoWindow 인터페이스는 다음의 메서드를 공개한다.

메서드 설명
get_AutoShow 비디오 렌더러가 비디오 데이터를 받았을 때에 비디오 윈도우를 자동적으로 표시할지 어떨지를 조회한다.
get_BackgroundPalette 비디오 윈도우가 팔레트를 백그라운드에서 실현될지 어떨지를 조회한다.
get_BorderColor 목적지 직사각형의 인연의 주위에 표시되는 색을 얻어온다.
get_Caption 비디오 윈도우의 캡션을 얻어온다.
get_FullScreenMode 비디오 렌더러가 풀 스크린 모드인지 아닌지를 조회한다.
get_Height 비디오 윈도우의 높이를 얻어온다.
get_Left 비디오 윈도우의 x 좌표를 얻어온다.
get_MessageDrain 비디오 윈도우로부터 마우스 메시지 및 키보드 메시지를 받아들이는 윈도우가 있으면 그 윈도우를 얻어온다.
get_Owner 비디오 윈도우의 부모 윈도우가 있으면 그 윈도우를 얻어온다.
get_Top 비디오 윈도우의 y 좌표를 얻어온다.
get_Visible 비디오 윈도우가 표시되고 있는지를 조회한다.
get_Width 비디오 윈도우의 폭을 얻어온다.
get_WindowState 비디오 윈도우의 표시/비표시, 최소화/최대화를 조회한다.
get_WindowStyle 비디오 윈도우의 윈도우 스타일을 얻어온다.
get_WindowStyleEx 비디오 윈도우의 확장 스타일을 얻어온다.
GetMaxIdealImageSize 비디오 이미지의 이상적인 최대 사이즈를 얻어온다.
GetMinIdealImageSize 비디오 이미지의 이상적인 최소 사이즈를 얻어온다.
GetRestorePosition 복원된 윈도우의 위치를 얻어온다.
GetWindowPosition 비디오 윈도우의 위치를 얻어온다.
HideCursor 커서를 비표시로 한다.
IsCursorHidden 커서가 비표시인지 아닌지를 조회한다.
NotifyOwnerMessage 비디오 윈도우에 메시지를 전송 한다.
put_AutoShow 비디오 데이터를 받았을 때에, 비디오 렌더러가 자동적으로 비디오 윈도우를 표시할지 어떨지를 지정한다.
put_BackgroundPalette 비디오 윈도우가 팔레트를 백그라운드에서 실현될지 어떨지를 지정한다.
put_BorderColor 목적지 직사각형의 인연의 주위에 표시되는 색을 설정한다.
put_Caption 비디오 윈도우의 캡션을 설정한다.
put_FullScreenMode 풀 스크린 모드를 유효 또는 무효로 한다.
put_Height 비디오 윈도우의 높이를 설정한다.
put_Left 비디오 윈도우의 x 좌표를 설정한다.
put_MessageDrain 비디오 윈도우로부터 마우스 메시지와 키보드 메시지를 받아들이는 윈도우를 지정한다.
put_Owner 비디오 윈도우의 부모 윈도우를 지정한다.
put_Top 비디오 윈도우의 y 좌표를 설정한다.
put_Visible 비디오 윈도우의 표시/비표시를 바꾼다.
put_Width 비디오 윈도우의 폭을 설정한다.
put_WindowState 비디오 윈도우의 표시/비표시, 최소화/최대화를 바꾼다.
put_WindowStyle 비디오 윈도우의 윈도우 스타일을 설정한다.
put_WindowStyleEx 비디오 윈도우의 확장 윈도우 스타일을 설정한다.
SetWindowForeground Z 오더의 선두에 비디오 윈도우를 배치한다.
SetWindowPosition 비디오 윈도우의 위치를 설정한다.

↑TOP