Aracılığıyla paylaş


IDebugProperty3::GetStringChars

Bu özellik ile ilişkili dizeyi alır ve kullanıcı tarafından sağlanan bir arabellekte depolar.

Sözdizimi

int GetStringChars(
    uint       buflen,
    out string rgString,
    out uint   pceltFetched
);

Parametreler

buflen
[in] Kullanıcı tarafından sağlanan arabelleğin tutabileceği karakter sayısı üst sınırı.

rgString
[out] Dizeyi döndürür.

[Yalnızca C++], rgString dizenin Unicode karakterlerini alan bir arabelleğe yönelik bir işaretçidir. Bu arabelleğin boyutu en az buflen karakter (bayt değil) olmalıdır.

pceltFetched
[out] Burada arabellekte gerçekten depolanan karakter sayısı döndürülür. (C++'ta olabilir NULL .)

İade Değeri

Başarılı olursa döndürür S_OK; aksi takdirde bir hata kodu döndürür.

Açıklamalar

C++ dilinde, arabelleğin en az buflen Unicode karakter uzunluğunda olmasını sağlamak için dikkatli olunmalıdır. Unicode karakterinin 2 bayt uzunluğunda olduğunu unutmayın.

Dekont

C++ dilinde, döndürülen dize sonlandırıcı null karakter içermez. Verilirse, pceltFetched dizedeki karakter sayısını belirtir.

Örnek

CStringW RetrievePropertyString(IDebugProperty2 *pPropInfo)
{
    CStringW returnString = L"";
    CComQIPtr<IDebugProperty3> pProp3 = pPropInfo->pProperty;
    If (pProp3 != NULL) {
        ULONG dwStrLen = 0;
        HRESULT hr;
        hr = pProp3->GetStringCharLength(&dwStrLen);
        if (SUCCEEDED(hr) && dwStrLen > 0) {
            ULONG dwRead;
            CStrBufW buf(returnString,dwStrLen,CStrBuf::SET_LENGTH);
            hr = pProp3->GetStringChars(dwStrLen,
                                        reinterpret_cast<WCHAR*>(static_cast<CStringW::PXSTR>(buf)),
                                        &dwRead);
        }
    }
    return(returnString);
}

Ayrıca bkz.