// msdbg120a.idl /******************************************************** * * * Copyright (C) Microsoft. All rights reserved. * * * *********************************************************/ cpp_quote("/********************************************************") cpp_quote("* *") cpp_quote("* Copyright (C) Microsoft. All rights reserved. *") cpp_quote("* *") cpp_quote("*********************************************************/") #ifndef DEBUGGER_PIA_BUILD import "oaidl.idl"; import "ocidl.idl"; import "msdbg.idl"; #endif typedef struct DebugOption { BSTR Name; VARIANT_BOOL IsEnabled; } DebugOption; // Represents option list for debugger settings such as symbol path list, include list, exclude list // Note that changing properties of this interface doesn't have any effect on the current debugger symbol settings // unless IVsDebuggerSymbolSettingsManager120A.SaveSymbolSettings is called [ uuid(BD0E4180-EEB9-45CF-9341-1CB4CA98CE07), version(1.0), pointer_default(unique), local ] interface IDebugOptionList120A : IUnknown { // Returns the number of options in the list [propget] HRESULT Count([out, retval] long *pVal); // Retrieves the option item with the given index. [propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] long lIndex, [out, retval] DebugOption *pVal); // Adds a new option to the list HRESULT Add([in] LPCOLESTR name, VARIANT_BOOL isEnabled); // Removes option(s) with the given name HRESULT Remove([in] LPCOLESTR name); // Removes all options from the list HRESULT Clear(); // Searches for an entry that matches the given name starting at the given index // Set useWildcard to true to use wildcard matching when searching for the entry // Returns the index of the matched item, -1 if not found HRESULT Find([in] long lStartIndex, [in] LPCOLESTR name, VARIANT_BOOL useWildcard, [out, retval] long* plIndex); // Creates a copy of this option list interface which can be used for storing existing option list HRESULT Clone([out, retval] IDebugOptionList120A** ppDebugOptionList); }; // Represents symbol settings for the debugger // Note that changing properties of this interface doesn't have any effect on the current debugger symbol settings // unless IVsDebuggerSymbolSettingsManager120A.SaveSymbolSettings is called [ uuid(BA6E5E41-BE38-4D79-BE35-570160BE009E), version(1.0), pointer_default(unique), local ] interface IVsDebuggerSymbolSettings120A : IUnknown { // The list of 'user specified' symbol paths in the debugger. // Excludes built-in paths such as _NT_SYMBOL_PATH or Microsoft public symbol servers. [propget] HRESULT SymbolPaths([out, retval] IDebugOptionList120A** ppSymbolPaths); // The list of modules to include when searching for symbols in manual symbol loading. // The list accepts wildcard characters in entries. [propget] HRESULT IncludeList([out, retval] IDebugOptionList120A** ppIncludeList); // The list of modules to exclude when searching for symbols in automatic symbol loading. // The list accepts wildcard characters in entries. [propget] HRESULT ExcludeList([out, retval] IDebugOptionList120A** ppExcludeList); // Controls the cached path used the debugger. [propput] HRESULT CachePath([in] LPCOLESTR cachePath); [propget] HRESULT CachePath([out, retval] BSTR* bstrCachePath); // Controls whether debugger load symbols manually or automatically. // When IsManualLoad == true, only the symbols for enabled modules in the include list are searched and loaded. // When IsManualLoad == false, all the modules except those in the exclude list are searched and loaded. [propput] HRESULT IsManualLoad([in] VARIANT_BOOL flag); [propget] HRESULT IsManualLoad([out, retval] VARIANT_BOOL* flag); // Controls whether to load symbols next to binaries. Only applicable when IsManualLoad == true. [propput] HRESULT IsLoadAdjacent([in] VARIANT_BOOL flag); [propget] HRESULT IsLoadAdjacent([out, retval] VARIANT_BOOL* flag); // Controls whether Microsoft symbol servers are enabled for symbol search. [propput] HRESULT UseMSSymbolServers([in] VARIANT_BOOL flag); [propget] HRESULT UseMSSymbolServers([out, retval] VARIANT_BOOL* flag); // Returns a copy of this symbol settings interface which can be used for storing existing options HRESULT Clone([out, retval] IVsDebuggerSymbolSettings120A** ppVsDebuggerSymbolSettings); }; [ uuid(B4460C14-0296-4182-AECD-73514987F21E), version(1.0), pointer_default(unique), local ] interface IVsDebuggerSymbolSettingsManager120A : IUnknown { // Gets a copy of the currently active debugger symbol settings // Changing the properties of the retrieved IVsDebuggerSymbolSettings120A object doesn't // have any effect on the active debugger symbol settings HRESULT GetCurrentSymbolSettings([out, retval] IVsDebuggerSymbolSettings120A** ppSymbolSettings); // Updates the current debugger symbol settings with the properties of the given IVsDebuggerSymbolSettings120A HRESULT SaveSymbolSettings([in] IVsDebuggerSymbolSettings120A* pSymbolSettings, [in, defaultvalue(0)] VARIANT_BOOL loadSymbolsNow); }; [ uuid(2CF077B1-ECC0-4DC5-BF44-414A4190012D), version(1.0), pointer_default(unique), local ] interface IVsDebugLaunchNotifyListener120A : IUnknown { HRESULT GetAdditionalLaunchFlags([out] DWORD* pdwAdditionalLaunchFlags); }; // Optional interface which can be QI'ed from an IDebugCodeContext2 [ object, uuid(98a98e96-a59a-4580-925f-4e7ff5a49cfe), pointer_default(unique), local // Dev14 TODO: Remove ] interface IDebugCodeContext120A : IUnknown { // Obtains an alternate document context for this code context. This is // currently used for source map documents to allow them to fall back to the // original document in the case that the mapped document could not be located. // // The Microsoft engine (Concord) will currently only implement this support for // sourcemap code contexts. In other scenarios, this function will return E_NOTIMPL. HRESULT GetAlternateDocumentContext([out] IDebugDocumentContext2** ppDocumentContext); };