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

IBaseFilter::JoinFilterGraph

JoinFilterGraph 메서드는, 필터 그래프에 참가한, 또는 필터 그래프로부터 멀어진 것을 필터에 통지한다.

구문

HRESULT JoinFilterGraph(
  IFilterGraph *pGraph,
  LPCWSTR pName
);

파라미터

pGraph

[in] 필터 그래프 매니저의 IFilterGraph 인터페이스의 포인터. 또는, 필터가 그래프를 떨어졌을 경우는 NULL.

pName

[in, string] 필터의 이름을 지정하는 와이드 캐릭터 캐릭터 라인의 포인터.

반환값

성공했을 경우는 S_OK 를 돌려준다. 그 이외의 경우는, 에러의 발생을 나타내는 HRESULT 값을 돌려준다.

주의

필터 그래프 매니저가 있는 필터를 필터 그래프에 추가하는 경우는, 자기 자신에게로의 포인터로 이 메서드를 호출한다. 필터의 이 인스턴스의 이름은,pName 인수를 사용해 할당한다. 이름을 얻어오려면,IBaseFilter::QueryFilterInfo 메서드를 호출한다.

필터 그래프 매니저가 그래프로부터 필터를 삭제하는 경우는, 이 메서드를 NULL 포인터로 호출한다.

애플리케이션은 이 메서드를 결코 호출해서는 안 된다. 필터를 그래프에 추가하려면 , 필터 그래프 매니저에 대해서 IFilterGraph::AddFilter 를 호출하는 것.

필터 개발자 :필터는,IFilterGraph 인터페이스의 포인터를 보존해, 그 포인터에 다른 필터 그래프 매니저 인터페이스를 문의할 수 있다. 다만, 필터 그래프 매니저의 참조 카운트는 결코 보관 유지하지 않는 것. 보관 유지했을 경우, 필터 그래프 매니저는 필터의 참조 카운트를 보관 유지하므로, 순환 참조 카운트를 생성 하게 된다. 순환 참조 카운트가 있으면 인터페이스는 올바르고 릴리즈 되지 않기 때문에, 데드 록이 될 가능성이 있다. IFilterGraph 인터페이스는, 필터 그래프 매니저가 다시 이 메서드를 값 NULL 로 호출할 때까지 유효하다라고 하는 것이 보증되고 있다. 이 메서드의 처리의 더 자세한 정보는, 「CBaseFilter::JoinFilterGraph 」메서드를 참조할것.

참조

↑TOP