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 ;