xref: /aosp_15_r20/external/cronet/base/win/dispatch_stub.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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