CDC* m_pDC = GetDC(); ::wglMakeCurrent(m_pDC->m_hDC, gl3d.m_hRC); glDisable(GL_TEXTURE_2D); glDisable(GL_FOG); glDisable(GL_LIGHTING); GLint viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); float depth; GLdouble x,y,z; GLdouble modelview[16]; GLdouble projection[16]; glGetDoublev (GL_MODELVIEW_MATRIX, modelview); glGetDoublev (GL_PROJECTION_MATRIX, projection); glReadPixels(point.x,viewport[3]-point.y,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&depth); gluUnProject((GLdouble)point.x,(GLdouble)(viewport[3]-point.y),(double)depth,modelview,projection,viewport,&x,&y,&z); ::wglMakeCurrent(NULL,NULL); if (abs(depth) >= 1) { x = -2; } return x;