1 /***************************************************************************
3 Copyright (c) Microsoft Corporation. All rights reserved.
4 This code is licensed under the Visual Studio SDK license terms.
5 THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
6 ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
7 IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
8 PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
10 This code is a part of the Visual Studio Library.
12 ***************************************************************************/
14 #ifndef IDEBUGSTACKFRAME3_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5
15 #define IDEBUGSTACKFRAME3_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5
24 #pragma warning(disable : 4510) // default constructor could not be generated
25 #pragma warning(disable : 4610) // can never be instantiated - user defined constructor required
26 #pragma warning(disable : 4512) // assignment operator could not be generated
27 #pragma warning(disable : 6011) // Dereferencing NULL pointer (a NULL derference is just another kind of failure for a unit test
32 class IDebugStackFrame3NotImpl
:
33 public IDebugStackFrame3
36 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IDebugStackFrame3NotImpl
)
40 typedef IDebugStackFrame3 Interface
;
42 STDMETHOD(InterceptCurrentException
)(
43 /*[in]*/ INTERCEPT_EXCEPTION_ACTION
/*dwFlags*/,
44 /*[out]*/ UINT64
* /*pqwCookie*/)VSL_STDMETHOD_NOTIMPL
46 STDMETHOD(GetUnwindCodeContext
)(
47 /*[out]*/ IDebugCodeContext2
** /*ppCodeContext*/)VSL_STDMETHOD_NOTIMPL
49 STDMETHOD(GetCodeContext
)(
50 /*[out]*/ IDebugCodeContext2
** /*ppCodeCxt*/)VSL_STDMETHOD_NOTIMPL
52 STDMETHOD(GetDocumentContext
)(
53 /*[out]*/ IDebugDocumentContext2
** /*ppCxt*/)VSL_STDMETHOD_NOTIMPL
56 /*[out]*/ BSTR
* /*pbstrName*/)VSL_STDMETHOD_NOTIMPL
59 /*[in]*/ FRAMEINFO_FLAGS
/*dwFieldSpec*/,
60 /*[in]*/ UINT
/*nRadix*/,
61 /*[out]*/ FRAMEINFO
* /*pFrameInfo*/)VSL_STDMETHOD_NOTIMPL
63 STDMETHOD(GetPhysicalStackRange
)(
64 /*[out]*/ UINT64
* /*paddrMin*/,
65 /*[out]*/ UINT64
* /*paddrMax*/)VSL_STDMETHOD_NOTIMPL
67 STDMETHOD(GetExpressionContext
)(
68 /*[out]*/ IDebugExpressionContext2
** /*ppExprCxt*/)VSL_STDMETHOD_NOTIMPL
70 STDMETHOD(GetLanguageInfo
)(
71 /*[in,out,ptr]*/ BSTR
* /*pbstrLanguage*/,
72 /*[in,out,ptr]*/ GUID
* /*pguidLanguage*/)VSL_STDMETHOD_NOTIMPL
74 STDMETHOD(GetDebugProperty
)(
75 /*[out]*/ IDebugProperty2
** /*ppProperty*/)VSL_STDMETHOD_NOTIMPL
77 STDMETHOD(EnumProperties
)(
78 /*[in]*/ DEBUGPROP_INFO_FLAGS
/*dwFields*/,
79 /*[in]*/ UINT
/*nRadix*/,
80 /*[in]*/ REFGUID
/*guidFilter*/,
81 /*[in]*/ DWORD
/*dwTimeout*/,
82 /*[out]*/ ULONG
* /*pcelt*/,
83 /*[out]*/ IEnumDebugPropertyInfo2
** /*ppEnum*/)VSL_STDMETHOD_NOTIMPL
86 /*[out]*/ IDebugThread2
** /*ppThread*/)VSL_STDMETHOD_NOTIMPL
89 class IDebugStackFrame3MockImpl
:
90 public IDebugStackFrame3
,
94 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IDebugStackFrame3MockImpl
)
98 VSL_DEFINE_MOCK_CLASS_TYPDEFS(IDebugStackFrame3MockImpl
)
100 typedef IDebugStackFrame3 Interface
;
101 struct InterceptCurrentExceptionValidValues
103 /*[in]*/ INTERCEPT_EXCEPTION_ACTION dwFlags
;
104 /*[out]*/ UINT64
* pqwCookie
;
108 STDMETHOD(InterceptCurrentException
)(
109 /*[in]*/ INTERCEPT_EXCEPTION_ACTION dwFlags
,
110 /*[out]*/ UINT64
* pqwCookie
)
112 VSL_DEFINE_MOCK_METHOD(InterceptCurrentException
)
114 VSL_CHECK_VALIDVALUE(dwFlags
);
116 VSL_SET_VALIDVALUE(pqwCookie
);
118 VSL_RETURN_VALIDVALUES();
120 struct GetUnwindCodeContextValidValues
122 /*[out]*/ IDebugCodeContext2
** ppCodeContext
;
126 STDMETHOD(GetUnwindCodeContext
)(
127 /*[out]*/ IDebugCodeContext2
** ppCodeContext
)
129 VSL_DEFINE_MOCK_METHOD(GetUnwindCodeContext
)
131 VSL_SET_VALIDVALUE_INTERFACE(ppCodeContext
);
133 VSL_RETURN_VALIDVALUES();
135 struct GetCodeContextValidValues
137 /*[out]*/ IDebugCodeContext2
** ppCodeCxt
;
141 STDMETHOD(GetCodeContext
)(
142 /*[out]*/ IDebugCodeContext2
** ppCodeCxt
)
144 VSL_DEFINE_MOCK_METHOD(GetCodeContext
)
146 VSL_SET_VALIDVALUE_INTERFACE(ppCodeCxt
);
148 VSL_RETURN_VALIDVALUES();
150 struct GetDocumentContextValidValues
152 /*[out]*/ IDebugDocumentContext2
** ppCxt
;
156 STDMETHOD(GetDocumentContext
)(
157 /*[out]*/ IDebugDocumentContext2
** ppCxt
)
159 VSL_DEFINE_MOCK_METHOD(GetDocumentContext
)
161 VSL_SET_VALIDVALUE_INTERFACE(ppCxt
);
163 VSL_RETURN_VALIDVALUES();
165 struct GetNameValidValues
167 /*[out]*/ BSTR
* pbstrName
;
172 /*[out]*/ BSTR
* pbstrName
)
174 VSL_DEFINE_MOCK_METHOD(GetName
)
176 VSL_SET_VALIDVALUE_BSTR(pbstrName
);
178 VSL_RETURN_VALIDVALUES();
180 struct GetInfoValidValues
182 /*[in]*/ FRAMEINFO_FLAGS dwFieldSpec
;
183 /*[in]*/ UINT nRadix
;
184 /*[out]*/ FRAMEINFO
* pFrameInfo
;
189 /*[in]*/ FRAMEINFO_FLAGS dwFieldSpec
,
190 /*[in]*/ UINT nRadix
,
191 /*[out]*/ FRAMEINFO
* pFrameInfo
)
193 VSL_DEFINE_MOCK_METHOD(GetInfo
)
195 VSL_CHECK_VALIDVALUE(dwFieldSpec
);
197 VSL_CHECK_VALIDVALUE(nRadix
);
199 VSL_SET_VALIDVALUE(pFrameInfo
);
201 VSL_RETURN_VALIDVALUES();
203 struct GetPhysicalStackRangeValidValues
205 /*[out]*/ UINT64
* paddrMin
;
206 /*[out]*/ UINT64
* paddrMax
;
210 STDMETHOD(GetPhysicalStackRange
)(
211 /*[out]*/ UINT64
* paddrMin
,
212 /*[out]*/ UINT64
* paddrMax
)
214 VSL_DEFINE_MOCK_METHOD(GetPhysicalStackRange
)
216 VSL_SET_VALIDVALUE(paddrMin
);
218 VSL_SET_VALIDVALUE(paddrMax
);
220 VSL_RETURN_VALIDVALUES();
222 struct GetExpressionContextValidValues
224 /*[out]*/ IDebugExpressionContext2
** ppExprCxt
;
228 STDMETHOD(GetExpressionContext
)(
229 /*[out]*/ IDebugExpressionContext2
** ppExprCxt
)
231 VSL_DEFINE_MOCK_METHOD(GetExpressionContext
)
233 VSL_SET_VALIDVALUE_INTERFACE(ppExprCxt
);
235 VSL_RETURN_VALIDVALUES();
237 struct GetLanguageInfoValidValues
239 /*[in,out,ptr]*/ BSTR
* pbstrLanguage
;
240 /*[in,out,ptr]*/ GUID
* pguidLanguage
;
244 STDMETHOD(GetLanguageInfo
)(
245 /*[in,out,ptr]*/ BSTR
* pbstrLanguage
,
246 /*[in,out,ptr]*/ GUID
* pguidLanguage
)
248 VSL_DEFINE_MOCK_METHOD(GetLanguageInfo
)
250 VSL_SET_VALIDVALUE_BSTR(pbstrLanguage
);
252 VSL_SET_VALIDVALUE(pguidLanguage
);
254 VSL_RETURN_VALIDVALUES();
256 struct GetDebugPropertyValidValues
258 /*[out]*/ IDebugProperty2
** ppProperty
;
262 STDMETHOD(GetDebugProperty
)(
263 /*[out]*/ IDebugProperty2
** ppProperty
)
265 VSL_DEFINE_MOCK_METHOD(GetDebugProperty
)
267 VSL_SET_VALIDVALUE_INTERFACE(ppProperty
);
269 VSL_RETURN_VALIDVALUES();
271 struct EnumPropertiesValidValues
273 /*[in]*/ DEBUGPROP_INFO_FLAGS dwFields
;
274 /*[in]*/ UINT nRadix
;
275 /*[in]*/ REFGUID guidFilter
;
276 /*[in]*/ DWORD dwTimeout
;
277 /*[out]*/ ULONG
* pcelt
;
278 /*[out]*/ IEnumDebugPropertyInfo2
** ppEnum
;
282 STDMETHOD(EnumProperties
)(
283 /*[in]*/ DEBUGPROP_INFO_FLAGS dwFields
,
284 /*[in]*/ UINT nRadix
,
285 /*[in]*/ REFGUID guidFilter
,
286 /*[in]*/ DWORD dwTimeout
,
287 /*[out]*/ ULONG
* pcelt
,
288 /*[out]*/ IEnumDebugPropertyInfo2
** ppEnum
)
290 VSL_DEFINE_MOCK_METHOD(EnumProperties
)
292 VSL_CHECK_VALIDVALUE(dwFields
);
294 VSL_CHECK_VALIDVALUE(nRadix
);
296 VSL_CHECK_VALIDVALUE(guidFilter
);
298 VSL_CHECK_VALIDVALUE(dwTimeout
);
300 VSL_SET_VALIDVALUE(pcelt
);
302 VSL_SET_VALIDVALUE_INTERFACE(ppEnum
);
304 VSL_RETURN_VALIDVALUES();
306 struct GetThreadValidValues
308 /*[out]*/ IDebugThread2
** ppThread
;
312 STDMETHOD(GetThread
)(
313 /*[out]*/ IDebugThread2
** ppThread
)
315 VSL_DEFINE_MOCK_METHOD(GetThread
)
317 VSL_SET_VALIDVALUE_INTERFACE(ppThread
);
319 VSL_RETURN_VALIDVALUES();
328 #endif // IDEBUGSTACKFRAME3_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5