1 // Copyright 2020 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_WIN_DISPATCH_STUB_H_ 6 #define BASE_WIN_DISPATCH_STUB_H_ 7 8 #include <wrl/client.h> 9 #include <wrl/implements.h> 10 11 namespace base { 12 namespace win { 13 namespace test { 14 15 // An unimplemented IDispatch subclass for testing purposes. 16 class DispatchStub 17 : public Microsoft::WRL::RuntimeClass< 18 Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, 19 IDispatch> { 20 public: 21 DispatchStub() = default; 22 DispatchStub(const DispatchStub&) = delete; 23 DispatchStub& operator=(const DispatchStub&) = delete; 24 25 // IDispatch: 26 IFACEMETHODIMP GetTypeInfoCount(UINT*) override; 27 IFACEMETHODIMP GetTypeInfo(UINT, LCID, ITypeInfo**) override; 28 IFACEMETHODIMP GetIDsOfNames(REFIID, LPOLESTR*, UINT, LCID, DISPID*) override; 29 IFACEMETHODIMP Invoke(DISPID, 30 REFIID, 31 LCID, 32 WORD, 33 DISPPARAMS*, 34 VARIANT*, 35 EXCEPINFO*, 36 UINT*) override; 37 }; 38 39 } // namespace test 40 } // namespace win 41 } // namespace base 42 43 #endif // BASE_WIN_DISPATCH_STUB_H_ 44