diff --git a/include/monitor.h b/include/monitor.h
new file mode 100644
index 0000000..ae5f8e1
--- /dev/null
+++ b/include/monitor.h
@@ -0,0 +1,33 @@
+/*
+ * Monitor definitions
+ *
+ */
+
+#ifndef __WINE_MONITOR_H
+#define __WINE_MONITOR_H
+
+struct tagMONITOR_DRIVER;
+
+typedef struct tagMONITOR 
+{
+  struct tagMONITOR_DRIVER *pDriver;
+  void                     *pDriverData;
+} MONITOR;
+
+typedef struct tagMONITOR_DRIVER {
+  void (*pInitialize)(MONITOR *);
+  void (*pFinalize)(MONITOR *);
+  int  (*pGetWidth)(MONITOR *);
+  int  (*pGetHeight)(MONITOR *);
+  int  (*pGetDepth)(MONITOR *);
+} MONITOR_DRIVER;
+
+extern MONITOR MONITOR_PrimaryMonitor;
+
+extern void MONITOR_Initialize(MONITOR *pMonitor);
+extern void MONITOR_Finalize(MONITOR *pMonitor);
+extern int MONITOR_GetWidth(MONITOR *pMonitor);
+extern int MONITOR_GetHeight(MONITOR *pMonitor);
+extern int MONITOR_GetDepth(MONITOR *pMonitor);
+
+#endif /* __WINE_MONITOR_H */
diff --git a/windows/multimon.c b/windows/multimon.c
index de7c2b8..6938c25 100644
--- a/windows/multimon.c
+++ b/windows/multimon.c
@@ -4,10 +4,57 @@
  * Copyright 1998 Turchanov Sergey
  */
 
+#include "monitor.h"
 #include "windows.h"
 
+/**********************************************************************/
+
 #define xPRIMARY_MONITOR ((HMONITOR)0x12340042)
 
+MONITOR MONITOR_PrimaryMonitor;
+
+/***********************************************************************
+ *              MONITOR_Initialize
+ */
+void MONITOR_Initialize(MONITOR *pMonitor)
+{
+  pMonitor->pDriver->pInitialize(pMonitor);
+}
+
+/***********************************************************************
+ *              MONITOR_Finalize
+ */
+void MONITOR_Finalize(MONITOR *pMonitor)
+{
+  pMonitor->pDriver->pFinalize(pMonitor);
+}
+
+/***********************************************************************
+ *              MONITOR_GetWidth
+ */
+int MONITOR_GetWidth(MONITOR *pMonitor)
+{
+  return pMonitor->pDriver->pGetWidth(pMonitor);
+}
+
+/***********************************************************************
+ *              MONITOR_GetHeight
+ */
+int MONITOR_GetHeight(MONITOR *pMonitor)
+{
+  return pMonitor->pDriver->pGetHeight(pMonitor);
+}
+
+/***********************************************************************
+ *              MONITOR_GetDepth
+ */
+int MONITOR_GetDepth(MONITOR *pMonitor)
+{
+  return pMonitor->pDriver->pGetDepth(pMonitor);
+}
+
+/**********************************************************************/
+
 HMONITOR WINAPI MonitorFromPoint(POINT32 ptScreenCoords, DWORD dwFlags)
 {
     if ((dwFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST)) ||
