mirror of https://github.com/tongzx/nt5src
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.
87 lines
2.9 KiB
87 lines
2.9 KiB
/*
|
|
**************************************************************************
|
|
*
|
|
* draw.h header file
|
|
*
|
|
*
|
|
*
|
|
***************************************************************************
|
|
*/
|
|
|
|
#include <mmsystem.h>
|
|
|
|
// Function Prototypes
|
|
|
|
LRESULT PASCAL dfDispFrameWndFn(HWND,UINT,WPARAM,LPARAM);
|
|
BOOL PASCAL RegSndCntrlClass(LPCTSTR);
|
|
BOOL dfDrawRect(HDC, RECT);
|
|
BOOL DIBInfo(HANDLE hbi,LPBITMAPINFOHEADER lpbi);
|
|
HPALETTE CreateBIPalette(LPBITMAPINFOHEADER lpbi);
|
|
WORD PaletteSize(VOID FAR * pv);
|
|
WORD NumDIBColors (VOID FAR * pv);
|
|
WORD WINAPI bmfGetNumDIBs(LPTSTR lpszFile);
|
|
WORD WINAPI bmfNumDIBColors(HANDLE hDib);
|
|
HPALETTE WINAPI bmfCreateDIBPalette(HANDLE hDib);
|
|
HANDLE WINAPI bmfDIBFromBitmap(HBITMAP hBmp, DWORD biStyle,
|
|
WORD biBits,HPALETTE hPal);
|
|
HBITMAP WINAPI bmfBitmapFromDIB(HANDLE hDib, HPALETTE hPal);
|
|
HBITMAP WINAPI bmfBitmapFromIcon (HICON hIcon, DWORD dwColor);
|
|
BOOL WINAPI bmfDrawBitmap(HDC hdc, int xpos, int ypos,
|
|
HBITMAP hBmp, DWORD rop);
|
|
DWORD WINAPI bmfDIBSize(HANDLE hDIB);
|
|
BOOL WINAPI bmfDrawBitmapSize (HDC hdc, int xpos, int ypos,
|
|
int xSize, int ySize, HBITMAP hBmp, DWORD rop);
|
|
|
|
// Defines
|
|
|
|
#define DF_DISP_EXTRA 8
|
|
#define DF_GET_BMPHANDLE (HBITMAP)(GetWindowLongPtr(hWnd, 0))
|
|
#define DF_SET_BMPHANDLE(x) (SetWindowLongPtr(hWnd, 0, (LONG_PTR)(x)))
|
|
#ifndef _WIN64
|
|
#define DF_GET_BMPPAL (HPALETTE)(GetWindowLong(hWnd, 4))
|
|
#define DF_SET_BMPPAL(x) (SetWindowLong(hWnd, 4, (LONG)(x)))
|
|
#else
|
|
#define DF_GET_BMPPAL (HPALETTE)(GetWindowLongPtr(hWnd, sizeof(UINT_PTR)))
|
|
#define DF_SET_BMPPAL(x) (SetWindowLongPtr(hWnd, sizeof(UINT_PTR), (LONG_PTR)(x)))
|
|
#endif
|
|
|
|
/* Help Macros */
|
|
#define DF_MID(x,y) (((x)+(y))/2)
|
|
|
|
#define DISPICONCLASS TEXT("WSS_DispIcon")
|
|
#define DISPFRAMCLASS TEXT("WSS_DispFrame")
|
|
|
|
/* Header signatutes for various resources */
|
|
#define BFT_ICON 0x4349 /* 'IC' */
|
|
#define BFT_BITMAP 0x4d42 /* 'BM' */
|
|
#define BFT_CURSOR 0x5450 /* 'PT' */
|
|
|
|
/* macro to determine if resource is a DIB */
|
|
#define ISDIB(bft) ((bft) == BFT_BITMAP)
|
|
|
|
/* Macro to align given value to the closest DWORD (unsigned long ) */
|
|
#define ALIGNULONG(i) (((i)+3)/4*4)
|
|
|
|
/* Macro to determine to round off the given value to the closest byte */
|
|
#define WIDTHBYTES(i) (((i)+31)/32*4)
|
|
|
|
#define PALVERSION 0x300
|
|
#define MAXPALETTE 256 /* max. # supported palette entries */
|
|
|
|
|
|
//******** DISPFRAM ********************************************************
|
|
|
|
// DispFrame Control messages.
|
|
|
|
#define DF_PM_SETBITMAP (WM_USER+1)
|
|
|
|
/* Parent Window Message string */
|
|
|
|
#define DF_WMDISPFRAME TEXT("PM_DISPFRAME")
|
|
|
|
#define DISP_DIB_CHUNK 1
|
|
#define DISP_TEXT_CHUNK 2
|
|
#define LIST_INFO_CHUNK 4
|
|
|
|
#define MAXDESCSIZE 4095
|
|
#define MAXLABELSIZE 255
|