다음을 통해 공유


IDataModelManager2::GetModelForTypeSignature 메서드(dbgmodel.h)

GetModelForTypeSignature 메서드는 RegisterModelForTypeSignature 메서드에 대한 이전 호출을 통해 특정 형식 서명에 대해 등록된 데이터 모델을 반환합니다. 이 메서드에서 반환된 데이터 모델은 전달된 형식 서명과 일치하는 모든 형식에 대한 정식 시각화 도우미로 간주됩니다. 정식 시각화 도우미로서 해당 데이터 모델은 형식의 표시를 인수합니다. 표시 엔진은 기본적으로 데이터 모델에서 제공하는 개체의 뷰에 찬성하여 개체의 네이티브/언어 구문을 숨깁니다.

구문

HRESULT GetModelForTypeSignature(
  IDebugHostTypeSignature *typeSignature,
  IModelObject            **dataModel
);

매개 변수

typeSignature

dataModel을 정식 시각화 도우미로 등록할 형식 서명입니다. 서명과 일치하는 네이티브/언어 형식으로 만든 개체(더 일치하는 형식 서명이 없는 개체)는 반환된 데이터 모델을 부모로 자동으로 연결합니다.

dataModel

지정된 형식 서명과 일치하는 모든 형식 인스턴스에 대한 정식 시각화 도우미로 등록된 데이터 모델입니다(더 일치하는 형식 서명이 없는 경우).

반환 값

이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.

설명

예제 코드

ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHost> spHost;           /* get the debug host */

ComPtr<IModelObject> spDataModel;    /* create a data model (see 
                                        CreateDataModelObject) */

ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
    // Create a signature to match MyType<*>
    ComPtr<IDebugHostTypeSignature> spTypeSignature;
    if (SUCCEEDED(spSym->CreateTypeSignature(L"MyType<*>", nullptr, &spTypeSignature)))
    {
        // Register the model for std::vector<*>
        if (SUCCEEDED(spManager->RegisterModelForTypeSignature(spTypeSignature.Get(),
                                                               spDataModel.Get()))
        {
            // Every instance matching MyType<*> will now have spDataModel 
            // attached as the parent.  Further, such parent is considered 
            // the canonical visualizer for all types matching MyType<*> since it 
            // was registered via RegisterModelForTypeSignature instead of
            // RegisterExtensionForTypeSignature.
            //
            // Demonstrate that we can find the canonical visualizer under 
            // this registration.
            ComPtr<IModelObject> spCanonicalVisualizerModel;
            if (SUCCEEDED(spManager->GetModelForTypeSignature(
                spTypeSignature.Get(), 
                &spCanonicalVisualizerModel)))
            {
                // spCanonicalVisualizerModel is the same as spDataModel since 
                // it was registered as such.
            }
        }
    }
}

IDataModelManager2 인터페이스

요구 사항

요구 사항
헤더 dbgmodel.h