IByteBuffer::Seek 方法
[ Seek 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 IStream介面提供類似的功能。
Seek方法會將搜尋指標變更為相對於緩衝區開頭、緩衝區結尾或目前搜尋指標的新位置。
語法
HRESULT Seek(
[in] LONG dlibMove,
[in] LONG dwOrigin,
[out] LONG *plibNewPosition
);
參數
-
dlibMove [in]
-
要新增至 dwOrigin所指示位置的位移。 如果 dwOrigin 是STREAM_SEEK_SET,則會解譯為不帶正負號的值,而不是帶正負號。
-
dwOrigin [in]
-
指定 dlibMove中指定的位移原點。 原點可以是下表中的其中一個值。
值 意義 - STREAM_SEEK_SET
新的搜尋指標是相對於資料流程開頭的位移。 在此情況下, dlibMove 參數是相對於資料流程開頭的新搜尋位置。 - STREAM_SEEK_CUR
新的搜尋指標是相對於目前搜尋指標位置的位移。 在此情況下, dlibMove 參數是目前搜尋位置的帶正負號位移。 - STREAM_SEEK_END
新的搜尋指標是相對於資料流程結尾的位移。 在此情況下, dlibMove 參數是相對於資料流程結尾的新搜尋位置。 -
plibNewPosition [out]
-
這個方法從資料流程開頭寫入新搜尋指標值的位置指標的指標。 您可以將這個指標設定為 Null ,以指出您對此值不感興趣。 在此情況下,這個方法不會提供新的搜尋指標。
傳回值
傳回值為 HRESULT。 值S_OK表示呼叫成功。
備註
Seek方法會變更搜尋指標,讓後續的讀取和寫入作業可以在資料流程物件的不同位置進行。 在資料流程開頭之前搜尋是錯誤。 不過,它不是要搜尋超過資料流程結尾的錯誤。 搜尋超過資料流程結尾對於後續寫入作業很有用,因為資料流程會在寫入作業完成之前立即擴充至搜尋位置。
您也可以使用這個方法來取得搜尋指標的目前值,方法是呼叫這個方法,並將 dwOrigin 參數設定為 STREAM_SEEK_CUR, 而 dlibMove 參數設定為零,因此搜尋指標不會變更。 目前的搜尋指標會在 plibNewPosition 參數中傳回。
範例
下列範例顯示將搜尋指標定位到新位置。
LONG lNewPos;
HRESULT hr;
// Change the seek pointer.
hr = pIByteBuff->Seek(5, STREAM_SEEK_SET, &lNewPos);
if (FAILED(hr))
printf("Failed IByteBuffer::Seek\n");
else
printf("New position is %x\n", lNewPos);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_IByteBuffer定義為 E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |