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 IVSSETTINGSREADER_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5
15 #define IVSSETTINGSREADER_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 IVsSettingsReaderNotImpl
:
33 public IVsSettingsReader
36 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsSettingsReaderNotImpl
)
40 typedef IVsSettingsReader Interface
;
42 STDMETHOD(ReadSettingString
)(
43 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
44 /*[out,retval]*/ BSTR
* /*pbstrSettingValue*/)VSL_STDMETHOD_NOTIMPL
46 STDMETHOD(ReadSettingLong
)(
47 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
48 /*[out,retval]*/ long* /*plSettingValue*/)VSL_STDMETHOD_NOTIMPL
50 STDMETHOD(ReadSettingBoolean
)(
51 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
52 /*[out,retval]*/ BOOL
* /*pfSettingValue*/)VSL_STDMETHOD_NOTIMPL
54 STDMETHOD(ReadSettingBytes
)(
55 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
56 /*[in,out]*/ BYTE
* /*pSettingValue*/,
57 /*[out]*/ long* /*plDataLength*/,
58 /*[in]*/ long /*lDataMax*/)VSL_STDMETHOD_NOTIMPL
60 STDMETHOD(ReadSettingAttribute
)(
61 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
62 /*[in]*/ LPCOLESTR
/*pszAttributeName*/,
63 /*[out,retval]*/ BSTR
* /*pbstrSettingValue*/)VSL_STDMETHOD_NOTIMPL
65 STDMETHOD(ReadSettingXml
)(
66 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
67 /*[out,retval]*/ IUnknown
** /*ppIXMLDOMNode*/)VSL_STDMETHOD_NOTIMPL
69 STDMETHOD(ReadSettingXmlAsString
)(
70 /*[in]*/ LPCOLESTR
/*pszSettingName*/,
71 /*[out,retval]*/ BSTR
* /*pbstrXML*/)VSL_STDMETHOD_NOTIMPL
73 STDMETHOD(ReadCategoryVersion
)(
74 /*[out]*/ int* /*pnMajor*/,
75 /*[out]*/ int* /*pnMinor*/,
76 /*[out]*/ int* /*pnBuild*/,
77 /*[out]*/ int* /*pnRevision*/)VSL_STDMETHOD_NOTIMPL
79 STDMETHOD(ReadFileVersion
)(
80 /*[out]*/ int* /*pnMajor*/,
81 /*[out]*/ int* /*pnMinor*/,
82 /*[out]*/ int* /*pnBuild*/,
83 /*[out]*/ int* /*pnRevision*/)VSL_STDMETHOD_NOTIMPL
85 STDMETHOD(ReportError
)(
86 /*[in]*/ LPCOLESTR
/*pszError*/,
87 /*[in]*/ VSSETTINGSERRORTYPES
/*dwErrorType*/)VSL_STDMETHOD_NOTIMPL
90 class IVsSettingsReaderMockImpl
:
91 public IVsSettingsReader
,
95 VSL_DECLARE_NONINSTANTIABLE_BASE_CLASS(IVsSettingsReaderMockImpl
)
99 VSL_DEFINE_MOCK_CLASS_TYPDEFS(IVsSettingsReaderMockImpl
)
101 typedef IVsSettingsReader Interface
;
102 struct ReadSettingStringValidValues
104 /*[in]*/ LPCOLESTR pszSettingName
;
105 /*[out,retval]*/ BSTR
* pbstrSettingValue
;
109 STDMETHOD(ReadSettingString
)(
110 /*[in]*/ LPCOLESTR pszSettingName
,
111 /*[out,retval]*/ BSTR
* pbstrSettingValue
)
113 VSL_DEFINE_MOCK_METHOD(ReadSettingString
)
115 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
117 VSL_SET_VALIDVALUE_BSTR(pbstrSettingValue
);
119 VSL_RETURN_VALIDVALUES();
121 struct ReadSettingLongValidValues
123 /*[in]*/ LPCOLESTR pszSettingName
;
124 /*[out,retval]*/ long* plSettingValue
;
128 STDMETHOD(ReadSettingLong
)(
129 /*[in]*/ LPCOLESTR pszSettingName
,
130 /*[out,retval]*/ long* plSettingValue
)
132 VSL_DEFINE_MOCK_METHOD(ReadSettingLong
)
134 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
136 VSL_SET_VALIDVALUE(plSettingValue
);
138 VSL_RETURN_VALIDVALUES();
140 struct ReadSettingBooleanValidValues
142 /*[in]*/ LPCOLESTR pszSettingName
;
143 /*[out,retval]*/ BOOL
* pfSettingValue
;
147 STDMETHOD(ReadSettingBoolean
)(
148 /*[in]*/ LPCOLESTR pszSettingName
,
149 /*[out,retval]*/ BOOL
* pfSettingValue
)
151 VSL_DEFINE_MOCK_METHOD(ReadSettingBoolean
)
153 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
155 VSL_SET_VALIDVALUE(pfSettingValue
);
157 VSL_RETURN_VALIDVALUES();
159 struct ReadSettingBytesValidValues
161 /*[in]*/ LPCOLESTR pszSettingName
;
162 /*[in,out]*/ BYTE
* pSettingValue
;
163 /*[out]*/ long* plDataLength
;
164 /*[in]*/ long lDataMax
;
168 STDMETHOD(ReadSettingBytes
)(
169 /*[in]*/ LPCOLESTR pszSettingName
,
170 /*[in,out]*/ BYTE
* pSettingValue
,
171 /*[out]*/ long* plDataLength
,
172 /*[in]*/ long lDataMax
)
174 VSL_DEFINE_MOCK_METHOD(ReadSettingBytes
)
176 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
178 VSL_SET_VALIDVALUE(pSettingValue
);
180 VSL_SET_VALIDVALUE(plDataLength
);
182 VSL_CHECK_VALIDVALUE(lDataMax
);
184 VSL_RETURN_VALIDVALUES();
186 struct ReadSettingAttributeValidValues
188 /*[in]*/ LPCOLESTR pszSettingName
;
189 /*[in]*/ LPCOLESTR pszAttributeName
;
190 /*[out,retval]*/ BSTR
* pbstrSettingValue
;
194 STDMETHOD(ReadSettingAttribute
)(
195 /*[in]*/ LPCOLESTR pszSettingName
,
196 /*[in]*/ LPCOLESTR pszAttributeName
,
197 /*[out,retval]*/ BSTR
* pbstrSettingValue
)
199 VSL_DEFINE_MOCK_METHOD(ReadSettingAttribute
)
201 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
203 VSL_CHECK_VALIDVALUE_STRINGW(pszAttributeName
);
205 VSL_SET_VALIDVALUE_BSTR(pbstrSettingValue
);
207 VSL_RETURN_VALIDVALUES();
209 struct ReadSettingXmlValidValues
211 /*[in]*/ LPCOLESTR pszSettingName
;
212 /*[out,retval]*/ IUnknown
** ppIXMLDOMNode
;
216 STDMETHOD(ReadSettingXml
)(
217 /*[in]*/ LPCOLESTR pszSettingName
,
218 /*[out,retval]*/ IUnknown
** ppIXMLDOMNode
)
220 VSL_DEFINE_MOCK_METHOD(ReadSettingXml
)
222 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
224 VSL_SET_VALIDVALUE_INTERFACE(ppIXMLDOMNode
);
226 VSL_RETURN_VALIDVALUES();
228 struct ReadSettingXmlAsStringValidValues
230 /*[in]*/ LPCOLESTR pszSettingName
;
231 /*[out,retval]*/ BSTR
* pbstrXML
;
235 STDMETHOD(ReadSettingXmlAsString
)(
236 /*[in]*/ LPCOLESTR pszSettingName
,
237 /*[out,retval]*/ BSTR
* pbstrXML
)
239 VSL_DEFINE_MOCK_METHOD(ReadSettingXmlAsString
)
241 VSL_CHECK_VALIDVALUE_STRINGW(pszSettingName
);
243 VSL_SET_VALIDVALUE_BSTR(pbstrXML
);
245 VSL_RETURN_VALIDVALUES();
247 struct ReadCategoryVersionValidValues
249 /*[out]*/ int* pnMajor
;
250 /*[out]*/ int* pnMinor
;
251 /*[out]*/ int* pnBuild
;
252 /*[out]*/ int* pnRevision
;
256 STDMETHOD(ReadCategoryVersion
)(
257 /*[out]*/ int* pnMajor
,
258 /*[out]*/ int* pnMinor
,
259 /*[out]*/ int* pnBuild
,
260 /*[out]*/ int* pnRevision
)
262 VSL_DEFINE_MOCK_METHOD(ReadCategoryVersion
)
264 VSL_SET_VALIDVALUE(pnMajor
);
266 VSL_SET_VALIDVALUE(pnMinor
);
268 VSL_SET_VALIDVALUE(pnBuild
);
270 VSL_SET_VALIDVALUE(pnRevision
);
272 VSL_RETURN_VALIDVALUES();
274 struct ReadFileVersionValidValues
276 /*[out]*/ int* pnMajor
;
277 /*[out]*/ int* pnMinor
;
278 /*[out]*/ int* pnBuild
;
279 /*[out]*/ int* pnRevision
;
283 STDMETHOD(ReadFileVersion
)(
284 /*[out]*/ int* pnMajor
,
285 /*[out]*/ int* pnMinor
,
286 /*[out]*/ int* pnBuild
,
287 /*[out]*/ int* pnRevision
)
289 VSL_DEFINE_MOCK_METHOD(ReadFileVersion
)
291 VSL_SET_VALIDVALUE(pnMajor
);
293 VSL_SET_VALIDVALUE(pnMinor
);
295 VSL_SET_VALIDVALUE(pnBuild
);
297 VSL_SET_VALIDVALUE(pnRevision
);
299 VSL_RETURN_VALIDVALUES();
301 struct ReportErrorValidValues
303 /*[in]*/ LPCOLESTR pszError
;
304 /*[in]*/ VSSETTINGSERRORTYPES dwErrorType
;
308 STDMETHOD(ReportError
)(
309 /*[in]*/ LPCOLESTR pszError
,
310 /*[in]*/ VSSETTINGSERRORTYPES dwErrorType
)
312 VSL_DEFINE_MOCK_METHOD(ReportError
)
314 VSL_CHECK_VALIDVALUE_STRINGW(pszError
);
316 VSL_CHECK_VALIDVALUE(dwErrorType
);
318 VSL_RETURN_VALIDVALUES();
327 #endif // IVSSETTINGSREADER_H_10C49CA1_2F46_11D3_A504_00C04F5E0BA5