다음을 통해 공유


IDebugComPlusSymbolProvider::GetNameFromToken

메타 데이터 개체를 지정 합니다. 지정한 토큰에 연결 된 이름을 반환 합니다.

HRESULT GetNameFromToken (
   IUnknown* pMetadataImport,
   DWORD     dwToken,
   BSTR*     pbstrName
);
int GetNameFromToken (
   object     pMetadataImport,
   uint       dwToken,
   out string pbstrName
);

매개 변수

  • pMetadataImport
    [in] 메타 데이터 정보를 포함 하는 개체입니다.

  • dwToken
    [in] 이름을 지정 하는 토큰입니다.

  • pbstrName
    [out] 토큰을 해당 하는 이름입니다.

반환 값

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

예제

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

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

참고 항목

참조

IDebugComPlusSymbolProvider