rodecomp/Source/Client/Browser/WebEventReceiver.h
ragnarok-clanker a47d20f8be Reconstruct readable C++ and organize cohesive source subsystems
Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.

Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
2026-10-25 07:42:41 +00:00

35 lines
1.2 KiB
C++

#ifndef RAGNAROK_SOURCE_CLIENT_BROWSER_WEBEVENTRECEIVER_H
#define RAGNAROK_SOURCE_CLIENT_BROWSER_WEBEVENTRECEIVER_H
#include "Client/Browser/BrowserInterface.h"
struct BrowserRegistry;
class CWebEventReceiver final : public IDispatch {
public:
explicit CWebEventReceiver(BrowserRegistry& registry);
bool Register(IWebBrowser2* browser, HWND host);
HRESULT Disconnect();
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void** output) override;
ULONG STDMETHODCALLTYPE AddRef() override;
ULONG STDMETHODCALLTYPE Release() override;
HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT* count) override;
HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT index, LCID locale, ITypeInfo** output) override;
HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID iid, LPOLESTR* names, UINT count, LCID locale, DISPID* ids) override;
HRESULT STDMETHODCALLTYPE
Invoke(DISPID id, REFIID iid, LCID locale, WORD flags, DISPPARAMS* args, VARIANT* result, EXCEPINFO* error, UINT* argumentError) override;
private:
~CWebEventReceiver();
LONG m_references;
IWebBrowser2* m_browser;
DWORD m_browserCookie;
IDispatch* m_document;
DWORD m_documentCookie;
HWND m_host;
BrowserRegistry& m_registry;
void ReleaseDocument();
};
#endif