Méthode IDataModelManager2 ::GetModelForType (dbgmodel.h)
La méthode GetModelForType retourne le modèle de données qui est le visualiseur canonique pour un type donné instance. En effet, cette méthode recherche la meilleure signature de type correspondante qui a été inscrite avec un appel antérieur à la méthode RegisterModelForTypeSignature et retourne le modèle de données associé.
Syntaxe
HRESULT GetModelForType(
IDebugHostType *type,
IModelObject **dataModel,
IDebugHostTypeSignature **typeSignature,
IDebugHostSymbolEnumerator **wildcardMatches
);
Paramètres
type
Le type concret instance pour lequel trouver le visualiseur canonique le mieux adapté inscrit via un appel antérieur à la méthode RegisterModelForTypeSignature.
dataModel
Le modèle de données qui est le visualiseur canonique pour le type donné instance déterminé par la meilleure signature de type correspondante enregistrée via un appel antérieur à RegisterModelForTypeSignature est retourné ici. Ce modèle de données est automatiquement attaché à n’importe quel objet natif/langage créé avec le type spécifié par l’argument de type.
typeSignature
Signature de type dont la correspondance avec le type nous a amenés à retourner le modèle de données inscrit à partir d’un appel antérieur à RegisterModelForTypeSignature avec la signature de type retournée.
wildcardMatches
S’il existe des caractères génériques dans la signature retournée dans l’argument typeSignature, un énumérateur de toutes les correspondances entre les caractères génériques et le type concret instance donnés dans l’argument type est retourné ici.
Valeur retournée
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Remarques
Exemple de Code
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)
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgmodel.h |