Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
* File name: * bmpdb.h * Contents: * bmpdb structures * * Copyright (C) 1998-1999 Microsoft Corp. --*/ #define MAX_STRING_LENGTH 128
typedef long FOFFSET;
typedef struct _BMPENTRY { UINT nDataSize; // Total size of pData (bmpSize+bmiSize)
UINT bmpSize; // Size of bits. Located at pData
// After BITMAPINFO (if any)
UINT bmiSize; // Size of BITMAPINFO header
// if zero -> monocrome bitmap
// BITMAPINFO is located in begining of
// pData
UINT xSize, ySize; UINT nChkSum; BOOL bDeleted; // Valuable in DB
char szComment[MAX_STRING_LENGTH]; HBITMAP hBitmap; // Valuable in linked list
FOFFSET FOffsMe; // My pointer in DB
FOFFSET FOffsNext; // DB
struct _BMPENTRY *pNext; // linked list
PVOID pData; // Pointer to BMP data, in DB it is
// immediatly after this structure
} BMPENTRY, *PBMPENTRY;
typedef struct _GROUPENTRY { WCHAR WText[MAX_STRING_LENGTH]; BOOL bDeleted;
FOFFSET FOffsMe; // My pointer in DB
FOFFSET FOffsBmp; // DB
PBMPENTRY pBitmap; // linked list
FOFFSET FOffsNext; // DB
struct _GROUPENTRY *pNext; // linked list
} GROUPENTRY, *PGROUPENTRY;
typedef BOOL (_cdecl *PFNENUMGROUPS)(FOFFSET nOff, PGROUPENTRY pGroup, PVOID pParam); typedef BOOL (_cdecl *PFNENUMBITMAPS)(FOFFSET nOff, PBMPENTRY pBitmap, PVOID pParam);
BOOL OpenDB(BOOL bWrite); VOID CloseDB(VOID); BOOL ReadGroup(FOFFSET nOffset, PGROUPENTRY pGroup); BOOL WriteGroup(FOFFSET nOffset, PGROUPENTRY pGroup); VOID EnumerateGroups(PFNENUMGROUPS pfnEnumGrpProc, PVOID pParam); BOOL ReadBitmapHeader(FOFFSET nOffset, PBMPENTRY pBitmap); BOOL WriteBitmapHeader(FOFFSET nOffset, PBMPENTRY pBitmap); PBMPENTRY ReadBitmap(FOFFSET nOffset); VOID FreeBitmap(PBMPENTRY pBmp); VOID EnumerateBitmaps(FOFFSET nOffset, PFNENUMBITMAPS pfnEnumProc, PVOID pParam); FOFFSET FindGroup(LPWSTR szWText); FOFFSET FindBitmap(LPWSTR szWText, char *szComment);
UINT CheckSum(PVOID pData, UINT nLen);
BOOL AddBitMap(PBMPENTRY pBitmap, LPCWSTR szWText); BOOL AddBitMapA(PBMPENTRY pBitmap, LPCSTR szAText);
BOOL DeleteBitmap(LPWSTR szWText, char *szComment); BOOL DeleteBitmapByPointer(FOFFSET nBmpOffs); BOOL DeleteGroupByPointer(FOFFSET nGrpOffs);
PGROUPENTRY GetGroupList(VOID); VOID FreeGroupList(PGROUPENTRY pList); PBMPENTRY GetBitmapList(HDC hDC, FOFFSET nOffs); VOID FreeBitmapList(PBMPENTRY pList);
|