Debugger2 Interface
The Debugger2 object is used to interrogate and manipulate the state of the debugger and the program being debugged. The Debugger2 object supersedes the Debugger object.
Assembly: EnvDTE80 (in EnvDTE80.dll)
// The following C++ program can be run from the command line. // It detects whether an instance of Visual Studio is currently // running,and if so, prints a message stating whether its debugger // is actively debugging. #include <stdio.h> #import "dte.olb" raw_interfaces_only named_guids using namespace EnvDTE80; int main(void) { int nRet = 0; CoInitialize(NULL); IUnknownPtr pUnk; GetActiveObject(CLSID_DTE, NULL, &pUnk); if (pUnk == NULL) { printf ("No instance of Visual Studio is running.\n"); } else { _DTEPtr pDTE = pUnk; if (pDTE) { DebuggerPtr pDebugger; if (SUCCEEDED(pDTE->get_Debugger(&pDebugger2)) && pDebugger2 != NULL){ dbgDebugMode mode; if (SUCCEEDED(pDebugger2->get_CurrentMode(&mode))) { if (mode != dbgDesignMode) { printf("Debugger is active.\n"); nRet = 1; } else { printf("Debugger is not active.\n"); } } } } } CoUninitialize(); return nRet; }