다음을 통해 공유


IDebugProperty3::GetStringCharLength

연결된 속성의 문자열에 있는 문자 수를 반환합니다.

구문

int GetStringCharLength(
    out uint pLen
);

매개 변수

매개 변수 설명
pLen [out] 속성 문자열의 문자 수를 반환합니다.

Return Value

성공하면 S_OK를 반환하고, 그러지 않으면 오류 코드를 반환합니다.

설명

일반적으로 이 메서드는 GetStringChars 메서드 호출에 대한 버퍼를 할당하기 위한 준비 작업으로 사용됩니다.

예시

다음 예제에서는 IDebugProperty3 인터페이스를 노출하는 CProperty 개체에 대해 이 메서드를 구현하는 방법을 보여 줍니다.

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

참고 항목