rodecomp/Source/Client/BrowserDocumentUI.h
2026-10-24 00:35:19 +00:00

46 lines
2 KiB
C++

#ifndef RAGNAROK_SOURCE_CLIENT_BROWSERDOCUMENTUI_H
#define RAGNAROK_SOURCE_CLIENT_BROWSERDOCUMENTUI_H
// clang-format off
#include <windows.h>
#include <ole2.h>
#include <mshtmhst.h>
// clang-format on
// Site-owned IDocHostUIHandler tear-off. Identity delegates to the borrowed
// site; reference calls do not manage lifetime. Unwritten outputs stay unwritten.
class BrowserDocumentUI final : public IDocHostUIHandler {
public:
explicit BrowserDocumentUI(IUnknown& site) : m_site(site) {
}
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void** output) override;
ULONG STDMETHODCALLTYPE AddRef() override;
ULONG STDMETHODCALLTYPE Release() override;
HRESULT STDMETHODCALLTYPE ShowContextMenu(DWORD id, POINT* point, IUnknown* reserved, IDispatch* dispatch) override;
HRESULT STDMETHODCALLTYPE GetHostInfo(DOCHOSTUIINFO* info) override;
HRESULT STDMETHODCALLTYPE ShowUI(
DWORD id,
IOleInPlaceActiveObject* active,
IOleCommandTarget* commands,
IOleInPlaceFrame* frame,
IOleInPlaceUIWindow* document
) override;
HRESULT STDMETHODCALLTYPE HideUI() override;
HRESULT STDMETHODCALLTYPE UpdateUI() override;
HRESULT STDMETHODCALLTYPE EnableModeless(BOOL enable) override;
HRESULT STDMETHODCALLTYPE OnDocWindowActivate(BOOL activate) override;
HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(BOOL activate) override;
HRESULT STDMETHODCALLTYPE ResizeBorder(const RECT* border, IOleInPlaceUIWindow* window, BOOL frame) override;
HRESULT STDMETHODCALLTYPE TranslateAccelerator(MSG* message, const GUID* group, DWORD command) override;
HRESULT STDMETHODCALLTYPE GetOptionKeyPath(LPOLESTR* path, DWORD reserved) override;
HRESULT STDMETHODCALLTYPE GetDropTarget(IDropTarget* target, IDropTarget** replacement) override;
HRESULT STDMETHODCALLTYPE GetExternal(IDispatch** dispatch) override;
HRESULT STDMETHODCALLTYPE TranslateUrl(DWORD flags, OLECHAR* url, OLECHAR** translated) override;
HRESULT STDMETHODCALLTYPE FilterDataObject(IDataObject* data, IDataObject** filtered) override;
private:
IUnknown& m_site;
};
#endif