   DXUT question
  Hello, I'm using DXUT to create a D3D window. Everything works when I declare the callbacks globally, but I'm trying to write a helper class to simplify my code.class D3DWindow{public:// Constructors/DestructorsD3DWindow(void);~D3DWindow(void);void Create(void);void Destroy(void);// Generic callbacksLRESULT CALLBACK MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool* pbNoFurtherProcessing, void* pUserContext);bool CALLBACK ModifyDeviceSettings(DXUTDeviceSettings* pDeviceSettings, void* pUserContext);void CALLBACK OnFrameMove(double fTime, float fElapsedTime, void* pUserContext);void CALLBACK OnKeyboard(UINT nChar, bool bKeyDown, bool bAltDown, void* pUserContext);void CALLBACK OnMouse(bool bLeftButtonDown, bool bRightButtonDown, bool bMiddleButtonDown, bool bSideButton1Down, bool bSideButton2Down, int nMouseWheelDelta, int xPos, int yPos, void* pUserContext);bool CALLBACK OnDeviceRemoved(void* pUserContext);void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext);// D3D9 callbacksbool CALLBACK IsD3D9DeviceAcceptable(D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, bool bWindowed, void* pUserContext);HRESULT CALLBACK OnD3D9CreateDevice(IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext);HRESULT CALLBACK OnD3D9ResetDevice(IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext);void CALLBACK OnD3D9FrameRender(IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext);void CALLBACK OnD3D9LostDevice(void* pUserContext);void CALLBACK OnD3D9DestroyDevice(void* pUserContext);// D3D11 callbacksbool CALLBACK IsD3D11DeviceAcceptable(const CD3D11EnumAdapterInfo *AdapterInfo, UINT Output, const CD3D11EnumDeviceInfo *DeviceInfo, DXGI_FORMAT BackBufferFormat, bool bWindowed, void* pUserContext);HRESULT CALLBACK OnD3D11CreateDevice(ID3D11Device* pd3dDevice, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext);HRESULT CALLBACK OnD3D11ResizedSwapChain(ID3D11Device* pd3dDevice, IDXGISwapChain* pSwapChain, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext);void CALLBACK OnD3D11FrameRender(ID3D11Device* pd3dDevice, ID3D11DeviceContext* pd3dImmediateContext, double fTime, float fElapsedTime, void* pUserContext);void CALLBACK OnD3D11ReleasingSwapChain(void* pUserContext);void CALLBACK OnD3D11DestroyDevice(void* pUserContext);}D3DWindow::D3DWindow(void){// Set generic DXUT callbacksDXUTSetCallbackMsgProc(MsgProc);DXUTSetCallbackDeviceChanging(ModifyDeviceSettings);DXUTSetCallbackFrameMove(OnFrameMove);DXUTSetCallbackKeyboard(OnKeyboard);DXUTSetCallbackMouse(OnMouse);DXUTSetCallbackDeviceRemoved(OnDeviceRemoved);// Set D3D9 DXUT callbacksDXUTSetCallbackD3D9DeviceAcceptable(IsD3D9DeviceAcceptable);DXUTSetCallbackD3D9DeviceCreated(OnD3D9CreateDevice);DXUTSetCallbackD3D9DeviceReset(OnD3D9ResetDevice);DXUTSetCallbackD3D9FrameRender(OnD3D9FrameRender);DXUTSetCallbackD3D9DeviceLost(OnD3D9LostDevice);DXUTSetCallbackD3D9DeviceDestroyed(OnD3D9DestroyDevice);// Set D3D11 DXUT callbacksDXUTSetCallbackD3D11DeviceAcceptable(IsD3D11DeviceAcceptable);DXUTSetCallbackD3D11DeviceCreated(OnD3D11CreateDevice);DXUTSetCallbackD3D11SwapChainResized(OnD3D11ResizedSwapChain);DXUTSetCallbackD3D11FrameRender(OnD3D11FrameRender);DXUTSetCallbackD3D11SwapChainReleasing(OnD3D11ReleasingSwapChain);DXUTSetCallbackD3D11DeviceDestroyed(OnD3D11DestroyDevice);}void D3DWindow::Create(void){// Initialize DXUTDXUTInit(true, true, NULL);DXUTSetCursorSettings(true, true);DXUTCreateWindow(L"D3D Window");DXUTCreateDevice(D3D_FEATURE_LEVEL_10_0, true, 800, 600);DXUTMainLoop();}The problem is I can't use the callbacks as member functions, it gives me this error: "C3867: 'D3DWindow::MsgProc': function call missing argument list; use '&D3DWindow::MsgProc' to create a pointer to member"When I try to use pointers I get a different error: "C2276: '&' : illegal operation on bound member function expression"Is there any way around this without having to declare the callbacks globally? Thanks[Edited by - majek on April 13, 2010 10:11:30 AM]
  would it be better to just get rid of DXUT and create the window myself?   