[/quote]
Теоретически, c помощью функции API GetDeviceCaps можно получить размеры экрана как в миллиметрах так и в пикселах. Дальше, надеюсь, понятно. 
[/quote]
Всегда пользуюсь GetDeviceCaps(), чего и вам советую.
хелп чё пишет:
The GetDeviceCaps function retrieves device-specific information for the specified device. 
int GetDeviceCaps(
  HDC hdc,     // handle to DC
  int nIndex   // index of capability
);
вот полезные индексы:
...
HORZSIZE     Width, in millimeters, of the physical screen. 
VERTSIZE     Height, in millimeters, of the physical screen. 
HORZRES      Width, in pixels, of the screen. 
VERTRES      Height, in raster lines, of the screen. 
LOGPIXELSX   Number of pixels per logical inch along the screen width. In a system with multiple display monitors, this value is the same for all monitors. 
LOGPIXELSY      Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors. 
...
Но там, помнится, был какой-то баг от мелкомягких, и приходилось действовать через GetSystemMetrics. 
Реально информацию заполняет дисплейный драйвер. Если драйвер прошёл WHQL, все эти параметры обязательно будут правильными. В неофициальных драйверах, просочившихся в инет, может быть и проруха. Так что не спешите пинать MS в этом случае...