IDebugProperty3::GetStringCharLength
연결된 속성의 문자열에 있는 문자 수를 반환합니다.
구문
매개 변수
매개 변수 | 설명 |
---|---|
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;
}