IDataModelManager::GetModelForType メソッド (dbgmodel.h)

GetModelForType メソッドは、特定の型インスタンスの正規ビジュアライザーであるデータ モデルを返します。 実際には、このメソッドは、RegisterModelForTypeSignature メソッドの以前の呼び出しで登録された最適な一致する型シグネチャを検索し、関連付けられたデータ モデルを返します。

構文

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

パラメーター

type

RegisterModelForTypeSignature メソッドの以前の呼び出しによって登録された最適な一致する正規ビジュアライザーを検索する具象型インスタンス。

dataModel

RegisterModelForTypeSignature の以前の呼び出しによって登録された最適な一致型シグネチャによって決定される、指定された型インスタンスの正規ビジュアライザーであるデータ モデルがここで返されます。 このデータ モデルは、型引数で指定された型で作成されたネイティブ/言語オブジェクトに自動的にアタッチされます。

typeSignature

型と一致する型シグネチャにより、RegisterModelForTypeSignature の以前の呼び出しから、返された型シグネチャを使用して登録されたデータ モデルが返されました。

wildcardMatches

typeSignature 引数で返されるシグネチャにワイルドカードがある場合は、ワイルドカードと型引数で指定された具象型インスタンスの間のすべての一致の列挙子がここで返されます。

戻り値

このメソッドは、成功または失敗を示す HRESULT を返します。

注釈

サンプル コード

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

要件

要件
Header dbgmodel.h

こちらもご覧ください

IDataModelManager インターフェイス