Engine インターフェイス

コード型への割り当てに使用されるデバッグ エンジンです。

名前空間:  EnvDTE80
アセンブリ:  EnvDTE80 (EnvDTE80.dll 内)

構文

'宣言
<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")> _
Public Interface Engine
[GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface Engine
[GuidAttribute(L"8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")]
public interface class Engine
[<GuidAttribute("8CEA6D39-EBEE-4DE9-B282-B5CECE9C9861")>]
type Engine =  interface end
public interface Engine

Engine 型で公開されるメンバーは以下のとおりです。

プロパティ

  名前 説明
パブリック プロパティ AttachResult アタッチされたエンジンが失敗したかどうかを示す結果を取得します。
パブリック プロパティ Collection Engines コレクションを取得します。
パブリック プロパティ DTE トップ レベルの機能拡張オブジェクトを取得します。
パブリック プロパティ ID デバッグ エンジンの ID GUID を取得します。
パブリック プロパティ Name Engine オブジェクトの名前を取得します。
パブリック プロパティ Parent Engine オブジェクトのすぐ上の親オブジェクトを取得します。

このページのトップへ

解説

デバッガーでコードに基づいてデバッグする方法を決める場合に使用されます。これは、[プロセスにアタッチ] ウィンドウに対応しています。

Engine オブジェクトは、特定のプロセスでデバッグの対象となるプログラムの種類を指定する場合に使用されます。たとえば、プロセス内のマネージ コードだけをデバッグする場合、"Common Language Runtime" デバッグ エンジンを使用してプロセスにアタッチします。プロセスのマネージ コードとアンマネージ コードの両方をデバッグする場合は、"Interop COM+" エンジンでアタッチします。

[!メモ]

マクロを記録し、Transact-SQL デバッグ エンジンを使用してデバッグ プロセスにアタッチすると、そのマクロは同じエンジン名に対して 2 つの個別の参照を返します。たとえば、dbgeng(0) = transprt.Engines.Item("T-SQL") や dbgeng(1) = transprt.Engines.Item("T-SQL") などです。これは、実際には Visual Studio に、基になる 2 つの Transact-SQL デバッグ エンジンがあるために発生します。つまり、1 つは SQL Server 2005 デバッグ エンジンで、もう 1 つは、SQL Server 2000 と SQL Server 7 用の Transact-SQL デバッグ エンジンです。いずれも、UI を介してデバッグ エンジン プロセスにアタッチするときに自動的に参照されます。ただし、オートメーション コードでは、各デバッグ エンジンは、一意の識別子 GUID を使用して参照される必要があります。SQL Server 2005 の GUID は {1202F5B4-3522-4149-BAD8-58B2079D704F} で、SQL Server 2000 と SQL Server 7 の Transact-SQL デバッグ エンジンの GUID は {5AF6F83C-B555-11D1-8418-00C04FA302A1} です。したがって、上記の呼び出しは、それぞれ dbgeng(0) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") と dbgeng(1) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") に変更する必要があります。

' Macro code.
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic.ControlChars

Public Module Module1

    Sub ShowDefaultEngines()
        Dim dbg As EnvDTE80.Debugger2
        dbg = DTE.Debugger

        dbg.HexDisplayMode = True

        Dim transport As EnvDTE80.Transport
        transport = dbg.Transports.Item("default")

        Dim engine As EnvDTE80.Engine
        Dim strEngineList As String
        For Each engine In transport.Engines
            strEngineList = strEngineList + engine.Name + ", " + _
            engine.ID + ", " + engine.AttachResult.ToString + NewLine
        Next
        MsgBox(strEngineList)
    End Sub
End Module

参照

関連項目

EnvDTE80 名前空間

Engines