¿Cómo obtengo las dimensiones (RECT) de todas las pantallas en la API de win32?

Estoy escribiendo una aplicación para el equipo de pruebas. Lo que hace esta aplicación es que le permite tomar una captura de pantalla de cualquier parte de la pantalla (y luego la carga al servidor del equipo de pruebas con comentarios).

Tomar la captura de pantalla implica seleccionar la región en la pantalla para realizar la captura de pantalla. Para esto estoy creando una ventana semitransparente y superponiéndola en toda la pantalla. Actualmente estoy usandoGetDesktopWindow() yGetWindowRect() para obtener las dimensiones de la pantalla, pero esto no funciona en entornos de múltiples pantallas.

¿Cómo superpongo una ventana sobre todas las pantallas posibles?

Las configuraciones de pantalla pueden ser bastante exóticas, tales como:

     [LCD]
[LCD][LCD][LCD]

(4 pantallas lcd - una en la parte superior, 3 en la parte inferior)

O

[LCD]     [LCD]
[LCD][LCD][LCD]
[LCD]     [LCD]

(7 pantallas lcd - 3 a la derecha, 3 a la izquierda, 1 en el centro).

Etc.

¿Alguien sabe como podría superponer 1 ventana todas las pantallas? Me pregunto cómo se verían las dimensiones en el primer ejemplo exótico, cuando no hay una pantalla en la fila superior izquierda y derecha.

Tal vez debería crear una ventana de superposición por pantalla LCD?

¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta