732 lines
24 KiB
C++
732 lines
24 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
#ifndef BAGEL_MFC_WINNT_H
|
|
#define BAGEL_MFC_WINNT_H
|
|
|
|
#include "common/scummsys.h"
|
|
|
|
namespace Bagel {
|
|
namespace MFC {
|
|
|
|
typedef uint16 SHORT;
|
|
|
|
typedef uint32 COLORREF;
|
|
typedef void *POSITION;
|
|
|
|
#define RGB_COL(r,g,b) ((COLORREF)(((byte)(r)|((uint16)((byte)(g))<<8))|(((uint32)(byte)(b))<<16)))
|
|
#define PALETTERGB(r,g,b) (0x02000000 | RGB_COL(r,g,b))
|
|
#define RGB(r,g,b) PALETTERGB(r,g,b)
|
|
#define IS_RGB(VAL) ((VAL & 0x02000000) != 0)
|
|
|
|
#define PAL_DEFAULT 0x0000
|
|
#define PAL_ANIMATED 0x0001
|
|
#define PAL_EXPLICIT 0x0002
|
|
|
|
#define HINSTANCE_ERROR (HINSTANCE)32
|
|
|
|
//
|
|
// Success codes
|
|
//
|
|
#define S_OK ((HRESULT)0L)
|
|
#define S_FALSE ((HRESULT)1L)
|
|
|
|
typedef void *HANDLE;
|
|
typedef long HRESULT;
|
|
|
|
typedef uint32 LCID;
|
|
typedef uint32 *PLCID;
|
|
typedef uint16 LANGID;
|
|
|
|
typedef uint32 (*APPLICATION_RECOVERY_CALLBACK)(void *pvParameter);
|
|
|
|
#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name
|
|
|
|
|
|
/* Local Memory Flags */
|
|
#define LMEM_FIXED 0x0000
|
|
#define LMEM_MOVEABLE 0x0002
|
|
#define LMEM_NOCOMPACT 0x0010
|
|
#define LMEM_NODISCARD 0x0020
|
|
#define LMEM_ZEROINIT 0x0040
|
|
#define LMEM_MODIFY 0x0080
|
|
#define LMEM_DISCARDABLE 0x0F00
|
|
#define LMEM_VALID_FLAGS 0x0F72
|
|
#define LMEM_INVALID_HANDLE 0x8000
|
|
|
|
#define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
|
|
#define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
|
|
|
|
//
|
|
// Define access rights to files and directories
|
|
//
|
|
|
|
//
|
|
// The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in
|
|
// devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these
|
|
// constants *MUST* always be in sync.
|
|
// The values are redefined in devioctl.h because they must be available to
|
|
// both DOS and NT.
|
|
//
|
|
|
|
#define FILE_READ_DATA ( 0x0001 ) // file & pipe
|
|
#define FILE_LIST_DIRECTORY ( 0x0001 ) // directory
|
|
|
|
#define FILE_WRITE_DATA ( 0x0002 ) // file & pipe
|
|
#define FILE_ADD_FILE ( 0x0002 ) // directory
|
|
|
|
#define FILE_APPEND_DATA ( 0x0004 ) // file
|
|
#define FILE_ADD_SUBDIRECTORY ( 0x0004 ) // directory
|
|
#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) // named pipe
|
|
|
|
|
|
#define FILE_READ_EA ( 0x0008 ) // file & directory
|
|
|
|
#define FILE_WRITE_EA ( 0x0010 ) // file & directory
|
|
|
|
#define FILE_EXECUTE ( 0x0020 ) // file
|
|
#define FILE_TRAVERSE ( 0x0020 ) // directory
|
|
|
|
#define FILE_DELETE_CHILD ( 0x0040 ) // directory
|
|
|
|
#define FILE_READ_ATTRIBUTES ( 0x0080 ) // all
|
|
|
|
#define FILE_WRITE_ATTRIBUTES ( 0x0100 ) // all
|
|
|
|
#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
|
|
|
|
#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
|
FILE_READ_DATA |\
|
|
FILE_READ_ATTRIBUTES |\
|
|
FILE_READ_EA |\
|
|
SYNCHRONIZE)
|
|
|
|
|
|
#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
FILE_WRITE_DATA |\
|
|
FILE_WRITE_ATTRIBUTES |\
|
|
FILE_WRITE_EA |\
|
|
FILE_APPEND_DATA |\
|
|
SYNCHRONIZE)
|
|
|
|
|
|
#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
|
FILE_READ_ATTRIBUTES |\
|
|
FILE_EXECUTE |\
|
|
SYNCHRONIZE)
|
|
|
|
#define FILE_SHARE_READ 0x00000001
|
|
#define FILE_SHARE_WRITE 0x00000002
|
|
#define FILE_SHARE_DELETE 0x00000004
|
|
#define FILE_ATTRIBUTE_READONLY 0x00000001
|
|
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
|
|
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
|
|
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
|
|
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
|
|
#define FILE_ATTRIBUTE_DEVICE 0x00000040
|
|
#define FILE_ATTRIBUTE_NORMAL 0x00000080
|
|
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
|
|
#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
|
|
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
|
|
#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
|
|
#define FILE_ATTRIBUTE_OFFLINE 0x00001000
|
|
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
|
|
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
|
|
#define FILE_ATTRIBUTE_INTEGRITY_STREAM 0x00008000
|
|
#define FILE_ATTRIBUTE_VIRTUAL 0x00010000
|
|
#define FILE_ATTRIBUTE_NO_SCRUB_DATA 0x00020000
|
|
#define FILE_ATTRIBUTE_EA 0x00040000
|
|
#define FILE_ATTRIBUTE_PINNED 0x00080000
|
|
#define FILE_ATTRIBUTE_UNPINNED 0x00100000
|
|
#define FILE_ATTRIBUTE_RECALL_ON_OPEN 0x00040000
|
|
#define FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 0x00400000
|
|
#define TREE_CONNECT_ATTRIBUTE_PRIVACY 0x00004000
|
|
#define TREE_CONNECT_ATTRIBUTE_INTEGRITY 0x00008000
|
|
#define TREE_CONNECT_ATTRIBUTE_GLOBAL 0x00000004
|
|
#define TREE_CONNECT_ATTRIBUTE_PINNED 0x00000002
|
|
#define FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL 0x20000000
|
|
#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
|
|
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
|
|
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
|
|
#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
|
|
#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
|
|
#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
|
|
#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
|
|
#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
|
|
#define FILE_ACTION_ADDED 0x00000001
|
|
#define FILE_ACTION_REMOVED 0x00000002
|
|
#define FILE_ACTION_MODIFIED 0x00000003
|
|
#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
|
|
#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
|
|
#define MAILSLOT_NO_MESSAGE ((uint32)-1)
|
|
#define MAILSLOT_WAIT_FOREVER ((uint32)-1)
|
|
#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
|
|
#define FILE_CASE_PRESERVED_NAMES 0x00000002
|
|
#define FILE_UNICODE_ON_DISK 0x00000004
|
|
#define FILE_PERSISTENT_ACLS 0x00000008
|
|
#define FILE_FILE_COMPRESSION 0x00000010
|
|
#define FILE_VOLUME_QUOTAS 0x00000020
|
|
#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
|
|
#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
|
|
#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
|
|
#define FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200
|
|
#define FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400
|
|
#define FILE_SUPPORTS_BYPASS_IO 0x00000800
|
|
#define FILE_SUPPORTS_STREAM_SNAPSHOTS 0x00001000
|
|
#define FILE_SUPPORTS_CASE_SENSITIVE_DIRS 0x00002000
|
|
|
|
#define FILE_VOLUME_IS_COMPRESSED 0x00008000
|
|
#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
|
|
#define FILE_SUPPORTS_ENCRYPTION 0x00020000
|
|
#define FILE_NAMED_STREAMS 0x00040000
|
|
#define FILE_READ_ONLY_VOLUME 0x00080000
|
|
#define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
|
|
#define FILE_SUPPORTS_TRANSACTIONS 0x00200000
|
|
#define FILE_SUPPORTS_HARD_LINKS 0x00400000
|
|
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
|
|
#define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
|
|
#define FILE_SUPPORTS_USN_JOURNAL 0x02000000
|
|
#define FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000
|
|
#define FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000
|
|
#define FILE_SUPPORTS_SPARSE_VDL 0x10000000
|
|
#define FILE_DAX_VOLUME 0x20000000
|
|
#define FILE_SUPPORTS_GHOSTING 0x40000000
|
|
|
|
/*
|
|
* RedrawWindow() flags
|
|
*/
|
|
#define RDW_INVALIDATE 0x0001
|
|
#define RDW_INTERNALPAINT 0x0002
|
|
#define RDW_ERASE 0x0004
|
|
|
|
#define RDW_VALIDATE 0x0008
|
|
#define RDW_NOINTERNALPAINT 0x0010
|
|
#define RDW_NOERASE 0x0020
|
|
|
|
#define RDW_NOCHILDREN 0x0040
|
|
#define RDW_ALLCHILDREN 0x0080
|
|
|
|
#define RDW_UPDATENOW 0x0100
|
|
#define RDW_ERASENOW 0x0200
|
|
|
|
#define RDW_FRAME 0x0400
|
|
#define RDW_NOFRAME 0x0800
|
|
|
|
|
|
/*
|
|
* EnableScrollBar() flags
|
|
*/
|
|
#define ESB_ENABLE_BOTH 0x0000
|
|
#define ESB_DISABLE_BOTH 0x0003
|
|
|
|
#define ESB_DISABLE_LEFT 0x0001
|
|
#define ESB_DISABLE_RIGHT 0x0002
|
|
|
|
#define ESB_DISABLE_UP 0x0001
|
|
#define ESB_DISABLE_DOWN 0x0002
|
|
|
|
#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
|
|
#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
|
|
|
|
#define SIF_RANGE 0x0001
|
|
#define SIF_PAGE 0x0002
|
|
#define SIF_POS 0x0004
|
|
#define SIF_DISABLENOSCROLL 0x0008
|
|
#define SIF_TRACKPOS 0x0010
|
|
#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
|
|
|
|
/*
|
|
* GetWindow() Constants
|
|
*/
|
|
#define GW_HWNDFIRST 0
|
|
#define GW_HWNDLAST 1
|
|
#define GW_HWNDNEXT 2
|
|
#define GW_HWNDPREV 3
|
|
#define GW_OWNER 4
|
|
#define GW_CHILD 5
|
|
#if(WINVER <= 0x0400)
|
|
#define GW_MAX 5
|
|
#else
|
|
#define GW_ENABLEDPOPUP 6
|
|
#define GW_MAX 6
|
|
#endif
|
|
|
|
|
|
/*
|
|
* MessageBox() Flags
|
|
*/
|
|
#define MB_OK 0x00000000L
|
|
#define MB_OKCANCEL 0x00000001L
|
|
#define MB_ABORTRETRYIGNORE 0x00000002L
|
|
#define MB_YESNOCANCEL 0x00000003L
|
|
#define MB_YESNO 0x00000004L
|
|
#define MB_RETRYCANCEL 0x00000005L
|
|
|
|
/*
|
|
* Scroll Bar Constants
|
|
*/
|
|
#define SB_HORZ 0
|
|
#define SB_VERT 1
|
|
#define SB_CTL 2
|
|
#define SB_BOTH 3
|
|
|
|
/*
|
|
* Scroll Bar Commands
|
|
*/
|
|
#define SB_LINEUP 0
|
|
#define SB_LINELEFT 0
|
|
#define SB_LINEDOWN 1
|
|
#define SB_LINERIGHT 1
|
|
#define SB_PAGEUP 2
|
|
#define SB_PAGELEFT 2
|
|
#define SB_PAGEDOWN 3
|
|
#define SB_PAGERIGHT 3
|
|
#define SB_THUMBPOSITION 4
|
|
#define SB_THUMBTRACK 5
|
|
#define SB_TOP 6
|
|
#define SB_LEFT 6
|
|
#define SB_BOTTOM 7
|
|
#define SB_RIGHT 7
|
|
#define SB_ENDSCROLL 8
|
|
|
|
/*
|
|
* Scroll Bar Styles
|
|
*/
|
|
#define SBS_HORZ 0x0000L
|
|
#define SBS_VERT 0x0001L
|
|
#define SBS_TOPALIGN 0x0002L
|
|
#define SBS_LEFTALIGN 0x0002L
|
|
#define SBS_BOTTOMALIGN 0x0004L
|
|
#define SBS_RIGHTALIGN 0x0004L
|
|
#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
|
|
#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
|
|
#define SBS_SIZEBOX 0x0008L
|
|
|
|
// General error / prompt strings
|
|
#define AFX_IDP_INVALID_FILENAME 0xF100
|
|
#define AFX_IDP_FAILED_TO_OPEN_DOC 0xF101
|
|
#define AFX_IDP_FAILED_TO_SAVE_DOC 0xF102
|
|
|
|
|
|
/*
|
|
* Dialog Box Command IDs
|
|
*/
|
|
#define IDOK 1
|
|
#define IDCANCEL 2
|
|
#define IDABORT 3
|
|
#define IDRETRY 4
|
|
#define IDIGNORE 5
|
|
#define IDYES 6
|
|
#define IDNO 7
|
|
#define IDCLOSE 8
|
|
#define IDHELP 9
|
|
#define IDTRYAGAIN 10
|
|
#define IDCONTINUE 11
|
|
#define IDTIMEOUT 32000
|
|
|
|
/*
|
|
* User Button Notification Codes
|
|
*/
|
|
#define BN_CLICKED 0
|
|
#define BN_PAINT 1
|
|
#define BN_HILITE 2
|
|
#define BN_UNHILITE 3
|
|
#define BN_DISABLE 4
|
|
#define BN_DOUBLECLICKED 5
|
|
#define BN_PUSHED BN_HILITE
|
|
#define BN_UNPUSHED BN_UNHILITE
|
|
#define BN_DBLCLK BN_DOUBLECLICKED
|
|
#define BN_SETFOCUS 6
|
|
#define BN_KILLFOCUS 7
|
|
|
|
/*
|
|
* Window Styles
|
|
*/
|
|
#define WS_OVERLAPPED 0x00000000L
|
|
#define WS_POPUP 0x80000000L
|
|
#define WS_CHILD 0x40000000L
|
|
#define WS_MINIMIZE 0x20000000L
|
|
#define WS_VISIBLE 0x10000000L
|
|
#define WS_DISABLED 0x08000000L
|
|
#define WS_CLIPSIBLINGS 0x04000000L
|
|
#define WS_CLIPCHILDREN 0x02000000L
|
|
#define WS_MAXIMIZE 0x01000000L
|
|
#define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */
|
|
#define WS_BORDER 0x00800000L
|
|
#define WS_DLGFRAME 0x00400000L
|
|
#define WS_VSCROLL 0x00200000L
|
|
#define WS_HSCROLL 0x00100000L
|
|
#define WS_SYSMENU 0x00080000L
|
|
#define WS_THICKFRAME 0x00040000L
|
|
#define WS_GROUP 0x00020000L
|
|
#define WS_TABSTOP 0x00010000L
|
|
#define WS_MINIMIZEBOX 0x00020000L
|
|
#define WS_MAXIMIZEBOX 0x00010000L
|
|
#define WS_TILED WS_OVERLAPPED
|
|
#define WS_ICONIC WS_MINIMIZE
|
|
#define WS_SIZEBOX WS_THICKFRAME
|
|
#define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
|
|
|
|
/*
|
|
* Common Window Styles
|
|
*/
|
|
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \
|
|
WS_CAPTION | \
|
|
WS_SYSMENU | \
|
|
WS_THICKFRAME | \
|
|
WS_MINIMIZEBOX | \
|
|
WS_MAXIMIZEBOX)
|
|
|
|
#define WS_POPUPWINDOW (WS_POPUP | \
|
|
WS_BORDER | \
|
|
WS_SYSMENU)
|
|
|
|
#define WS_CHILDWINDOW (WS_CHILD)
|
|
|
|
// Frame window styles
|
|
#define FWS_ADDTOTITLE 0x00008000L // Modify title based on content
|
|
#define FWS_PREFIXTITLE 0x00004000L // Show document name before app name
|
|
#define FWS_SNAPTOBARS 0x00002000L // Snap size to size of contained bars
|
|
|
|
/*
|
|
* Edit Control Styles
|
|
*/
|
|
#define ES_LEFT 0x0000L
|
|
#define ES_CENTER 0x0001L
|
|
#define ES_RIGHT 0x0002L
|
|
#define ES_MULTILINE 0x0004L
|
|
#define ES_UPPERCASE 0x0008L
|
|
#define ES_LOWERCASE 0x0010L
|
|
#define ES_PASSWORD 0x0020L
|
|
#define ES_AUTOVSCROLL 0x0040L
|
|
#define ES_AUTOHSCROLL 0x0080L
|
|
#define ES_NOHIDESEL 0x0100L
|
|
#define ES_OEMCONVERT 0x0400L
|
|
#define ES_READONLY 0x0800L
|
|
#define ES_WANTRETURN 0x1000L
|
|
#define ES_NUMBER 0x2000L
|
|
|
|
/*
|
|
* SetWindowsHook() codes
|
|
*/
|
|
#define WH_MIN (-1)
|
|
#define WH_MSGFILTER (-1)
|
|
#define WH_JOURNALRECORD 0
|
|
#define WH_JOURNALPLAYBACK 1
|
|
#define WH_KEYBOARD 2
|
|
#define WH_GETMESSAGE 3
|
|
#define WH_CALLWNDPROC 4
|
|
#define WH_CBT 5
|
|
#define WH_SYSMSGFILTER 6
|
|
#define WH_MOUSE 7
|
|
|
|
|
|
/*
|
|
* Key State Masks for Mouse Messages
|
|
*/
|
|
#define MK_LBUTTON 0x0001
|
|
#define MK_RBUTTON 0x0002
|
|
#define MK_SHIFT 0x0004
|
|
#define MK_CONTROL 0x0008
|
|
#define MK_MBUTTON 0x0010
|
|
#define MK_XBUTTON1 0x0020
|
|
#define MK_XBUTTON2 0x0040
|
|
|
|
|
|
/*
|
|
* GetSystemMetrics() codes
|
|
*/
|
|
#define SM_CXSCREEN 0
|
|
#define SM_CYSCREEN 1
|
|
#define SM_CXVSCROLL 2
|
|
#define SM_CYHSCROLL 3
|
|
#define SM_CYCAPTION 4
|
|
#define SM_CXBORDER 5
|
|
#define SM_CYBORDER 6
|
|
#define SM_CXDLGFRAME 7
|
|
#define SM_CYDLGFRAME 8
|
|
#define SM_CYVTHUMB 9
|
|
#define SM_CXHTHUMB 10
|
|
#define SM_CXICON 11
|
|
#define SM_CYICON 12
|
|
#define SM_CXCURSOR 13
|
|
#define SM_CYCURSOR 14
|
|
#define SM_CYMENU 15
|
|
#define SM_CXFULLSCREEN 16
|
|
#define SM_CYFULLSCREEN 17
|
|
#define SM_CYKANJIWINDOW 18
|
|
#define SM_MOUSEPRESENT 19
|
|
#define SM_CYVSCROLL 20
|
|
#define SM_CXHSCROLL 21
|
|
#define SM_DEBUG 22
|
|
#define SM_SWAPBUTTON 23
|
|
#define SM_RESERVED1 24
|
|
#define SM_RESERVED2 25
|
|
#define SM_RESERVED3 26
|
|
#define SM_RESERVED4 27
|
|
#define SM_CXMIN 28
|
|
#define SM_CYMIN 29
|
|
#define SM_CXSIZE 30
|
|
#define SM_CYSIZE 31
|
|
#define SM_CXFRAME 32
|
|
#define SM_CYFRAME 33
|
|
#define SM_CXMINTRACK 34
|
|
#define SM_CYMINTRACK 35
|
|
#define SM_CXDOUBLECLK 36
|
|
#define SM_CYDOUBLECLK 37
|
|
#define SM_CXICONSPACING 38
|
|
#define SM_CYICONSPACING 39
|
|
#define SM_MENUDROPALIGNMENT 40
|
|
#define SM_PENWINDOWS 41
|
|
#define SM_DBCSENABLED 42
|
|
#define SM_CMOUSEBUTTONS 43
|
|
#define SM_CXFIXEDFRAME SM_CXDLGFRAME /* ;win40 name change */
|
|
#define SM_CYFIXEDFRAME SM_CYDLGFRAME /* ;win40 name change */
|
|
#define SM_CXSIZEFRAME SM_CXFRAME /* ;win40 name change */
|
|
#define SM_CYSIZEFRAME SM_CYFRAME /* ;win40 name change */
|
|
#define SM_SECURE 44
|
|
#define SM_CXEDGE 45
|
|
#define SM_CYEDGE 46
|
|
#define SM_CXMINSPACING 47
|
|
#define SM_CYMINSPACING 48
|
|
#define SM_CXSMICON 49
|
|
#define SM_CYSMICON 50
|
|
#define SM_CYSMCAPTION 51
|
|
#define SM_CXSMSIZE 52
|
|
#define SM_CYSMSIZE 53
|
|
#define SM_CXMENUSIZE 54
|
|
#define SM_CYMENUSIZE 55
|
|
#define SM_ARRANGE 56
|
|
#define SM_CXMINIMIZED 57
|
|
#define SM_CYMINIMIZED 58
|
|
#define SM_CXMAXTRACK 59
|
|
#define SM_CYMAXTRACK 60
|
|
#define SM_CXMAXIMIZED 61
|
|
#define SM_CYMAXIMIZED 62
|
|
#define SM_NETWORK 63
|
|
#define SM_CLEANBOOT 67
|
|
#define SM_CXDRAG 68
|
|
#define SM_CYDRAG 69
|
|
#define SM_SHOWSOUNDS 70
|
|
#define SM_CXMENUCHECK 71 /* Use instead of GetMenuCheckMarkDimensions()! */
|
|
#define SM_CYMENUCHECK 72
|
|
#define SM_SLOWMACHINE 73
|
|
#define SM_MIDEASTENABLED 74
|
|
#define SM_MOUSEWHEELPRESENT 75
|
|
#define SM_XVIRTUALSCREEN 76
|
|
#define SM_YVIRTUALSCREEN 77
|
|
#define SM_CXVIRTUALSCREEN 78
|
|
#define SM_CYVIRTUALSCREEN 79
|
|
#define SM_CMONITORS 80
|
|
#define SM_SAMEDISPLAYFORMAT 81
|
|
#define SM_IMMENABLED 82
|
|
#define SM_CXFOCUSBORDER 83
|
|
#define SM_CYFOCUSBORDER 84
|
|
#define SM_TABLETPC 86
|
|
#define SM_MEDIACENTER 87
|
|
#define SM_STARTER 88
|
|
#define SM_SERVERR2 89
|
|
#define SM_MOUSEHORIZONTALWHEELPRESENT 91
|
|
#define SM_CXPADDEDBORDER 92
|
|
#define SM_DIGITIZER 94
|
|
#define SM_MAXIMUMTOUCHES 95
|
|
#define SM_CMETRICS 97
|
|
#define SM_REMOTESESSION 0x1000
|
|
#define SM_SHUTTINGDOWN 0x2000
|
|
#define SM_REMOTECONTROL 0x2001
|
|
#define SM_CARETBLINKINGENABLED 0x2002
|
|
#define SM_CONVERTIBLESLATEMODE 0x2003
|
|
#define SM_SYSTEMDOCKED 0x2004
|
|
|
|
/* Mapping Modes */
|
|
#define MM_TEXT 1
|
|
#define MM_LOMETRIC 2
|
|
#define MM_HIMETRIC 3
|
|
#define MM_LOENGLISH 4
|
|
#define MM_HIENGLISH 5
|
|
#define MM_TWIPS 6
|
|
#define MM_ISOTROPIC 7
|
|
#define MM_ANISOTROPIC 8
|
|
|
|
/* Min and Max Mapping Mode values */
|
|
#define MM_MIN MM_TEXT
|
|
#define MM_MAX MM_ANISOTROPIC
|
|
#define MM_MAX_FIXEDSCALE MM_TWIPS
|
|
|
|
/*
|
|
* System Menu Command Values
|
|
*/
|
|
#define SC_SIZE 0xF000
|
|
#define SC_MOVE 0xF010
|
|
#define SC_MINIMIZE 0xF020
|
|
#define SC_MAXIMIZE 0xF030
|
|
#define SC_NEXTWINDOW 0xF040
|
|
#define SC_PREVWINDOW 0xF050
|
|
#define SC_CLOSE 0xF060
|
|
#define SC_VSCROLL 0xF070
|
|
#define SC_HSCROLL 0xF080
|
|
#define SC_MOUSEMENU 0xF090
|
|
#define SC_KEYMENU 0xF100
|
|
#define SC_ARRANGE 0xF110
|
|
#define SC_RESTORE 0xF120
|
|
#define SC_TASKLIST 0xF130
|
|
#define SC_SCREENSAVE 0xF140
|
|
#define SC_HOTKEY 0xF150
|
|
#define SC_DEFAULT 0xF160
|
|
#define SC_MONITORPOWER 0xF170
|
|
#define SC_CONTEXTHELP 0xF180
|
|
#define SC_SEPARATOR 0xF00F
|
|
|
|
/*
|
|
* Predefined Resource Types
|
|
*/
|
|
#define MAKEINTRESOURCE(i) ((char *)((uintptr)((uint16)(i))))
|
|
#define RT_CURSOR MAKEINTRESOURCE(1)
|
|
#define RT_BITMAP MAKEINTRESOURCE(2)
|
|
#define RT_ICON MAKEINTRESOURCE(3)
|
|
#define RT_MENU MAKEINTRESOURCE(4)
|
|
#define RT_DIALOG MAKEINTRESOURCE(5)
|
|
#define RT_STRING MAKEINTRESOURCE(6)
|
|
#define RT_FONTDIR MAKEINTRESOURCE(7)
|
|
#define RT_FONT MAKEINTRESOURCE(8)
|
|
#define RT_ACCELERATOR MAKEINTRESOURCE(9)
|
|
#define RT_RCDATA MAKEINTRESOURCE(10)
|
|
#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
|
|
|
|
typedef struct _GUID {
|
|
unsigned long Data1;
|
|
unsigned short Data2;
|
|
unsigned short Data3;
|
|
unsigned char Data4[8];
|
|
} GUID;
|
|
#define REFIID const IID &
|
|
|
|
/* PolyFill() Modes */
|
|
#define ALTERNATE 1
|
|
#define WINDING 2
|
|
#define POLYFILL_LAST 2
|
|
|
|
/* Region Flags */
|
|
#define ERROR 0
|
|
#define NULLREGION 1
|
|
#define SIMPLEREGION 2
|
|
#define COMPLEXREGION 3
|
|
#define RGN_ERROR ERROR
|
|
|
|
/*
|
|
* Hook Codes
|
|
*/
|
|
#define HC_ACTION 0
|
|
#define HC_GETNEXT 1
|
|
#define HC_SKIP 2
|
|
#define HC_NOREMOVE 3
|
|
#define HC_NOREM HC_NOREMOVE
|
|
#define HC_SYSMODALON 4
|
|
#define HC_SYSMODALOFF 5
|
|
|
|
// parts of Main Frame
|
|
#define AFX_IDW_PANE_FIRST 0xE900 // first pane (256 max)
|
|
#define AFX_IDW_PANE_LAST 0xE9ff
|
|
#define AFX_IDW_HSCROLL_FIRST 0xEA00 // first Horz scrollbar (16 max)
|
|
#define AFX_IDW_VSCROLL_FIRST 0xEA10 // first Vert scrollbar (16 max)
|
|
|
|
#define AFX_IDW_SIZE_BOX 0xEA20 // size box for splitters
|
|
#define AFX_IDW_PANE_SAVE 0xEA21 // to shift AFX_IDW_PANE_FIRST
|
|
#define AFX_WS_DEFAULT_VIEW (WS_CHILD | WS_VISIBLE)
|
|
|
|
|
|
/*
|
|
* Dialog Codes
|
|
*/
|
|
#define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */
|
|
#define DLGC_WANTTAB 0x0002 /* Control wants tab keys */
|
|
#define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */
|
|
#define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */
|
|
#define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */
|
|
#define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */
|
|
#define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */
|
|
#define DLGC_RADIOBUTTON 0x0040 /* Radio button */
|
|
#define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */
|
|
#define DLGC_STATIC 0x0100 /* Static item: don't include */
|
|
#define DLGC_BUTTON 0x2000 /* Button item: can be checked */
|
|
|
|
|
|
typedef struct tagTEXTMETRICA {
|
|
long tmHeight = 0;
|
|
long tmAscent = 0;
|
|
long tmDescent = 0;
|
|
long tmInternalLeading = 0;
|
|
long tmExternalLeading = 0;
|
|
long tmAveCharWidth = 0;
|
|
long tmMaxCharWidth = 0;
|
|
long tmWeight = 0;
|
|
long tmOverhang = 0;
|
|
long tmDigitizedAspectX = 0;
|
|
long tmDigitizedAspectY = 0;
|
|
byte tmFirstChar = 0;
|
|
byte tmLastChar = 0;
|
|
byte tmDefaultChar = 0;
|
|
byte tmBreakChar = 0;
|
|
byte tmItalic = 0;
|
|
byte tmUnderlined = 0;
|
|
byte tmStruckOut = 0;
|
|
byte tmPitchAndFamily = 0;
|
|
byte tmCharSet = 0;
|
|
} TEXTMETRIC, *PTEXTMETRIC, *LPTEXTMETRIC;
|
|
|
|
typedef struct tagGCP_RESULTS {
|
|
} GCP_RESULTS, *LPGCP_RESULTS;
|
|
|
|
|
|
struct LOGFONT {
|
|
long lfHeight;
|
|
long lfWidth;
|
|
long lfEscapement;
|
|
long lfOrientation;
|
|
long lfWeight;
|
|
byte lfItalic;
|
|
byte lfUnderline;
|
|
byte lfStrikeOut;
|
|
byte lfCharSet;
|
|
byte lfOutPrecision;
|
|
byte lfClipPrecision;
|
|
byte lfQuality;
|
|
byte lfPitchAndFamily;
|
|
char lfFaceName[32];
|
|
};
|
|
typedef LOGFONT *LPLOGFONT;
|
|
|
|
typedef struct tagSCROLLINFO {
|
|
unsigned int cbSize;
|
|
unsigned int fMask;
|
|
int nMin;
|
|
int nMax;
|
|
unsigned int nPage;
|
|
int nPos;
|
|
int nTrackPos;
|
|
} SCROLLINFO, *LPSCROLLINFO;
|
|
typedef const SCROLLINFO *LPCSCROLLINFO;
|
|
|
|
} // namespace MFC
|
|
} // namespace Bagel
|
|
|
|
#endif
|