added some development tools
[windows-sources.git] / developer / VSSDK / VisualStudioIntegration / Common / Source / CPP / VSL / MockInterfaces / VSLMockIVsLibrary2.h
blob9bd938f6e1a2a28b2bd48a114ab99d562cee426e
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
17 #if _MSC_VER > 1000
18 #pragma once
19 #endif
21 #include "vsshell80.h"
23 #pragma warning(push)
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
29 namespace VSL
32 class IVsLibrary2NotImpl :
33 public IVsLibrary2
36 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsLibrary2NotImpl)
38 public:
40 typedef IVsLibrary2 Interface;
42 STDMETHOD(GetSupportedCategoryFields2)(
43 /*[in]*/ LIB_CATEGORY2 /*Category*/,
44 /*[out,retval]*/ DWORD* /*pgrfCatField*/)VSL_STDMETHOD_NOTIMPL
46 STDMETHOD(GetList2)(
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
62 STDMETHOD(GetGuid)(
63 /*[out]*/ const GUID** /*ppguidLib*/)VSL_STDMETHOD_NOTIMPL
65 STDMETHOD(GetSeparatorString)(
66 /*[out,string]*/ LPCWSTR* /*pszSeparator*/)VSL_STDMETHOD_NOTIMPL
68 STDMETHOD(LoadState)(
69 /*[in]*/ IStream* /*pIStream*/,
70 /*[in]*/ LIB_PERSISTTYPE /*lptType*/)VSL_STDMETHOD_NOTIMPL
72 STDMETHOD(SaveState)(
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 :
98 public IVsLibrary2,
99 public MockBase
102 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsLibrary2MockImpl)
104 public:
106 VSL_DEFINE_MOCK_CLASS_TYPDEFS(IVsLibrary2MockImpl)
108 typedef IVsLibrary2 Interface;
109 struct GetSupportedCategoryFields2ValidValues
111 /*[in]*/ LIB_CATEGORY2 Category;
112 /*[out,retval]*/ DWORD* pgrfCatField;
113 HRESULT retValue;
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;
134 HRESULT retValue;
137 STDMETHOD(GetList2)(
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;
159 HRESULT retValue;
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;
177 HRESULT retValue;
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;
192 HRESULT retValue;
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;
207 HRESULT retValue;
210 STDMETHOD(GetGuid)(
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;
222 HRESULT retValue;
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;
238 HRESULT retValue;
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;
257 HRESULT retValue;
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;
275 /*[in]*/ ULONG celt;
276 /*[in,out,size_is(celt)]*/ VSBROWSECONTAINER* rgBrowseContainers;
277 /*[out,optional]*/ ULONG* pcActual;
278 HRESULT retValue;
281 STDMETHOD(GetBrowseContainersForHierarchy)(
282 /*[in]*/ IVsHierarchy* pHierarchy,
283 /*[in]*/ ULONG celt,
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;
304 HRESULT retValue;
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;
326 HRESULT retValue;
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;
346 HRESULT retValue;
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();
367 } // namespace VSL
369 #pragma warning(pop)
371 #endif // IVSLIBRARY2_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5