Bagikan melalui


IDebugProperty3::GetStringChars

Mengambil string yang terkait dengan properti ini dan menyimpannya dalam buffer yang disediakan pengguna.

Sintaks

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

Parameter

buflen
[di] Jumlah maksimum karakter yang dapat ditangguhkan oleh buffer yang disediakan pengguna.

rgString
[out] Mengembalikan string.

[hanya C++], rgString adalah penunjuk ke buffer yang menerima karakter Unicode dari string. Buffer ini harus berukuran minimal buflen karakter (bukan byte).

pceltFetched
[out] Di mana jumlah karakter yang benar-benar disimpan dalam buffer dikembalikan. (Bisa di NULL C++.)

Tampilkan Nilai

Jika berhasil, tampilkan S_OK; jika tidak tampilkan kode galat.

Keterangan

Di C++, perawatan harus dilakukan untuk memastikan bahwa buffer setidaknya buflen panjang karakter Unicode. Perhatikan bahwa karakter Unicode panjangnya 2 byte.

Catatan

Di C++, string yang dikembalikan tidak menyertakan karakter null yang dihentikan. Jika diberikan, pceltFetched akan menentukan jumlah karakter dalam string.

Contoh

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);
}

Baca juga