DirectShow DirectShow 레퍼런스 인터페이스 ISampleGrabber GetCurrentBuffer [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
GetCurrentBuffer 메서드는, 최신 샘플에 관련된 버퍼의 복사를 얻어온다.
구문
HRESULT GetCurrentBuffer(
long *pBufferSize,
long *pBuffer
);
파라미터
pBufferSize
[in, out] 버퍼의 사이즈의 포인터. pBuffer 가 NULL 의 경우, 이 인수는 필요한 버퍼 사이즈를 받는다. pBuffer 가 NULL 가 아닌 경우, 이 인수에는 버퍼의 사이즈를 설정한다. 출력으로는, 이 인수는 버퍼에 복사 되는 데이터의 사이즈를 받는다. 이 사이즈는, 버퍼의 사이즈보다 작은 경우가 있다.
pBuffer
[out] 샘플의 복사를 받는 버퍼의 포인터. 또는 NULL.
반환값
다음의 몇개의 값을 돌려준다.
반환 코드 | 설명 |
E_INVALIDARG | 샘플은 버퍼링되지 않다. |
E_OUTOFMEMORY | 지정된 버퍼의 크기가 불충분. |
E_POINTER | NULL 포인터 인수. |
S_OK | 성공. |
VFW_E_NOT_CONNECTED | 필터가 접속되지 않다. |
VFW_E_WRONG_STATE | 필터가 아직 샘플을 받지 않았다. 샘플을 출력하려면 , 그래프를 실행하는지 포즈 한다. |
주의
버퍼링을 액티브하게 하려면 , 값 TRUE 로 ISampleGrabber::SetBufferSamples 를 호출한다.
이 메서드는 2 회 호출한다. 최초의 호출에서는,pBuffer 를 NULL 로 설정한다. 버퍼의 사이즈는,pBufferSize 에 의해 반환된다. 다음에, 버퍼를 할당해, 다시 메서드를 호출한다. 2 번째의 호출에서는, 버퍼의 사이즈를 pBufferSize 로 건네주어, 버퍼의 주소를 pBuffer 로 건네준다. 지정한 버퍼의 크기가 충분하지 않으면, 이 메서드는 E_OUTOFMEMORY 를 돌려준다.
필터는,
참조