IStream::Seek 메서드(objidl.h)
Seek 메서드는 검색 포인터를 새 위치로 변경합니다. 새 위치는 스트림의 시작, 스트림의 끝 또는 현재 검색 포인터를 기준으로 합니다.
구문
HRESULT Seek(
[in] LARGE_INTEGER dlibMove,
[in] DWORD dwOrigin,
[out] ULARGE_INTEGER *plibNewPosition
);
매개 변수
[in] dlibMove
dwOrigin 매개 변수가 나타내는 위치에 추가할 변위입니다. dwOrigin이 STREAM_SEEK_SET 경우 부호 있는 값이 아닌 부호 없는 값으로 해석됩니다.
[in] dwOrigin
dlibMove에 지정된 변위의 원점입니다. 원본은 파일의 시작(STREAM_SEEK_SET), 현재 검색 포인터(STREAM_SEEK_CUR) 또는 파일의 끝(STREAM_SEEK_END)일 수 있습니다. 값에 대한 자세한 내용은 STREAM_SEEK 열거형을 참조하세요.
[out] plibNewPosition
이 메서드가 스트림의 시작 부분에서 새 검색 포인터의 값을 쓰는 위치에 대한 포인터입니다.
이 포인터를 NULL로 설정할 수 있습니다. 이 경우 이 메서드는 새 검색 포인터를 제공하지 않습니다.
반환 값
이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
S_OK | 검색 포인터가 성공적으로 조정되었습니다. |
E_PENDING | 비동기 스토리지만 해당: 스트림 데이터의 일부 또는 전체를 현재 사용할 수 없습니다. |
STG_E_INVALIDPOINTER | plibNewPosition이 읽지 않기 때문에 plibNewPosition이 잘못된 메모리를 가리킨다는 것을 나타냅니다. |
STG_E_INVALIDFUNCTION | dwOrigin 매개 변수에 잘못된 값이 포함되어 있거나 dlibMove 매개 변수에 잘못된 오프셋 값이 포함되어 있습니다. 예를 들어 검색 포인터의 결과는 음수 오프셋 값입니다. |
STG_E_REVERTED | 개체가 트랜잭션 트리에서 위의 되돌리기 작업에 의해 무효화되었습니다. |
설명
IStream::Seek 는 후속 읽기 및 쓰기 작업을 스트림 개체의 다른 위치에서 수행할 수 있도록 검색 포인터를 변경합니다. 스트림이 시작되기 전에 검색하는 것은 오류입니다. 그러나 스트림의 끝을 지나서 검색하는 것은 오류가 아닙니다. 스트림 바이트 범위가 쓰기가 완료되기 직전에 새 검색 위치로 확장되므로 스트림의 끝을 지나서 검색하는 것은 후속 쓰기 작업에 유용합니다.
또한 이 메서드를 사용하여 dwOrigin 매개 변수를 STREAM_SEEK_CUR 로 설정하고 dlibMove 매개 변수를 0으로 설정하여 검색 포인터가 변경되지 않도록 이 메서드를 호출하여 검색 포인터의 현재 값을 가져올 수도 있습니다. 현재 검색 포인터는 plibNewPosition 매개 변수에 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | objidl.h |
라이브러리 | Uuid.lib |
DLL | Ole32.dll |