다음을 통해 공유


IStream::Seek 메서드(objidl.h)

Seek 메서드는 검색 포인터를 새 위치로 변경합니다. 새 위치는 스트림의 시작, 스트림의 끝 또는 현재 검색 포인터를 기준으로 합니다.

구문

HRESULT Seek(
  [in]  LARGE_INTEGER  dlibMove,
  [in]  DWORD          dwOrigin,
  [out] ULARGE_INTEGER *plibNewPosition
);

매개 변수

[in] dlibMove

dwOrigin 매개 변수가 나타내는 위치에 추가할 변위입니다. dwOriginSTREAM_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

추가 정보

ISequentialStream::Read

ISequentialStream::Write

IStream - 복합 파일 구현

STREAM_SEEK