forked from MicrosoftEdge/WebView2Samples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRemoteObjectSampleImpl.h
More file actions
53 lines (39 loc) · 1.81 KB
/
RemoteObjectSampleImpl.h
File metadata and controls
53 lines (39 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright (C) Microsoft Corporation. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include "stdafx.h"
#include <functional>
#include <string>
#include <wrl\client.h>
#include "RemoteObjectSample_h.h"
class RemoteObjectSample : public Microsoft::WRL::RuntimeClass<
Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
IRemoteObjectSample, IDispatch>
{
public:
typedef std::function<void(void)> Callback;
typedef std::function<void(Callback)> RunCallbackAsync;
RemoteObjectSample(RunCallbackAsync runCallbackAsync);
// IRemoteObjectSample implementation
STDMETHODIMP MethodWithParametersAndReturnValue(
BSTR stringParameter, INT integerParameter, BSTR* stringResult) override;
// Demonstrate getting and setting a property.
STDMETHODIMP get_Property(BSTR* stringResult) override;
STDMETHODIMP put_Property(BSTR stringValue) override;
// Demonstrate native calling back into JavaScript.
STDMETHODIMP CallCallbackAsynchronously(IDispatch* callbackParameter) override;
// IDispatch implementation
STDMETHODIMP GetTypeInfoCount(UINT* pctinfo) override;
STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) override;
STDMETHODIMP GetIDsOfNames(
REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) override;
STDMETHODIMP Invoke(
DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) override;
private:
std::wstring m_propertyValue;
wil::com_ptr<IDispatch> m_callback;
RunCallbackAsync m_runCallbackAsync;
wil::com_ptr<ITypeLib> m_typeLib;
};