Exemplo n.º 1
0
	LRESULT CALLBACK OpenGLWindow::StaticWindowProc( HWND p_WindowHandle,
		UINT p_Message, WPARAM p_WordParam, LPARAM p_LongParam )
	{
		LONG_PTR UserData = GetWindowLongPtr( p_WindowHandle, GWLP_USERDATA );
		OpenGLWindow *pThis = reinterpret_cast< OpenGLWindow * >( UserData );
		
		assert( pThis );
		assert( p_WindowHandle == pThis->m_WindowHandle );

		return pThis->WindowProc( p_Message, p_WordParam, p_LongParam );
	}
Exemplo n.º 2
0
	LRESULT CALLBACK OpenGLWindow::InitialWindowProc( HWND p_WindowHandle,
		UINT p_Message, WPARAM p_WordParam, LPARAM p_LongParam )
	{
		if( p_Message == WM_NCCREATE )
		{
			LPCREATESTRUCT CreateStruct =
				reinterpret_cast< LPCREATESTRUCT >( p_LongParam );
			void *pCreateParam = CreateStruct->lpCreateParams;
			OpenGLWindow *pThis =
				reinterpret_cast< OpenGLWindow * >( pCreateParam );
			pThis->m_WindowHandle = p_WindowHandle;

			SetWindowLongPtr( pThis->m_WindowHandle, GWLP_USERDATA,
				reinterpret_cast< LONG_PTR >( pThis ) );
			SetWindowLongPtr( pThis->m_WindowHandle, GWLP_WNDPROC,
				reinterpret_cast< LONG_PTR >(
					&OpenGLWindow::StaticWindowProc ) );

			return pThis->WindowProc( p_Message, p_WordParam, p_LongParam );
		}

		return DefWindowProc( p_WindowHandle, p_Message, p_WordParam,
			p_LongParam );
	}