#pragma once struct ISwapChain; struct __declspec(novtable) __declspec(uuid("{3ABA91B1-9B3E-4ae6-B5EA-EB24E77B6097}")) IWindow { virtual ~IWindow() {}; virtual void Initialize(const string16& argTitle, int argWidth, int argHeight, bool argFullscreen) = 0; virtual LRESULT ProcessMessage(UINT argMessage, WPARAM argWParam, LPARAM argLParam) = 0; virtual void SwapBuffers() = 0; virtual void set_Active(bool argActive) = 0; virtual bool get_Active() = 0; virtual void set_Fullscreen(bool argFullscreen) = 0; virtual bool get_Fullscreen() = 0; virtual void set_VSync(bool argUseVSync) = 0; virtual bool get_VSync() = 0; virtual void set_DeviceContext(HDC argDeviceContext) = 0; virtual HDC get_DeviceContext() = 0; virtual void set_Title(const string16& argTitle) = 0; virtual string16 get_Title() = 0; virtual HWND get_Handle() = 0; virtual ISwapChain& get_SwapChain() const = 0; };