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 IVSLIBRARY2_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5
15 #define IVSLIBRARY2_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5
21 #include "vsshell80.h"
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 IVsLibrary2NotImpl
:
36 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsLibrary2NotImpl
)
40 typedef IVsLibrary2 Interface
;
42 STDMETHOD(GetSupportedCategoryFields2
)(
43 /*[in]*/ LIB_CATEGORY2
/*Category*/,
44 /*[out,retval]*/ DWORD
* /*pgrfCatField*/)VSL_STDMETHOD_NOTIMPL
47 /*[in]*/ LIB_LISTTYPE2
/*ListType*/,
48 /*[in]*/ LIB_LISTFLAGS
/*Flags*/,
49 /*[in]*/ VSOBSEARCHCRITERIA2
* /*pobSrch*/,
50 /*[out,retval]*/ IVsObjectList2
** /*ppIVsObjectList2*/)VSL_STDMETHOD_NOTIMPL
52 STDMETHOD(GetLibList
)(
53 /*[in]*/ LIB_PERSISTTYPE
/*lptType*/,
54 /*[out,retval]*/ IVsLiteTreeList
** /*ppList*/)VSL_STDMETHOD_NOTIMPL
56 STDMETHOD(GetLibFlags2
)(
57 /*[out,retval]*/ LIB_FLAGS2
* /*pgrfFlags*/)VSL_STDMETHOD_NOTIMPL
59 STDMETHOD(UpdateCounter
)(
60 /*[out]*/ ULONG
* /*pCurUpdate*/)VSL_STDMETHOD_NOTIMPL
63 /*[out]*/ const GUID
** /*ppguidLib*/)VSL_STDMETHOD_NOTIMPL
65 STDMETHOD(GetSeparatorString
)(
66 /*[out,string]*/ LPCWSTR
* /*pszSeparator*/)VSL_STDMETHOD_NOTIMPL
69 /*[in]*/ IStream
* /*pIStream*/,
70 /*[in]*/ LIB_PERSISTTYPE
/*lptType*/)VSL_STDMETHOD_NOTIMPL
73 /*[in]*/ IStream
* /*pIStream*/,
74 /*[in]*/ LIB_PERSISTTYPE
/*lptType*/)VSL_STDMETHOD_NOTIMPL
76 STDMETHOD(GetBrowseContainersForHierarchy
)(
77 /*[in]*/ IVsHierarchy
* /*pHierarchy*/,
78 /*[in]*/ ULONG
/*celt*/,
79 /*[in,out,size_is(celt)]*/ VSBROWSECONTAINER
[] /*rgBrowseContainers*/,
80 /*[out,optional]*/ ULONG
* /*pcActual*/)VSL_STDMETHOD_NOTIMPL
82 STDMETHOD(AddBrowseContainer
)(
83 /*[in]*/ PVSCOMPONENTSELECTORDATA
/*pcdComponent*/,
84 /*[in,out]*/ LIB_ADDREMOVEOPTIONS
* /*pgrfOptions*/,
85 /*[out,optional]*/ BSTR
* /*pbstrComponentAdded*/)VSL_STDMETHOD_NOTIMPL
87 STDMETHOD(RemoveBrowseContainer
)(
88 /*[in]*/ DWORD
/*dwReserved*/,
89 /*[in]*/ LPCWSTR
/*pszLibName*/)VSL_STDMETHOD_NOTIMPL
91 STDMETHOD(CreateNavInfo
)(
92 /*[in,size_is(ulcNodes)]*/ SYMBOL_DESCRIPTION_NODE
[] /*rgSymbolNodes*/,
93 /*[in]*/ ULONG
/*ulcNodes*/,
94 /*[out]*/ IVsNavInfo
** /*ppNavInfo*/)VSL_STDMETHOD_NOTIMPL
97 class IVsLibrary2MockImpl
:
102 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsLibrary2MockImpl
)
106 VSL_DEFINE_MOCK_CLASS_TYPDEFS(IVsLibrary2MockImpl
)
108 typedef IVsLibrary2 Interface
;
109 struct GetSupportedCategoryFields2ValidValues
111 /*[in]*/ LIB_CATEGORY2 Category
;
112 /*[out,retval]*/ DWORD
* pgrfCatField
;
116 STDMETHOD(GetSupportedCategoryFields2
)(
117 /*[in]*/ LIB_CATEGORY2 Category
,
118 /*[out,retval]*/ DWORD
* pgrfCatField
)
120 VSL_DEFINE_MOCK_METHOD(GetSupportedCategoryFields2
)
122 VSL_CHECK_VALIDVALUE(Category
);
124 VSL_SET_VALIDVALUE(pgrfCatField
);
126 VSL_RETURN_VALIDVALUES();
128 struct GetList2ValidValues
130 /*[in]*/ LIB_LISTTYPE2 ListType
;
131 /*[in]*/ LIB_LISTFLAGS Flags
;
132 /*[in]*/ VSOBSEARCHCRITERIA2
* pobSrch
;
133 /*[out,retval]*/ IVsObjectList2
** ppIVsObjectList2
;
138 /*[in]*/ LIB_LISTTYPE2 ListType
,
139 /*[in]*/ LIB_LISTFLAGS Flags
,
140 /*[in]*/ VSOBSEARCHCRITERIA2
* pobSrch
,
141 /*[out,retval]*/ IVsObjectList2
** ppIVsObjectList2
)
143 VSL_DEFINE_MOCK_METHOD(GetList2
)
145 VSL_CHECK_VALIDVALUE(ListType
);
147 VSL_CHECK_VALIDVALUE(Flags
);
149 VSL_CHECK_VALIDVALUE_POINTER(pobSrch
);
151 VSL_SET_VALIDVALUE_INTERFACE(ppIVsObjectList2
);
153 VSL_RETURN_VALIDVALUES();
155 struct GetLibListValidValues
157 /*[in]*/ LIB_PERSISTTYPE lptType
;
158 /*[out,retval]*/ IVsLiteTreeList
** ppList
;
162 STDMETHOD(GetLibList
)(
163 /*[in]*/ LIB_PERSISTTYPE lptType
,
164 /*[out,retval]*/ IVsLiteTreeList
** ppList
)
166 VSL_DEFINE_MOCK_METHOD(GetLibList
)
168 VSL_CHECK_VALIDVALUE(lptType
);
170 VSL_SET_VALIDVALUE_INTERFACE(ppList
);
172 VSL_RETURN_VALIDVALUES();
174 struct GetLibFlags2ValidValues
176 /*[out,retval]*/ LIB_FLAGS2
* pgrfFlags
;
180 STDMETHOD(GetLibFlags2
)(
181 /*[out,retval]*/ LIB_FLAGS2
* pgrfFlags
)
183 VSL_DEFINE_MOCK_METHOD(GetLibFlags2
)
185 VSL_SET_VALIDVALUE(pgrfFlags
);
187 VSL_RETURN_VALIDVALUES();
189 struct UpdateCounterValidValues
191 /*[out]*/ ULONG
* pCurUpdate
;
195 STDMETHOD(UpdateCounter
)(
196 /*[out]*/ ULONG
* pCurUpdate
)
198 VSL_DEFINE_MOCK_METHOD(UpdateCounter
)
200 VSL_SET_VALIDVALUE(pCurUpdate
);
202 VSL_RETURN_VALIDVALUES();
204 struct GetGuidValidValues
206 /*[out]*/ GUID
** ppguidLib
;
211 /*[out]*/ const GUID
** ppguidLib
)
213 VSL_DEFINE_MOCK_METHOD(GetGuid
)
215 VSL_SET_VALIDVALUE_CONST(ppguidLib
, GUID
**);
217 VSL_RETURN_VALIDVALUES();
219 struct GetSeparatorStringValidValues
221 /*[out,string]*/ LPCWSTR
* pszSeparator
;
225 STDMETHOD(GetSeparatorString
)(
226 /*[out,string]*/ LPCWSTR
* pszSeparator
)
228 VSL_DEFINE_MOCK_METHOD(GetSeparatorString
)
230 VSL_SET_VALIDVALUE(pszSeparator
);
232 VSL_RETURN_VALIDVALUES();
234 struct LoadStateValidValues
236 /*[in]*/ IStream
* pIStream
;
237 /*[in]*/ LIB_PERSISTTYPE lptType
;
241 STDMETHOD(LoadState
)(
242 /*[in]*/ IStream
* pIStream
,
243 /*[in]*/ LIB_PERSISTTYPE lptType
)
245 VSL_DEFINE_MOCK_METHOD(LoadState
)
247 VSL_CHECK_VALIDVALUE_INTERFACEPOINTER(pIStream
);
249 VSL_CHECK_VALIDVALUE(lptType
);
251 VSL_RETURN_VALIDVALUES();
253 struct SaveStateValidValues
255 /*[in]*/ IStream
* pIStream
;
256 /*[in]*/ LIB_PERSISTTYPE lptType
;
260 STDMETHOD(SaveState
)(
261 /*[in]*/ IStream
* pIStream
,
262 /*[in]*/ LIB_PERSISTTYPE lptType
)
264 VSL_DEFINE_MOCK_METHOD(SaveState
)
266 VSL_CHECK_VALIDVALUE_INTERFACEPOINTER(pIStream
);
268 VSL_CHECK_VALIDVALUE(lptType
);
270 VSL_RETURN_VALIDVALUES();
272 struct GetBrowseContainersForHierarchyValidValues
274 /*[in]*/ IVsHierarchy
* pHierarchy
;
276 /*[in,out,size_is(celt)]*/ VSBROWSECONTAINER
* rgBrowseContainers
;
277 /*[out,optional]*/ ULONG
* pcActual
;
281 STDMETHOD(GetBrowseContainersForHierarchy
)(
282 /*[in]*/ IVsHierarchy
* pHierarchy
,
284 /*[in,out,size_is(celt)]*/ VSBROWSECONTAINER rgBrowseContainers
[],
285 /*[out,optional]*/ ULONG
* pcActual
)
287 VSL_DEFINE_MOCK_METHOD(GetBrowseContainersForHierarchy
)
289 VSL_CHECK_VALIDVALUE_INTERFACEPOINTER(pHierarchy
);
291 VSL_CHECK_VALIDVALUE(celt
);
293 VSL_SET_VALIDVALUE_MEMCPY(rgBrowseContainers
, celt
*sizeof(rgBrowseContainers
[0]), validValues
.celt
*sizeof(validValues
.rgBrowseContainers
[0]));
295 VSL_SET_VALIDVALUE(pcActual
);
297 VSL_RETURN_VALIDVALUES();
299 struct AddBrowseContainerValidValues
301 /*[in]*/ PVSCOMPONENTSELECTORDATA pcdComponent
;
302 /*[in,out]*/ LIB_ADDREMOVEOPTIONS
* pgrfOptions
;
303 /*[out,optional]*/ BSTR
* pbstrComponentAdded
;
307 STDMETHOD(AddBrowseContainer
)(
308 /*[in]*/ PVSCOMPONENTSELECTORDATA pcdComponent
,
309 /*[in,out]*/ LIB_ADDREMOVEOPTIONS
* pgrfOptions
,
310 /*[out,optional]*/ BSTR
* pbstrComponentAdded
)
312 VSL_DEFINE_MOCK_METHOD(AddBrowseContainer
)
314 VSL_CHECK_VALIDVALUE(pcdComponent
);
316 VSL_SET_VALIDVALUE(pgrfOptions
);
318 VSL_SET_VALIDVALUE_BSTR(pbstrComponentAdded
);
320 VSL_RETURN_VALIDVALUES();
322 struct RemoveBrowseContainerValidValues
324 /*[in]*/ DWORD dwReserved
;
325 /*[in]*/ LPCWSTR pszLibName
;
329 STDMETHOD(RemoveBrowseContainer
)(
330 /*[in]*/ DWORD dwReserved
,
331 /*[in]*/ LPCWSTR pszLibName
)
333 VSL_DEFINE_MOCK_METHOD(RemoveBrowseContainer
)
335 VSL_CHECK_VALIDVALUE(dwReserved
);
337 VSL_CHECK_VALIDVALUE_STRINGW(pszLibName
);
339 VSL_RETURN_VALIDVALUES();
341 struct CreateNavInfoValidValues
343 /*[in,size_is(ulcNodes)]*/ SYMBOL_DESCRIPTION_NODE
* rgSymbolNodes
;
344 /*[in]*/ ULONG ulcNodes
;
345 /*[out]*/ IVsNavInfo
** ppNavInfo
;
349 STDMETHOD(CreateNavInfo
)(
350 /*[in,size_is(ulcNodes)]*/ SYMBOL_DESCRIPTION_NODE rgSymbolNodes
[],
351 /*[in]*/ ULONG ulcNodes
,
352 /*[out]*/ IVsNavInfo
** ppNavInfo
)
354 VSL_DEFINE_MOCK_METHOD(CreateNavInfo
)
356 VSL_CHECK_VALIDVALUE_MEMCMP(rgSymbolNodes
, ulcNodes
*sizeof(rgSymbolNodes
[0]), validValues
.ulcNodes
*sizeof(validValues
.rgSymbolNodes
[0]));
358 VSL_CHECK_VALIDVALUE(ulcNodes
);
360 VSL_SET_VALIDVALUE_INTERFACE(ppNavInfo
);
362 VSL_RETURN_VALIDVALUES();
371 #endif // IVSLIBRARY2_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5