📄 pmwin.mh
字号:
typedef struct _LBOXINFO {
LONG lItemIndex;
ULONG ulItemCount;
ULONG reserved;
ULONG reserved2;
} LBOXINFO, *PLBOXINFO;
#endif
#ifdef INCL_WINMLE
#define MLS_WORDWRAP 0x00000001
#define MLS_BORDER 0x00000002
#define MLS_VSCROLL 0x00000004
#define MLS_HSCROLL 0x00000008
#define MLS_READONLY 0x00000010
#define MLS_IGNORETAB 0x00000020
#define MLS_DISABLEUNDO 0x00000040
#define MLS_LIMITVSCROLL 0x00000080
#define MLM_SETTEXTLIMIT 0x01b0
#define MLM_QUERYTEXTLIMIT 0x01b1
#define MLM_SETFORMATRECT 0x01b2
#define MLM_QUERYFORMATRECT 0x01b3
#define MLM_SETWRAP 0x01b4
#define MLM_QUERYWRAP 0x01b5
#define MLM_SETTABSTOP 0x01b6
#define MLM_QUERYTABSTOP 0x01b7
#define MLM_SETREADONLY 0x01b8
#define MLM_QUERYREADONLY 0x01b9
#define MLM_QUERYCHANGED 0x01ba
#define MLM_SETCHANGED 0x01bb
#define MLM_QUERYLINECOUNT 0x01bc
#define MLM_CHARFROMLINE 0x01bd
#define MLM_LINEFROMCHAR 0x01be
#define MLM_QUERYLINELENGTH 0x01bf
#define MLM_QUERYTEXTLENGTH 0x01c0
#define MLM_FORMAT 0x01c1
#define MLM_SETIMPORTEXPORT 0x01c2
#define MLM_IMPORT 0x01c3
#define MLM_EXPORT 0x01c4
#define MLM_DELETE 0x01c6
#define MLM_QUERYFORMATLINELENGTH 0x01c7
#define MLM_QUERYFORMATTEXTLENGTH 0x01c8
#define MLM_INSERT 0x01c9
#define MLM_SETSEL 0x01ca
#define MLM_QUERYSEL 0x01cb
#define MLM_QUERYSELTEXT 0x01cc
#define MLM_QUERYUNDO 0x01cd
#define MLM_UNDO 0x01ce
#define MLM_RESETUNDO 0x01cf
#define MLM_QUERYFONT 0x01d0
#define MLM_SETFONT 0x01d1
#define MLM_SETTEXTCOLOR 0x01d2
#define MLM_QUERYTEXTCOLOR 0x01d3
#define MLM_SETBACKCOLOR 0x01d4
#define MLM_QUERYBACKCOLOR 0x01d5
#define MLM_QUERYFIRSTCHAR 0x01d6
#define MLM_SETFIRSTCHAR 0x01d7
#define MLM_CUT 0x01d8
#define MLM_COPY 0x01d9
#define MLM_PASTE 0x01da
#define MLM_CLEAR 0x01db
#define MLM_ENABLEREFRESH 0x01dc
#define MLM_DISABLEREFRESH 0x01dd
#define MLM_SEARCH 0x01de
#define MLM_QUERYIMPORTEXPORT 0x01df
#define MLN_OVERFLOW 0x0001
#define MLN_PIXHORZOVERFLOW 0x0002
#define MLN_PIXVERTOVERFLOW 0x0003
#define MLN_TEXTOVERFLOW 0x0004
#define MLN_VSCROLL 0x0005
#define MLN_HSCROLL 0x0006
#define MLN_CHANGE 0x0007
#define MLN_SETFOCUS 0x0008
#define MLN_KILLFOCUS 0x0009
#define MLN_MARGIN 0x000a
#define MLN_SEARCHPAUSE 0x000b
#define MLN_MEMERROR 0x000c
#define MLN_UNDOOVERFLOW 0x000d
#define MLN_CLPBDFAIL 0x000f
#define MLFFMTRECT_LIMITHORZ 0x1
#define MLFFMTRECT_LIMITVERT 0x2
#define MLFFMTRECT_MATCHWINDOW 0x4
#define MLFFMTRECT_FORMATRECT 0x7
#define MLFIE_CFTEXT 0x0
#define MLFIE_NOTRANS 0x1
#define MLFIE_WINFMT 0x2
#define MLFIE_RTF 0x3
#define MLE_INDEX 0x0
#define MLE_RGB 0x1
#define MLFQS_MINMAXSEL 0
#define MLFQS_MINSEL 1
#define MLFQS_MAXSEL 2
#define MLFQS_ANCHORSEL 3
#define MLFQS_CURSORSEL 4
#define MLFEFR_RESIZE 0x01
#define MLFEFR_TABSTOP 0x02
#define MLFEFR_FONT 0x04
#define MLFEFR_TEXT 0x08
#define MLFEFR_WORDWRAP 0x10
#define MLFETL_TEXTBYTES 0x20
#define MLFMARGIN_LEFT 0x1
#define MLFMARGIN_BOTTOM 0x2
#define MLFMARGIN_RIGHT 0x3
#define MLFMARGIN_TOP 0x4
#define MLFCLPBD_TOOMUCHTEXT 0x1
#define MLFCLPBD_ERROR 0x2
#define MLFSEARCH_CASESENSITIVE 0x1
#define MLFSEARCH_SELECTMATCH 0x2
#define MLFSEARCH_CHANGEALL 0x4
typedef LONG IPT;
typedef PLONG PIPT;
typedef LONG PIX;
typedef ULONG LINE;
typedef struct _FORMATRECT {
LONG cxFormat;
LONG cyFormat;
} MLEFORMATRECT, *PFORMATRECT;
typedef struct _MLECTLDATA {
USHORT cbCtlData;
USHORT afIEFormat;
ULONG cchText;
IPT iptAnchor;
IPT iptCursor;
LONG cxFormat;
LONG cyFormat;
ULONG afFormatFlags;
PVOID pHWXCtlData;
} MLECTLDATA, *PMLECTLDATA;
typedef struct _MLEOVERFLOW {
ULONG afErrInd;
LONG nBytesOver;
LONG pixHorzOver;
LONG pixVertOver;
} MLEOVERFLOW, *POVERFLOW;
typedef struct _MLEMARGSTRUCT {
USHORT afMargins;
USHORT usMouMsg;
IPT iptNear;
} MLEMARGSTRUCT, *PMARGSTRUCT;
typedef struct _SEARCH {
USHORT cb;
PCHAR pchFind;
PCHAR pchReplace;
SHORT cchFind;
SHORT cchReplace;
IPT iptStart;
IPT iptStop;
USHORT cchFound;
} MLE_SEARCHDATA, *PMLE_SEARCHDATA;
#endif
#ifdef INCL_WINMENUS
#define MIT_END (-1)
#define MIT_NONE (-1)
#define MIT_MEMERROR (-1)
#define MIT_ERROR (-1)
#define MIT_FIRST (-2)
#define MIT_LAST (-3)
#define MID_ERROR (-1)
#define MID_NONE MIT_NONE
#define MIS_TEXT 0x0001
#define MIS_BITMAP 0x0002
#define MIS_SEPARATOR 0x0004
#define MIS_OWNERDRAW 0x0008
#define MIS_SUBMENU 0x0010
#define MIS_MULTMENU 0x0020
#define MIS_SYSCOMMAND 0x0040
#define MIS_HELP 0x0080
#define MIS_STATIC 0x0100
#define MIS_BUTTONSEPARATOR 0x0200
#define MIS_BREAK 0x0400
#define MIS_BREAKSEPARATOR 0x0800
#define MIS_GROUP 0x1000
#define MIS_SINGLE 0x2000
#define MIA_NODISMISS 0x0020
#define MIA_FRAMED 0x1000
#define MIA_CHECKED 0x2000
#define MIA_DISABLED 0x4000
#define MIA_HILITED 0x8000
#define MS_ACTIONBAR 0x0001
#define MS_TITLEBUTTON 0x0002
#define MS_VERTICALFLIP 0x0004
#define MS_CONDITIONALCASCADE 0x0040
#define PU_POSITIONONITEM 0x0001
#define PU_HCONSTRAIN 0x0002
#define PU_VCONSTRAIN 0x0004
#define PU_NONE 0x0000
#define PU_MOUSEBUTTON1DOWN 0x0008
#define PU_MOUSEBUTTON2DOWN 0x0010
#define PU_MOUSEBUTTON3DOWN 0x0018
#define PU_SELECTITEM 0x0020
#define PU_MOUSEBUTTON1 0x0040
#define PU_MOUSEBUTTON2 0x0080
#define PU_MOUSEBUTTON3 0x0100
#define PU_KEYBOARD 0x0200
#define MM_INSERTITEM 0x0180
#define MM_DELETEITEM 0x0181
#define MM_QUERYITEM 0x0182
#define MM_SETITEM 0x0183
#define MM_QUERYITEMCOUNT 0x0184
#define MM_STARTMENUMODE 0x0185
#define MM_ENDMENUMODE 0x0186
#define MM_REMOVEITEM 0x0188
#define MM_SELECTITEM 0x0189
#define MM_QUERYSELITEMID 0x018a
#define MM_QUERYITEMTEXT 0x018b
#define MM_QUERYITEMTEXTLENGTH 0x018c
#define MM_SETITEMHANDLE 0x018d
#define MM_SETITEMTEXT 0x018e
#define MM_ITEMPOSITIONFROMID 0x018f
#define MM_ITEMIDFROMPOSITION 0x0190
#define MM_QUERYITEMATTR 0x0191
#define MM_SETITEMATTR 0x0192
#define MM_ISITEMVALID 0x0193
#define MM_QUERYITEMRECT 0x0194
#define MM_QUERYDEFAULTITEMID 0x0431
#define MM_SETDEFAULTITEMID 0x0432
#define WinCheckMenuItem(hwndMenu, id, fcheck) \
((BOOL)WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(id, TRUE), \
MPFROM2SHORT(MIA_CHECKED, (USHORT)(fcheck) ? MIA_CHECKED : 0)))
#define WinIsMenuItemChecked(hwndMenu, id) \
((BOOL)WinSendMsg(hwndMenu, MM_QUERYITEMATTR, \
MPFROM2SHORT(id, TRUE), MPFROMLONG(MIA_CHECKED)))
#define WinEnableMenuItem(hwndMenu, id, fEnable) \
((BOOL)WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(id, TRUE), \
MPFROM2SHORT(MIA_DISABLED, (USHORT)(fEnable) ? 0 : MIA_DISABLED)))
#define WinIsMenuItemEnabled(hwndMenu, id) \
(!(BOOL)WinSendMsg(hwndMenu, MM_QUERYITEMATTR, \
MPFROM2SHORT(id, TRUE), MPFROMLONG(MIA_DISABLED)))
#define WinSetMenuItemText(hwndMenu, id, psz) \
((BOOL)WinSendMsg(hwndMenu, MM_SETITEMTEXT, MPFROMLONG(id), MPFROMP(psz)))
#define WinIsMenuItemValid(hwndMenu, id) \
((BOOL)WinSendMsg(hwndMenu, MM_ISITEMVALID, MPFROM2SHORT(id, TRUE), MPFROMLONG(FALSE)))
typedef struct _OWNERITEM {
HWND hwnd;
HPS hps;
ULONG fsState;
ULONG fsAttribute;
ULONG fsStateOld;
ULONG fsAttributeOld;
RECTL rclItem;
LONG idItem;
ULONG hItem;
} OWNERITEM, *POWNERITEM;
#pragma pack(2)
typedef struct _MENUITEM {
SHORT iPosition;
USHORT afStyle;
USHORT afAttribute;
USHORT id;
HWND hwndSubMenu;
ULONG hItem;
} MENUITEM, *PMENUITEM;
#pragma pack()
HWND APIENTRY WinCreateMenu(HWND,PVOID);
HWND APIENTRY WinLoadMenu(HWND,HMODULE,ULONG);
BOOL APIENTRY WinPopupMenu(HWND,HWND,HWND,LONG,LONG,LONG,ULONG);
#endif
#ifdef INCL_WINPOINTERS
#define SPTR_ARROW 1
#define SPTR_TEXT 2
#define SPTR_WAIT 3
#define SPTR_SIZE 4
#define SPTR_MOVE 5
#define SPTR_SIZENWSE 6
#define SPTR_SIZENESW 7
#define SPTR_SIZEWE 8
#define SPTR_SIZENS 9
#define SPTR_APPICON 10
#define SPTR_ICONINFORMATION 11
#define SPTR_ICONQUESTION 12
#define SPTR_ICONERROR 13
#define SPTR_ICONWARNING 14
#define SPTR_ILLEGAL 18
#define SPTR_FILE 19
#define SPTR_FOLDER 20
#define SPTR_MULTFILE 21
#define SPTR_PROGRAM 22
#define SPTR_DISPLAY_PTRS 22
#define SPTR_PENFIRST 23
#define SPTR_PENLAST 39
#define SPTR_CPTR 39
#define SBMP_OLD_SYSMENU 1
#define SBMP_OLD_SBUPARROW 2
#define SBMP_OLD_SBDNARROW 3
#define SBMP_OLD_SBRGARROW 4
#define SBMP_OLD_SBLFARROW 5
#define SBMP_MENUCHECK 6
#define SBMP_OLD_CHECKBOXES 7
#define SBMP_BTNCORNERS 8
#define SBMP_OLD_MINBUTTON 9
#define SBMP_OLD_MAXBUTTON 10
#define SBMP_OLD_RESTOREBUTTON 11
#define SBMP_OLD_CHILDSYSMENU 12
#define SBMP_DRIVE 15
#define SBMP_FILE 16
#define SBMP_FOLDER 17
#define SBMP_TREEPLUS 18
#define SBMP_TREEMINUS 19
#define SBMP_PROGRAM 22
#define SBMP_MENUATTACHED 23
#define SBMP_SIZEBOX 24
#define SBMP_SYSMENU 25
#define SBMP_MINBUTTON 26
#define SBMP_MAXBUTTON 27
#define SBMP_RESTOREBUTTON 28
#define SBMP_CHILDSYSMENU 29
#define SBMP_SYSMENUDEP 30
#define SBMP_MINBUTTONDEP 31
#define SBMP_MAXBUTTONDEP 32
#define SBMP_RESTOREBUTTONDEP 33
#define SBMP_CHILDSYSMENUDEP 34
#define SBMP_SBUPARROW 35
#define SBMP_SBDNARROW 36
#define SBMP_SBLFARROW 37
#define SBMP_SBRGARROW 38
#define SBMP_SBUPARROWDEP 39
#define SBMP_SBDNARROWDEP 40
#define SBMP_SBLFARROWDEP 41
#define SBMP_SBRGARROWDEP 42
#define SBMP_SBUPARROWDIS 43
#define SBMP_SBDNARROWDIS 44
#define SBMP_SBLFARROWDIS 45
#define SBMP_SBRGARROWDIS 46
#define SBMP_COMBODOWN 47
#define SBMP_CHECKBOXES 48
#define SBMP_HIDE 50
#define SBMP_HIDEDEP 51
#define SBMP_CLOSE 52
#define SBMP_CLOSEDEP 53
#define DP_NORMAL 0
#define DP_HALFTONED 1
#define DP_INVERTED 2
#define DP_MINI 4
typedef struct _POINTERINFO {
ULONG fPointer;
LONG xHotspot;
LONG yHotspot;
HBITMAP hbmPointer;
HBITMAP hbmColor;
HBITMAP hbmMiniPointer;
HBITMAP hbmMiniColor;
} POINTERINFO, *PPOINTERINFO;
HPOINTER APIENTRY WinCreatePointer(HWND,HBITMAP,BOOL,LONG,LONG);
HPOINTER APIENTRY WinCreatePointerIndirect(HWND,PPOINTERINFO);
BOOL APIENTRY WinDestroyPointer(HPOINTER);
BOOL APIENTRY WinDrawPointer(HPS,LONG,LONG,HPOINTER,ULONG);
HBITMAP APIENTRY WinGetSysBitmap(HWND,ULONG);
HPOINTER APIENTRY WinLoadPointer(HWND,HMODULE,ULONG);
BOOL APIENTRY WinLockPointerUpdate(HWND,HPOINTER,ULONG);
HPOINTER APIENTRY WinQueryPointer(HWND);
BOOL APIENTRY WinQueryPointerInfo(HPOINTER,PPOINTERINFO);
BOOL APIENTRY WinQueryPointerPos(HWND,PPOINTL);
HPOINTER APIENTRY WinQuerySysPointer(HWND,LONG,BOOL);
BOOL APIENTRY WinQuerySysPointerData(HWND,ULONG,PICONINFO);
BOOL APIENTRY WinSetPointer(HWND,HPOINTER);
BOOL APIENTRY WinSetPointerOwner(HPOINTER,PID,BOOL);
BOOL APIENTRY WinSetPointerPos(HWND,LONG,LONG);
BOOL APIENTRY WinSetSysPointerData(HWND,ULONG,PICONINFO);
BOOL APIENTRY WinShowPointer(HWND,BOOL);
#endif
#if !defined(SESMGR)
#define HINI_PROFILE ((HINI)NULL)
#define HINI_USERPROFILE ((HINI)-1)
#define HINI_SYSTEMPROFILE ((HINI)-2)
#define HINI_USER HINI_USERPROFILE
#define HINI_SYSTEM HINI_SYSTEMPROFILE
typedef LHANDLE HPROGRAM, *PHPROGRAM;
typedef LHANDLE HAPP, *PHAPP;
typedef LHANDLE HINI, *PHINI;
typedef LHANDLE HSWITCH, *PHSWITCH;
typedef struct _PRFPROFILE {
ULONG cchUserName;
PSZ pszUserName;
ULONG cchSysName;
PSZ pszSysName;
} PRFPROFILE, *PPRFPROFILE;
#endif
#ifdef INCL_WINPROGRAMLIST
#define PROG_DEFAULT (PROGCATEGORY)0
#define PROG_FULLSCREEN (PROGCATEGORY)1
#define PROG_WINDOWABLEVIO (PROGCATEGORY)2
#define PROG_PM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -