DirectShow 보유 사용이 금지되고 있는 인터페이스 IEnumRegFilters Next   [목차열람] [주소복사] [슬롯비우기]
IEnumRegFilters::Next
 
Microsoft DirectX 9.0

IEnumRegFilters::Next

 :  IEnumRegFilters 인터페이스의 사용은 피하는 것.

열거자의 생성시로 지정한 조건을 채우는,cFilters 인수로 지정되는 다음의 필터 세트의 기술을 배열로 설정한다.

구문

HRESULT Next(
    ULONG cFilters,
    REGFILTER **apRegFilter,
    ULONG *pcFetched
);

파라미터

cFilters

[in] 필터수.

apRegFilter

[out] REGFILTER 포인터로 구성되는 배열의 포인터 주소.

pcFetched

[out] 실제로 건네받은 필터수의 포인터.

반환값

다음의 몇개의 HRESULT 값을 돌려준다.

반환 코드 설명
E_INVALIDARG 무효인 인수.
E_OUTOFMEMORY 메모리 부족.
E_POINTER NULL 포인터 인수.
E_UNEXPECTED 예기치 못한 에러.
S_FALSE 취득된 필터수가, 요구된 수보다 적다.
S_OK 성공.
VFW_E_ENUM_OUT_OF_SYNC 열거 자식이 무효가 되었다. 더 자세한 정보는, 「주의」를 참조할것.

주의

호출측의 애플리케이션은, Microsoft Win32 CoTaskMemFree 함수를 사용해, 배열에 돌려주어진 각 REGFILTER 포인터를 릴리즈 할 필요가 있다. REGFILTER 구조체의 Name 멤버를 개별적으로 릴리즈 해서는 안 된다. IEnumRegFilters::Next 는,REGFILTER 구조체의 일부로서 이 캐릭터 라인에 대해서 메모리를 할당하고 있기 때문이다.

등록이 끝난 필터수가 변경을 받으면 열거자 상태와 레지스트리 상태의 일관성이 없어진다. 이 결과, VFW_E_ENUM_OUT_OF_SYNC 가 반환된다. 데이터가 무효의 가능성이 있기 (위해)때문에, 열거자에게로의 전의 호출로부터 취득한 데이터는 모두 파기해,Reset 메서드를 호출해 열거자를 갱신할 필요가 있다. 그러면 Next 메서드를 안전하게 호출할 수가 있다.

참조

↑TOP