Private Declare Function GetDesktopWindow Lib "user32" () As LongPrivate Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As LongPrivate Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, _ ByVal hDC As Long) As LongPrivate Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, _ ByVal nIndex As Long) As LongPrivate Const BITSPIXEL = 12Private Const PLANES = 14' returns the max number of colors supported by the video cardFunction MaxSystemColors() As Long Dim hWnd As Long Dim hDC As Long Dim bitsPerPixel As Long Dim colorPlanes As Long Dim bits As Integer ' get the device context of the desktop window hWnd = GetDesktopWindow() hDC = GetDC(hWnd) ' the number of bits per pixels bitsPerPixel = GetDeviceCaps(hDC, BITSPIXEL) ' the number of color planes colorPlanes = GetDeviceCaps(hDC, PLANES) ' number of bits for each pixel bits = bitsPerPixel * colorPlanes ' no video card has more than 1.6 million colors If bits > 24 Then bits = 24 ' evaluate the result MaxSystemColors = 2 ^ bits ' release the device context ReleaseDC hWnd, hDCEnd Function