The VIDEOMODEINFO data structure receives information for the current video monitor.
Note: The cb and ulColors fields are new to VIDEDOMODEINFO. The color depth field (ulColors) was introduced to differentiate between pixel and color depth.
typedef struct _VIDEOMODEINFO { ULONG cb; /* Size of the structure. */ MODEID miModeId; /* Used to make a SetMode request. */ USHORT usType; /* Flag indicating mode type. */ USHORT usInt10ModeSet; /* Interrupt 10 mode. */ USHORT usXResolution; /* Horizontal pixels. */ USHORT usYResolution; /* Vertical scanlines. */ ULONG ulBufferAddress; /* Physical address of VRAM. */ ULONG ulApertureSize; /* VRAM aperture. */ ULONG ulColors; /* Color depth. */ BYTE bBitsPerPixel; /* Pixel depth. */ BYTE bBitPlanes; /* Number of planes. */ BYTE bXCharSize; /* Font width. */ BYTE bYCharSize; /* Font height. */ USHORT usBytesPerScanLine; /* Number of bytes per scan line. */ USHORT usTextRows; /* Number of text rows. */ ULONG ulPageLength; /* Number of bytes to save a plane. */ ULONG ulSavesize; /* Total bytes of VRAM to save. */ BYTE bVrtRefresh; /* Vertical refresh rate. */ BYTE bHrtRefresh; /* Horizontal refresh rate. */ BYTE bVrtPolPos; /* Vertical polarity. */ BYTE bHrtPolPos; /* Horizontal polarity. */ USHORT usScrnTop; /* Vertical blanking away from the top, in line counts. */ USHORT usScrnBottom; /* Vertical blanking away from the bottom, in line counts. */ USHORT usScrnLeft; /* Horizontal blanking away from the left, in pixel counts. */ USHORT usScrnRight; /* Horizontal blanking away from the right, in pixel counts. */ CHAR szColorFormat[8]; /* Color format string for true color or high-color modes. */ CHAR szColorWeight[8]; /* Color weight string for true color or high-color modes. */ } VIDEOMODEINFO; typedef VIDEOMODEINFO * FAR * PVIDEOMODEINFO ;