IDebugComPlusSymbolProvider::GetNameFromToken
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Returns the name associated with the specified token given its metadata object.
Syntax
HRESULT GetNameFromToken (
IUnknown* pMetadataImport,
DWORD dwToken,
BSTR* pbstrName
);
int GetNameFromToken (
object pMetadataImport,
uint dwToken,
out string pbstrName
);
Parameters
pMetadataImport
[in] Object that contains the metadata information.
dwToken
[in] Token to be named.
pbstrName
[out] Name that corresponds to the token.
Return Value
If successful, returns S_OK
; otherwise, returns an error code.
Example
The following example shows how to implement this method for a CDebugSymbolProvider object that exposes the IDebugComPlusSymbolProvider interface.
HRESULT CDebugSymbolProvider::GetNameFromToken(
IUnknown* pMetadataImport,
DWORD dwToken,
BSTR* pbstrName
)
{
HRESULT hr = S_OK;
CComPtr<IMetaDataImport> pMetaData;
ASSERT(IsValidObjectPtr(this, CDebugSymbolProvider));
ASSERT(IsValidInterfacePtr(pMetadataImport, IUnknown));
METHOD_ENTRY(CDebugSymbolProvider::GetNameFromToken);
IfFalseGo( pMetadataImport && pbstrName, E_INVALIDARG );
*pbstrName = NULL;
IfFailGo( pMetadataImport->QueryInterface( IID_IMetaDataImport,
(void**) &pMetaData ) );
switch ( TypeFromToken(dwToken) )
{
case mdtModule:
IfFailGo( GetModuleName( pMetaData, dwToken, pbstrName) );
break;
case mdtTypeDef:
IfFailGo( GetTypeName( pMetaData, dwToken, pbstrName) );
break;
case mdtFieldDef:
IfFailGo( GetFieldName( pMetaData, dwToken, pbstrName) );
break;
case mdtMethodDef:
IfFailGo( GetMethodName( pMetaData, dwToken, pbstrName) );
break;
case mdtEvent:
IfFailGo( GetEventName( pMetaData, dwToken, pbstrName) );
break;
case mdtProperty:
IfFailGo( GetPropertyName( pMetaData, dwToken, pbstrName) );
break;
case mdtAssembly:
IfFailGo( GetAssemblyName( pMetaData, dwToken, pbstrName) );
break;
default:
ASSERT(!"Unsupported token passed to GetNameFromToken");
hr = E_FAIL;
break;
}
Error:
METHOD_EXIT(CDebugSymbolProvider::GetNameFromToken, hr);
return hr;
}