#pragma once

#include "IServiceLocator.h"

struct IDirect3DDevice9;
class CDXUTControl;

struct __declspec(novtable) __declspec(uuid("{B139E407-2350-4946-A364-AB0668262F60}")) IUiHandler
	: public IObject
{
	//virtual void OnUiEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext) = 0;
};


struct __declspec(novtable) __declspec(uuid("{99B9B218-9756-4e01-9E2A-DDDA779F5E29}")) IUserInterface
	: public IService
{
	virtual IDirect3DDevice9* get_Device() const = 0;
	virtual void set_Device(IDirect3DDevice9* ar_Device_) = 0;
	virtual void RenderMenu()= 0;

	virtual HHOOK get_GetMessageHook() const = 0;
	virtual bool get_IsMenuModeActive() const = 0;
	virtual void set_MenuModeActiveState(bool ab_State) = 0;

	virtual IUiHandler* get_UiHandler() const = 0;

	virtual void UpdateActivationState() = 0;
	virtual bool ProcessUiMessage(HWND ah_Wnd, UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;

	virtual void set_Active(bool ab_State) = 0;
	virtual bool get_Active() const = 0;
};

