CSimpleStringT::LockBuffer
停用參考次數並防止緩衝區中的字串。
PXSTR LockBuffer( );
傳回值
為 CSimpleStringT 物件或 null 結尾字串的指標。
備註
呼叫這個方法會鎖定 CSimpleStringT 物件的緩衝區。 藉由呼叫 LockBuffer,您會建立字串的複本,以參考計數來擷取。 當參考計數值為-1 時,緩衝區的字串視為「已鎖定」狀態。 當一個鎖定狀態,字串會保護以兩種方式:
其他字串無法取得資料的參考鎖定,即使字串,該字串指派給鎖定的字串。
鎖定的字串不會參考另一個字串,該字串,即使其他複製到鎖定的字串。
藉由鎖定在緩衝資料,可確保緩衝資料的獨佔保留將保持不變。
當您完成使用 LockBuffer之後,呼叫重設參考計數的 UnlockBuffer 到 1。
注意事項 |
---|
如果小於目前緩衝區的長度會在鎖定緩衝區和您的 GetBuffer 集合 GetBuffer 參數 nMinBufferLength 為大於,將會失去緩衝區鎖定。為 GetBuffer 中這項呼叫會終結目前的緩衝區,以要求大小的緩衝區來取代,並重設參考計數為零。 |
如需繫結參考的詳細資訊,請參閱下列文件:
在 Windows SDK的處理物件存留期透過參考計數。
在 Windows SDK的實作參考計數。
在 Windows SDK的管理參考計數規則
範例
以下範例將說明 CSimpleStringT::LockBuffer 的用法。
CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;
str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();
需求
Header: atlsimpstr.h