WindowsXP-SP1/shell/osshell/control/mmsys/draw.h
2020-09-30 16:53:49 +02:00

88 lines
2.9 KiB
C

/*
**************************************************************************
*
* 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