hwnd的头文件c语言,请问 HWND 结构的原型定义在那个头文件,或者告诉是怎样定义的?谢谢了,非常着急!!...

这篇博客主要介绍了Windows API中HWND的定义,包括MAKEWORD、MAKELONG等宏的使用,以及一系列DECLARE_HANDLE定义的句柄类型。内容涵盖了HGDIOBJ、HBITMAP、HDC等常见窗口和图形对象的句柄类型声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#8

#define MAKEWORD(a, b)      ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) <

#define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) <

#define LOWORD(l)           ((WORD)(l))

#define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))

#define LOBYTE(w)           ((BYTE)(w))

#define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))

#ifndef WIN_INTERNAL

DECLARE_HANDLE            (HWND);

DECLARE_HANDLE            (HHOOK);

#ifdef WINABLE

DECLARE_HANDLE            (HEVENT);

#endif

#endif

typedef WORD                ATOM;

typedef HANDLE NEAR         *SPHANDLE;

typedef HANDLE FAR          *LPHANDLE;

typedef HANDLE              HGLOBAL;

typedef HANDLE              HLOCAL;

typedef HANDLE              GLOBALHANDLE;

typedef HANDLE              LOCALHANDLE;

#ifndef _MAC

typedef int (FAR WINAPI *FARPROC)();

typedef int (NEAR WINAPI *NEARPROC)();

typedef int (WINAPI *PROC)();

#else

typedef int (CALLBACK *FARPROC)();

typedef int (CALLBACK *NEARPROC)();

typedef int (CALLBACK *PROC)();

#endif

#if !defined(_MAC) || !defined(GDI_INTERNAL)

#ifdef STRICT

typedef void NEAR* HGDIOBJ;

#else

DECLARE_HANDLE(HGDIOBJ);

#endif

#endif

#if !defined(_MAC) || !defined(WIN_INTERNAL)

DECLARE_HANDLE(HACCEL);

#endif

#if !defined(_MAC) || !defined(GDI_INTERNAL)

DECLARE_HANDLE(HBITMAP);

DECLARE_HANDLE(HBRUSH);

#endif

#if(WINVER >= 0x0400)

DECLARE_HANDLE(HCOLORSPACE);

#endif /* WINVER >= 0x0400 */

#if !defined(_MAC) || !defined(GDI_INTERNAL)

DECLARE_HANDLE(HDC);

#endif

DECLARE_HANDLE(HGLRC);          // OpenGL

DECLARE_HANDLE(HDESK);

DECLARE_HANDLE(HENHMETAFILE);

#if !defined(_MAC) || !defined(GDI_INTERNAL)

DECLARE_HANDLE(HFONT);

#endif

DECLARE_HANDLE(HICON);

#if !defined(_MAC) || !defined(WIN_INTERNAL)

DECLARE_HANDLE(HMENU);

#endif

DECLARE_HANDLE(HMETAFILE);

DECLARE_HANDLE(HINSTANCE);

typedef HINSTANCE HMODULE;      /* HMODULEs can be used in place of HINSTANCEs */

#if !defined(_MAC) || !defined(GDI_INTERNAL)

DECLARE_HANDLE(HPALETTE);

DECLARE_HANDLE(HPEN);

#endif

DECLARE_HANDLE(HRGN);

DECLARE_HANDLE(HRSRC);

DECLARE_HANDLE(HSTR);

DECLARE_HANDLE(HTASK);

DECLARE_HANDLE(HWINSTA);

DECLARE_HANDLE(HKL);

#if(WINVER >= 0x0500)

#ifndef _MAC

DECLARE_HANDLE(HMONITOR);

DECLARE_HANDLE(HTERMINAL);

DECLARE_HANDLE(HWINEVENTHOOK);

#endif

#endif /* WINVER >= 0x0500 */

#ifndef _MAC

typedef int HFILE;

typedef HICON HCURSOR;      /* HICONs & HCURSORs are polymorphic */

#else

typedef short HFILE;

DECLARE_HANDLE(HCURSOR);    /* HICONs & HCURSORs are not polymorphic */

#endif

typedef DWORD   COLORREF;

typedef DWORD   *LPCOLORREF;

#define HFILE_ERROR ((HFILE)-1)

typedef struct tagRECT

{

LONG    left;

LONG    top;

LONG    right;

LONG    bottom;

} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

typedef const RECT FAR* LPCRECT;

typedef struct _RECTL       /* rcl */

{

LONG    left;

LONG    top;

LONG    right;

LONG    bottom;

} RECTL, *PRECTL, *LPRECTL;

typedef const RECTL FAR* LPCRECTL;

typedef struct tagPOINT

{

LONG  x;

LONG  y;

} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

typedef struct _POINTL      /* ptl  */

{

LONG  x;

LONG  y;

} POINTL, *PPOINTL;

typedef struct tagSIZE

{

LONG        cx;

LONG        cy;

} SIZE, *PSIZE, *LPSIZE;

typedef SIZE               SIZEL;

typedef SIZE               *PSIZEL, *LPSIZEL;

typedef struct tagPOINTS

{

#ifndef _MAC

SHORT   x;

SHORT   y;

#else

SHORT   y;

SHORT   x;

#endif

} POINTS, *PPOINTS, *LPPOINTS;

/* mode selections for the device mode function */

#define DM_UPDATE           1

#define DM_COPY             2

#define DM_PROMPT           4

#define DM_MODIFY           8

#define DM_IN_BUFFER        DM_MODIFY

#define DM_IN_PROMPT        DM_PROMPT

#define DM_OUT_BUFFER       DM_COPY

#define DM_OUT_DEFAULT      DM_UPDATE

/* device capabilities indices */

#define DC_FIELDS           1

#define DC_PAPERS           2

#define DC_PAPERSIZE        3

#define DC_MINEXTENT        4

#define DC_MAXEXTENT        5

#define DC_BINS             6

#define DC_DUPLEX           7

#define DC_SIZE             8

#define DC_EXTRA            9

#define DC_VERSION          10

#define DC_DRIVER           11

#define DC_BINNAMES         12

#define DC_ENUMRESOLUTIONS  13

#define DC_FILEDEPENDENCIES 14

#define DC_TRUETYPE         15

#define DC_PAPERNAMES       16

#define DC_ORIENTATION      17

#define DC_COPIES           18

#ifdef __cplusplus

}

#endif

#endif /* _WINDEF_ */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值