Freigeben über


IDebugProperty3::GetStringCharLength

Gibt die Anzahl der Zeichen in der Zeichenfolge zugeordneten der Eigenschaft zurück.

HRESULT GetStringCharLength(
   ULONG *pLen
);
int GetStringCharLength(
   out uint pLen
);

Parameter

Parameter

Beschreibung

pLen

[out] Gibt die Anzahl der Zeichen in der Zeichenfolge der Eigenschaft zurück.

Rückgabewert

Bei Erfolg gibt S_OKzurück. gibt andernfalls Fehlercode zurück.

Hinweise

In der Regel wird diese Methode z. B. einen Prolog zum Verknüpfen eines Puffers für einen Aufruf der IDebugProperty3::GetStringChars-Methode veranschaulicht.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie diese Methode für ein CProperty-Objekt implementiert, das die IDebugProperty3-Schnittstelle verfügbar macht.

STDMETHODIMP CProperty::GetStringCharLength(ULONG *pLen)
{
    HRESULT hr = E_INVALIDARG;

    EVALFLAGS oldEVALFLAGS = m_EVALFLAGS;

    m_EVALFLAGS &= ~EVAL_NOFUNCEVAL;

    if (pLen)
    {
        DEBUG_PROPERTY_INFO dpInfo;
        dpInfo.bstrValue = NULL;
        ULONG ulen = 0;
        hr = GetPropertyInfo(DEBUGPROP_INFO_VALUE,10,DEFAULT_TIMEOUT,NULL,0,&dpInfo);
        if (hr == S_OK && dpInfo.bstrValue)
        {
            if (wcscmp(dpInfo.bstrValue,L"Nothing") == 0)
            {
                ulen = 0;   //VSWhidbey#64815
            }
            else
            {
                ulen = ::SysStringLen(dpInfo.bstrValue);
                if( ulen > 2 &&
                    dpInfo.bstrValue[0] == L'"' &&
                    dpInfo.bstrValue[ulen-1] == L'"')
                {                    
                    ulen = ulen > 2 ? ulen - 2 : ulen;  //remove two double quotes
                }
            }
        }
        ::SysFreeString(dpInfo.bstrValue);
        *pLen = ulen;
    }
    m_EVALFLAGS = oldEVALFLAGS;
    return hr;
}

Siehe auch

Referenz

IDebugProperty3::GetStringChars

IDebugProperty3