Authors: Ove Kaaven <ovek@transgaming.com>, Andrew Lewycky <andrew@transgaming.com>, Gavriel State <gav@transgaming.com>
DIB section improvements; UpdateDIBSection has been replaced with
LockDIBSection and UnlockDIBSection, for improved thread safety.
DIB_Status_* is now driver-independent, and there's a new
DIB_Status_AuxMod. Better handling of DIB surfaces with nonstandard
pitch. Slight optimization of DIBsection->display BitBlt.

diff --git a/include/bitmap.h b/include/bitmap.h
index b028bbd..6aa311b 100644
--- a/include/bitmap.h
+++ b/include/bitmap.h
@@ -18,6 +18,9 @@
 #define DDB_COPY		4
 #define DDB_SETWITHFILLER	8
 
+/* DIB Section sync state */
+enum { DIB_Status_None, DIB_Status_InSync, DIB_Status_GdiMod, DIB_Status_AppMod, DIB_Status_AuxMod };
+
   /* GDI logical bitmap object */
 typedef struct tagBITMAPOBJ
 {
@@ -37,6 +40,8 @@
   VOID (*pDeleteDIBSection)(struct tagBITMAPOBJ *);
   UINT (*pSetDIBColorTable)(struct tagBITMAPOBJ *,struct tagDC *,UINT,UINT,const RGBQUAD *);
   UINT (*pGetDIBColorTable)(struct tagBITMAPOBJ *,struct tagDC *,UINT,UINT,RGBQUAD *);
+  INT  (*pLockDIB)(struct tagBITMAPOBJ *,INT,BOOL);
+  VOID (*pUnlockDIB)(struct tagBITMAPOBJ *,BOOL);
 } BITMAP_DRIVER;
 
 extern BITMAP_DRIVER *BITMAP_Driver;