windows-nt/Source/XPSP1/NT/base/mvdm/wow16/write/ch.h
2020-09-26 16:20:57 +08:00

217 lines
7.1 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/************************************************************/
/* Windows Write, Copyright 1985-1992 Microsoft Corporation */
/************************************************************/
/* This file defines the characters used by Windows Word. */
/* You must include windows.h to get virtual key definitions */
#define chNil (-1)
/* Characters in files */
#define chDelPrev 0x08
#define chTab 0x09
#define chEol 0x0A
#define chNewLine 0x0B
#define chSect 0x0C
#define chReturn 0x0D
#define chNRHFile 0x1F /* Non-required hyphen */
#ifndef NOKCCODES
/* Keyboard Characters */
/* A high bit of 1 means that this is a command character */
/* For Windows, a command character it one that is processed through */
/* the virtual key mechanism (WM_KEYBOARD) instead of translated (WM_CHAR) */
#define wKcCommandMask 0x8000 /* mask that tells if command */
#define FIsCommandKc(kc) ((int)(kc) < 0) /* or, test it this way */
#define kcDelPrev (wKcCommandMask | VK_BACK)
#define kcDelNext (wKcCommandMask | VK_DELETE)
#define kcInsert (wKcCommandMask | VK_INSERT)
#define kcTab (wKcCommandMask | VK_TAB )
#define kcReturn (wKcCommandMask | VK_RETURN)
#define kcLeft (wKcCommandMask | VK_LEFT)
#define kcUp (wKcCommandMask | VK_UP)
#define kcRight (wKcCommandMask | VK_RIGHT)
#define kcDown (wKcCommandMask | VK_DOWN)
#define kcPageUp (wKcCommandMask | VK_PRIOR)
#define kcPageDown (wKcCommandMask | VK_NEXT)
#define kcBeginLine (wKcCommandMask | VK_HOME)
#define kcEndLine (wKcCommandMask | VK_END)
#define kcGoto (wKcCommandMask | VK_CLEAR)
/* Special for windows: we must handle these key codes & update shift state */
#define kcShift (wKcCommandMask | VK_SHIFT)
#define kcControl (wKcCommandMask | VK_CONTROL)
#define kcAlt (wKcCommandMask | VK_MENU)
#define kcCapsLock (wKcCommandMask | VK_CAPITAL)
/* Phony Keyboard Characters, used to force actions */
#define kcNextPara 0xFFFE /* Generated from GOTO-DOWN */
#define kcPrevPara 0xFFFD /* Generated from GOTO-UP */
/* #define kcAlphaVirtual 0xFFFC Defined below, outside ifdef */
/* Keys that affect the look of the current selection (char or para) */
#define kcLookMin 0x8001 /* As of now, no look keys */
#define kcLookMax 0x8000
/* These control keys are processed as WM_CHAR ASCII codes */
#define kcLFld (wKcCommandMask | ('[' & 0x1F)) /* Print-Merge <<>> */
#define kcRFld (wKcCommandMask | (']' & 0x1F)) /* CTRL-[ and CTRL-] */
/* Keyboard Kontrol (CTRL) codes -- a key message word is interpreted
as a kk instead of a kc, if the CTRL key is down */
#define kkUpScrollLock (kcUp)
#define kkDownScrollLock (kcDown)
#define kkTopDoc (wKcCommandMask | VK_HOME)
#define kkEndDoc (wKcCommandMask | VK_END)
#define kkTopScreen (wKcCommandMask | VK_PRIOR)
#define kkEndScreen (wKcCommandMask | VK_NEXT)
#define kkWordLeft (wKcCommandMask | VK_LEFT)
#define kkWordRight (wKcCommandMask | VK_RIGHT)
#define kkCopy (wKcCommandMask | VK_INSERT)
#define kkDelPrev (wKcCommandMask | VK_BACK)
#if WINVER < 0x300
#define kkNonReqHyphen (wKcCommandMask | VK_MINUS)
#else
/* I don't know how the above EVER worked so I'm changing
it to use the return value from VkKeyScan(). See routines
KcAlphaKeyMessage() and FNonAlphaKeyMessage() ..pault */
#define kkNonReqHyphen (wKcCommandMask | vkMinus)
#endif
#ifdef CASHMERE /* These keys not supported by MEMO */
#define kkNonBrkSpace (wKcCommandMask | (unsigned) ' ')
#define kkNLEnter (wKcCommandMask | VK_RETURN) /* EOL w/o end Para */
#endif
/* CTRL-shifted keys */
#define kksPageBreak (wKcCommandMask | VK_RETURN)
#ifdef DEBUG
#define kksEatWinMemory (wKcCommandMask | 'H') /* Hog Windows Heap */
#define kksFreeWinMemory (wKcCommandMask | 'R') /* Release Windows heap */
#define kksEatMemory (wKcCommandMask | 'E') /* Eat WRITE Heap Space */
#define kksFreeMemory (wKcCommandMask | 'F') /* Free WRITE Heap Space */
#define kksTest (wKcCommandMask | VK_ESCAPE)
#endif
/* Transformation from kk && kks codes to a unique kc code */
#define KcFromKk(kk) ( (kk) + 0x100 )
#define KcFromKks(kks) ( (kks) + 0x200 )
/* new style ctrl-key accelerators (7.22.91) v-dougk */
#define kkNewCopy (wKcCommandMask | 'C')
#define kkNewUndo (wKcCommandMask | 'Z')
#define kkNewPaste (wKcCommandMask | 'V')
#define kkNewCut (wKcCommandMask | 'X')
/* Kc codes for CTRL-keys that are processed at the virtual key level */
#define kcNewCopy KcFromKk( kkNewCopy )
#define kcNewUndo KcFromKk( kkNewUndo )
#define kcNewPaste KcFromKk( kkNewPaste )
#define kcNewCut KcFromKk( kkNewCut )
#define kcTopDoc KcFromKk( kkTopDoc )
#define kcEndDoc KcFromKk( kkEndDoc )
#define kcTopScreen KcFromKk( kkTopScreen )
#define kcEndScreen KcFromKk( kkEndScreen )
#define kcWordLeft KcFromKk( kkWordLeft )
#define kcWordRight KcFromKk( kkWordRight )
#define kcCut KcFromKk( kkCut )
#define kcPaste KcFromKk( kkPaste )
#define kcCopy KcFromKk( kkCopy )
#define kcClear KcFromKk( kkClear )
#define kcUndo KcFromKk( kkUndo )
#define kcUpScrollLock KcFromKk( kkUpScrollLock )
#define kcDownScrollLock KcFromKk( kkDownScrollLock )
#ifdef DEBUG /* kc codes for Debugging control keys */
#define kcEatWinMemory KcFromKks(kksEatWinMemory)
#define kcFreeWinMemory KcFromKks(kksFreeWinMemory)
#define kcEatMemory KcFromKks(kksEatMemory)
#define kcFreeMemory KcFromKks(kksFreeMemory)
#define kcTest (KcFromKks(kksTest))
#endif /* DEBUG */
/* A special case: kcPageBreak is a CTRL-SHIFT key that is processed in
AlphaMode */
#define kcPageBreak KcFromKks( kksPageBreak )
#define kcNonReqHyphen KcFromKk( kkNonReqHyphen )
#ifdef CASHMERE /* These keys not supported by MEMO */
#define kcNonBrkSpace KcFromKk( kkNonBrkSpace )
#define kcNLEnter KcFromKk( kkNLEnter )
#endif
#endif /* #ifndef NOKCCODES */
/* Outside #ifdef because these are return codes from Kc funcs */
/* Also defined in mmw.c because of compiler stack overflow problems */
#define kcNil 0xFFFF
#define kcAlphaVirtual 0xFFFC /* Means "Virtual Key, must translate it" */
/* Display & text-processing characters. These are real characters in the ANSI
character set as opposed to characters that appear in the file. */
#define chSpace ' '
#define chHyphen '-'
#ifndef DBCS
/* we defined them in kanji.h */
#define chStatPage (CHAR)'\273'
#define chStatRH '>'
#define chEMark (CHAR)'\244'
#endif
#define chSplat '.'
#define chSectSplat ':'
#define chDot '.'
#define chDecimal '.'
#define chBang '!'
#define chQMark '?'
#define chQuote '"'
#define chFldSep ','
#define chLParen '('
#define chRParen ')'
#define chStar '*'
#define chLFldFile (CHAR)'\253'
#define chRFldFile (CHAR)'\273'
#define chNBH (CHAR)'\255' /* Non-breaking hyphen */
#define chNBSFile (CHAR)'\240' /* Non-breaking space */
/* The following are "special" characters that are essentially macros for longer
strings. */
#define schPage (CHAR)'\001'
#define schFootnote (CHAR)'\005'
#define schInclude (CHAR)'\006'
/* Characters in Search patterns */
#define chPrefixMatch '^'
#define chMatchAny '?'
#define chMatchWhite 'w'
#define chMatchTab 't'
#define chMatchEol 'p'
#define chMatchNewLine 'n'
#define chMatchSect 'd'
#define chMatchNBSFile 's'
#define chMatchNRHFile '-'
/* ANSI block character, see FWriteExtTextScrap! ..pault */
#define chBlock 0x7f