IDebugComPlusSymbolProvider::CreateTypeFromPrimitiveIDebugComPlusSymbolProvider::CreateTypeFromPrimitive

Crée un type à partir du type primitif spécifié.Creates a type from the specified primitive type.

SyntaxeSyntax

[C++]  
HRESULT CreateTypeFromPrimitive(  
   DWORD          dwPrimType,  
   IDebugAddress* pAddress,  
   IDebugField**  ppType  
);  
[C#]  
int CreateTypeFromPrimitive(  
   uint          dwPrimType,  
   IDebugAddress pAddress,  
   IDebugField   ppType  
);  

ParamètresParameters

dwPrimType
[in] Valeur à partir de la CorElementType, énumération qui représente le type primitif.[in] Value from the CorElementType Enumeration that represents the primitive type.

pAddress
[in] Un type d’objet est représenté par un IDebugAddress interface.[in] An address object represented by an IDebugAddress interface.

ppType
[in] Retourne un IDebugField objet qui décrit le type.[in] Returns an IDebugField object that describes the type.

Valeur de retourReturn Value

En cas de réussite, retourne S_OK; sinon, retourne un code d’erreur.If successful, returns S_OK; otherwise, returns an error code.

ExempleExample

L’exemple suivant montre comment implémenter cette méthode pour un CDebugSymbolProvider objet qui expose la IDebugComPlusSymbolProvider interface.The following example shows how to implement this method for a CDebugSymbolProvider object that exposes the IDebugComPlusSymbolProvider interface.

HRESULT CDebugSymbolProvider::CreateTypeFromPrimitive(  
    DWORD dwPrimType,  
    IDebugAddress* pAddress,  
    IDebugField** ppType)  
{  
    HRESULT hr = S_OK;  
    CDEBUG_ADDRESS addr;  
    const COR_SIGNATURE* pTypeInfo = (const COR_SIGNATURE*) & dwPrimType;  
    CDebugGenericParamScope* pGenScope = NULL;  

    //  
    // This function will only work for primitive types  
    //  

    METHOD_ENTRY( CDebugSymbolProvider::CreateTypeFromPrimitive );  

    IfFailGo( pAddress->GetAddress( &addr ) );  

    IfNullGo( pGenScope = new CDebugGenericParamScope(addr.GetModule(), addr.tokClass, addr.GetMethod()), E_OUTOFMEMORY );  

    IfFailGo( CreateType( pTypeInfo,  
                          1,  
                          addr.GetModule(),  
                          addr.GetMethod(),  
                          pGenScope,  
                          ppType ) );  

    METHOD_EXIT( CDebugSymbolProvider::CreateTypeFromPrimitive, hr );  

Error:  

    RELEASE( pGenScope );  
    return hr;  
}  

Voir aussiSee Also

IDebugComPlusSymbolProviderIDebugComPlusSymbolProvider