Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İlişkili özelliğin dizesindeki karakter sayısını döndürür.
Sözdizimi
Parametreler
| Parametre | Açıklama |
|---|---|
pLen |
[out] Özelliğin dizesindeki karakter sayısını döndürür. |
İade Değeri
Başarılı olursa döndürür S_OK; aksi takdirde hata kodunu döndürür.
Açıklamalar
Bu yöntem genellikle GetStringChars yöntemine yapılan bir çağrı için arabellek ayırmaya yönelik bir ön sürüm olarak kullanılır.
Örnek
Aşağıdaki örnek, IDebugProperty3 arabirimini kullanıma sunan bir CProperty nesnesi için bu yöntemin nasıl uygulandığını gösterir.
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;
}