| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_WIN_DISPATCH_STUB_H_ |
| #define BASE_WIN_DISPATCH_STUB_H_ |
| |
| #include <wrl/client.h> |
| #include <wrl/implements.h> |
| |
| namespace base { |
| namespace win { |
| namespace test { |
| |
| // An unimplemented IDispatch subclass for testing purposes. |
| class DispatchStub |
| : public Microsoft::WRL::RuntimeClass< |
| Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, |
| IDispatch> { |
| public: |
| DispatchStub() = default; |
| DispatchStub(const DispatchStub&) = delete; |
| DispatchStub& operator=(const DispatchStub&) = delete; |
| |
| // IDispatch: |
| IFACEMETHODIMP GetTypeInfoCount(UINT*) override; |
| IFACEMETHODIMP GetTypeInfo(UINT, LCID, ITypeInfo**) override; |
| IFACEMETHODIMP GetIDsOfNames(REFIID, LPOLESTR*, UINT, LCID, DISPID*) override; |
| IFACEMETHODIMP Invoke(DISPID, |
| REFIID, |
| LCID, |
| WORD, |
| DISPPARAMS*, |
| VARIANT*, |
| EXCEPINFO*, |
| UINT*) override; |
| }; |
| |
| } // namespace test |
| } // namespace win |
| } // namespace base |
| |
| #endif // BASE_WIN_DISPATCH_STUB_H_ |