Hizkuntza
Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Recupera un atributo personalizado según su nombre.
Sintaxis
int GetCustomAttributeByName(
string pszCustomAttributeName,
ref int[] ppBlob,
out uint pdwLen
);
Parámetros
pszCustomAttributeName
[in] Nombre del atributo personalizado.
ppBlob
[in,out] Matriz de bytes que contienen los datos de atributo personalizados.
pdwLen
[out] Longitud en bytes del ppBlob parámetro.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK. Si el atributo personalizado no existe, devuelve S_FALSE. De lo contrario, devuelve un código de error.
Ejemplo
En el ejemplo siguiente se muestra cómo implementar este método para un objeto CDebugClassFieldSymbol que expone la interfaz IDebugCustomAttributeQuery .
HRESULT CDebugClassFieldSymbol::GetCustomAttributeByName(
LPCOLESTR pszCustomAttributeName,
BYTE *pBlob,
DWORD *pdwLen
)
{
HRESULT hr = S_FALSE;
CComPtr<IMetaDataImport> pMetadata;
mdToken token = mdTokenNil;
CComPtr<IDebugField> pField;
CComPtr<IDebugCustomAttributeQuery> pCA;
ASSERT(IsValidWideStringPtr(pszCustomAttributeName));
ASSERT(IsValidWritePtr(pdwLen, ULONG*));
METHOD_ENTRY( CDebugClassFieldSymbol::GetCustomAttributeByName );
IfFalseGo( pszCustomAttributeName && pdwLen, E_INVALIDARG );
IfFailGo( m_spSH->GetMetadata( m_spAddress->GetModule(), &pMetadata ) );
IfFailGo( CDebugCustomAttribute::GetTokenFromAddress( m_spAddress, &token) );
IfFailGo( CDebugCustomAttribute::GetCustomAttributeByName( pMetadata,
token,
pszCustomAttributeName,
pBlob,
pdwLen ) );
Error:
METHOD_EXIT( CDebugClassFieldSymbol::GetCustomAttributeByName, hr );
return hr;
}