// msdbg157.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 "msdbg156.idl"; #endif #ifdef DEBUGGER_PIA_BUILD #define XINT32 int #else #define XINT32 ULONG32 #endif // ------------------------------------------------------------------ // IListDebugFrameInfo // Represents a list of stack frames that can be indexed like an array. // // 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(11d2710f-2e6f-4931-8fc8-936bfb5938a3), pointer_default(unique) ] interface IListDebugFrameInfo : IUnknown { [propget] HRESULT Count([out, retval, annotation("_Out_")] XINT32* result); [propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] XINT32 lIndex, [out, retval, annotation("_Out_")] FRAMEINFO* pFrameInfo); HRESULT GetItems( [in] XINT32 index, [in] XINT32 count, [out, size_is(count), length_is(*pCountReturned), annotation("_Out_writes_to_(count, *pCountReturned)")] FRAMEINFO* itemsArray, [in, out, annotation("_Out_")] XINT32* pCountReturned); }; // ------------------------------------------------------------------ // IAsyncDebugGetFramesCompletionHandler [ object, uuid(15C89F68-17D2-4C34-9714-E5A1E0824904), pointer_default(unique) ] interface IAsyncDebugGetFramesCompletionHandler : IUnknown { HRESULT OnComplete( [in] HRESULT hr, [in] IListDebugFrameInfo* pStackFrames); }; // ------------------------------------------------------------------ // IDebugThread157 [ object, uuid(43C7542B-F624-4E1F-9761-BB5A9396CAFF), pointer_default(unique) ] interface IDebugThread157 : IUnknown { // Return all stack frames for the current thread // This is the asynchronous equivalent of IDebugThread2::EnumFrameInfo HRESULT GetAllFramesAsync( [in] enum enum_FRAMEINFO_FLAGS dwFlags, [in] DWORD dwFlagsEx, // FRAMEINFO_FLAGS_EX as defined in msdbg120.idl [in] UINT radix, [in] IAsyncDebugGetFramesCompletionHandler* pCompletionHandler, [out] IAsyncDebugEngineOperation** ppDebugOperation); }; // ------------------------------------------------------------------ // IListDebugPropertyInfo // Represents a list of debug properties that can be indexed like an array. // // 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(2A9DDAD2-BF0F-4406-B57D-BE93AD78EE05), pointer_default(unique) ] interface IListDebugPropertyInfo : IUnknown { [propget] HRESULT Count([out, retval, annotation("_Out_")] XINT32* result); [propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] XINT32 lIndex, [out, retval, annotation("_Out_")] DEBUG_PROPERTY_INFO* pPropertyInfo); HRESULT GetItems( [in] XINT32 index, [in] XINT32 count, [out, size_is(count), length_is(*pCountReturned), annotation("_Out_writes_to_(count, *pCountReturned)")] DEBUG_PROPERTY_INFO* itemsArray, [in, out, annotation("_Out_")] XINT32* pCountReturned); }; // ------------------------------------------------------------------ // IAsyncDebugGetPropertiesCompletionHandler [ object, uuid(5C9AFC5D-FD11-43F9-A6AA-345625DEA2A3), pointer_default(unique) ] interface IAsyncDebugGetPropertiesCompletionHandler : IUnknown { HRESULT OnComplete( [in] HRESULT hr, [in] DWORD countTotal, [in] IListDebugPropertyInfo* pDebugPropertyInfos); }; // ------------------------------------------------------------------ // IAsyncDebugEvaluateCompletionHandler [ object, uuid(DF75AC59-E3CF-456B-A5A2-B8B8FBDFB7A7), pointer_default(unique) ] interface IAsyncDebugEvaluateCompletionHandler : IUnknown { HRESULT OnComplete( [in] HRESULT hr, [in] IDebugProperty2* pDebugProperty); }; // ------------------------------------------------------------------ // IAsyncDebugPropertyInfoProvider // This is the asynchronous equivalent of IEnumDebugPropertyInfo2 [ object, uuid(BB7E4DEC-D761-41E6-8281-8976641EFE90), pointer_default(unique) ] interface IAsyncDebugPropertyInfoProvider : IUnknown { // Creates an operation to asynchronously fetch children. // Note that only one fetch operation is allowed to be executing at a // time per IAsyncDebugPropertyInfoProvider object it isn't valid to call // BeginExecute until the completion handler for the previous operation fires. HRESULT GetPropertiesAsync( [in] ULONG firstIndex, [in] ULONG count, [in] IAsyncDebugGetPropertiesCompletionHandler* pCompletionHandler, [out] IAsyncDebugEngineOperation** ppDebugOperation); }; // ------------------------------------------------------------------ // IDebugStackFrame157 // This is used to asynchronously obtain local variables from a frame (and potentially other times of variables in the future). // It is the async equivalent to IDebugStackFrame2.EnumProperties. [ object, uuid(3C0FE564-2DFA-40D4-842E-1B7747C4C3EA), pointer_default(unique) ] interface IDebugStackFrame157 : IUnknown { HRESULT GetPropertyProvider( [in] DEBUGPROP_INFO_FLAGS dwFields, [in] UINT nRadix, [in] REFGUID guidFilter, [in] DWORD dwTimeout, [out] IAsyncDebugPropertyInfoProvider** ppPropertiesProvider ); }; // ------------------------------------------------------------------ // IDebugProperty157 // This is the async equivalent to IDebugProperty2.EnumChildren [ object, uuid(790D60A3-2F26-426F-8A3C-53DB57D4CD29), pointer_default(unique) ] interface IDebugProperty157 : IUnknown { HRESULT GetChildPropertyProvider( [in] DEBUGPROP_INFO_FLAGS dwFields, [in] DWORD dwRadix, [in] DWORD dwTimeout, [out] IAsyncDebugPropertyInfoProvider** ppPropertiesProvider ); }; // ------------------------------------------------------------------ // IDebugExpression157 // This is the async equivalent to IDebugExpression2.EvaluateSync [ object, uuid(15FA3968-A6EB-481D-A55D-EB6927DAC066), pointer_default(unique) ] interface IDebugExpression157 : IUnknown { HRESULT GetEvaluateAsyncOp( [in] DEBUGPROP_INFO_FLAGS dwFields, [in] DWORD dwRadix, [in] EVALFLAGS dwFlags, [in] DWORD dwTimeout, [in] IAsyncDebugEvaluateCompletionHandler* pCompletionHandler, [out] IAsyncDebugEngineOperation** ppDebugOperation ); };