// msdbg176.idl /******************************************************** * * * Copyright (C) Microsoft. All rights reserved. * * * *********************************************************/ cpp_quote("/********************************************************") cpp_quote("* *") cpp_quote("* Copyright (C) Microsoft. All rights reserved. *") cpp_quote("* *") cpp_quote("*********************************************************/") import "oaidl.idl"; import "ocidl.idl"; #ifndef DEBUGGER_PIA_BUILD import "msdbg.idl"; #endif #ifdef DEBUGGER_PIA_BUILD #define XINT32 int #else #define XINT32 ULONG32 #endif typedef struct _DotnetVisualizerExtensionInfo { // A unique id for this visualizer extension. GUID Id; // The text that will be displayed in the visualizer widget to uniquely identify this visualizer. [ptr] BSTR DisplayName; // The full name of the type that can be visualized by this visualizer. [ptr] BSTR TargetTypeFullName; // The full name of the assembly where the target type is defined. [ptr] BSTR TargetTypeAssemblyFullName; // The full name of the debuggee-side type of the managed visualizer. [ptr] BSTR DebuggeeSideVisualizerTypeFullName; // The full name of the assembly where the debuggee-side type of the managed visualizer is defined. [ptr] BSTR DebuggeeSideVisualizerTypeAssemblyFullName; // The location where the visualizer assemblies got installed. [ptr] BSTR InstallDirectory; } DotnetVisualizerExtensionInfo; // ------------------------------------------------------------------ // Represents a list of DotnetVisualizerExtensionInfos that can be indexed like an array. // // This interface is deprecated. Please use the IDebugVisualizerExtensionList178 interface instead. // // NOTE: the implementation of this interface _MUST_ be thread agile. This is the // default if implementing the interface in managed code. If implementing in native code, // implementations should aggregate the free threaded marshaler. [ local, object, uuid(844E2523-0720-40FB-AD73-F0C9B6DB5E25), pointer_default(unique) ] interface IDebugVisualizerExtensionList176 : IUnknown { [propget] HRESULT Count([out, retval, annotation("_Out_")] XINT32* pCount); [propget, id(DISPID_VALUE), helpstring("Item")] HRESULT Item([in] XINT32 index, [out, retval, annotation("_Out_")] DotnetVisualizerExtensionInfo* pItem); HRESULT GetItems( [in] XINT32 index, [in] XINT32 count, [out, size_is(count), length_is(*pCountReturned), annotation("_Out_writes_to_(count, *pCountReturned)")] DotnetVisualizerExtensionInfo* itemsArray, [in, out, annotation("_Out_")] XINT32* pCountReturned); }; // Optional interface implemented by debug engines and the SDM // This interface got deprecated in VS 17.8. Use IDebugVisualizerExtensionReceiver177 instead. [ local, object, uuid(A597E936-021B-4CE7-A628-0FCC2E5A4029), pointer_default(unique) ] interface IDebugVisualizerExtensionReceiver176 : IUnknown { // Called on startup and also when the visualizer collection changes. HRESULT SetVisualizerExtensions([in] IDebugVisualizerExtensionList176* collection); }; // Optional interface that can be implemented by objects that implement an asynchronous API completion handler // in order to receive information describing the progress of the operation. Progress reporting is not // supported for items that are added to an instance of IAsyncDebugEngineOperationWorkList. // // NOTE: The implementation of this interface _MUST_ be thread agile. This is the // default if implementing the interface in managed code. If implementing in native code, // implementations should aggregate the free threaded marshaler. [ object, local, uuid(8D31EB85-1D92-489D-ACE7-BE1C753EBE73), pointer_default(unique) ] interface IAsyncDebugOperationProgress176 : IUnknown { // Called when a progress update for the operation is available. If 'isIndeterminate' is true, the value // provided in 'percentComplete' can be ignored. If 'message' or 'title' is NULL, the previously-provided // value (if any) should be used. HRESULT SetProgress(BOOL isIndeterminate, int percentComplete, LPCOLESTR message, LPCOLESTR title); }; // Optional interface that can be implemented by objects that implement IDebugDocumentContext2 in order to provide // a reference to the IDebugModule2 associated with the document context, if any. [ object, uuid(548C7265-1B64-4571-9197-FDB7D9F1EEBC), pointer_default(unique) ] interface IDebugDocumentContext176 : IUnknown { HRESULT GetModule([out] IDebugModule2** ppModule); }; // Optional interface that can be implemented by objects that implement IDebugSymbolsDocument in order to provide // a reference to the IDebugModule2 associated with the document, if any. [ object, uuid(92C66D33-18A0-406B-9519-EBE650238FAB), pointer_default(unique) ] interface IDebugSymbolsDocument176 : IUnknown { HRESULT GetModule([out] IDebugModule2** ppModule); }; // Optional interface that can be implemented by objects that implement IDebugModule2 in order to provide // a unique identifier associated with the module, if any. The identifier returned should be consistent // between debug sessions and change only when the module itself does, such as an MVID. [ object, uuid(C6E37753-BB22-4DBA-B33F-3C581EC19BF9), pointer_default(unique) ] interface IDebugModule176 : IUnknown { HRESULT GetModuleId([out] BSTR* moduleId); };