Compartir a través de


Método IDataModelManager::GetModelForType (dbgmodel.h)

El método GetModelForType devuelve el modelo de datos que es el visualizador canónico de una instancia de tipo determinada. En efecto, este método busca la mejor firma de tipo coincidente que se registró con una llamada anterior al método RegisterModelForTypeSignature y devuelve el modelo de datos asociado.

Sintaxis

HRESULT GetModelForType(
  IDebugHostType             *type,
  IModelObject               **dataModel,
  IDebugHostTypeSignature    **typeSignature,
  IDebugHostSymbolEnumerator **wildcardMatches
);

Parámetros

type

Instancia de tipo concreto para la que se encuentra el mejor visualizador canónico coincidente registrado a través de una llamada anterior al método RegisterModelForTypeSignature.

dataModel

El modelo de datos que es el visualizador canónico para la instancia de tipo determinada según lo determinado por la mejor firma de tipo coincidente registrada a través de una llamada anterior a RegisterModelForTypeSignature se devolverá aquí. Este modelo de datos se asociará automáticamente a cualquier objeto nativo o de lenguaje creado con el tipo especificado por el argumento type.

typeSignature

La firma de tipo cuya coincidencia con el tipo nos hizo devolver el modelo de datos registrado desde una llamada anterior a RegisterModelForTypeSignature con la firma de tipo devuelto.

wildcardMatches

Si hay caracteres comodín en la firma devuelta en el argumento typeSignature, se devuelve aquí un enumerador de todas las coincidencias entre los caracteres comodín y la instancia de tipo concreta especificada en el argumento type.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Comentarios

Código de ejemplo

ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostModule> spModule;   /* get a module */

// Find the type of "MyType<int>" within the module
ComPtr<IDebugHostType> spType;
if (SUCCEEDED(spModule->FindTypeByName(L"MyType<int>", &spType)))
{
    // Find the canonical visualizer which would be applied to MyType<int>
    ComPtr<IModelObject> spDataModel;
    ComPtr<IDebugHostTypeSignature> spSignature;
    ComPtr<IDebugHostSymbolEnumerator> spWildcardMatches;

    if (SUCCEEDED(spManager->GetModelForType(spType.Get(), 
                                             &spDataModel, 
                                             &spSignature, 
                                             &spWildcardMatches)))
    {
        // There is a visualizer which matched.
        // spDataModel is the data model object which was registered as 
        //     the canonical visualizer (RegisterModelForTypeSignature)
        // spSignature is the signature which that data model was registered 
        //     against (e.g.: created for MyType<*> via
        //     CreateTypeSignature/RegisterModelForTypeSignature)
        // spWildcardMatches is an enumerator of the wildcard matches between 
        //     the specific type spType and the signature spSignature (here 
        //     int matched *, so there will be one item -- the type 'int' in
        //     the enumerator)
    }

Requisitos

Requisito Valor
Header dbgmodel.h

Consulte también

Interfaz IDataModelManager