Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

273 lines
9.4 KiB

4 years ago
  1. #include "fc.h"
  2. #ifndef _NAV_H
  3. #define _NAV_H
  4. #define RAWHIDE
  5. /*****************************************************************************
  6. *
  7. * NAV.H
  8. *
  9. * Copyright (C) Microsoft Corporation 1990.
  10. * All Rights reserved.
  11. *
  12. ******************************************************************************
  13. *
  14. * Module Intent: Exports functionality from NAV
  15. *
  16. ******************************************************************************
  17. *
  18. * Testing Notes
  19. *
  20. ******************************************************************************
  21. *
  22. * Current Owner:
  23. *
  24. ******************************************************************************
  25. *
  26. * Released by Development: (date)
  27. *
  28. ******************************************************************************
  29. *
  30. * Revision History:
  31. *
  32. * 07/11/90 RobertBu prototype for function FShowTitles() added.
  33. * 07/19/90 RobertBu Added prototypes for FShowBrowseButtons(),
  34. * Index(), Search(), Back(), Next(), and Prev().
  35. * 07/22/90 RobertBu Added FPopupCtx(), FJumpId(), and FPopupId()
  36. * 07/23/90 RobertBu Added FPopupHash() and FJumpHash(). Added
  37. * wBTN_IFJUMP and wBTN_IFPOPUP for interfile jumps and popups.
  38. * 08/10/90 RobertBu Added prototype for GetDETypeHde()
  39. * 10/19/90 LeoN HdeCreate no longer takes an hwnd, add SetHdeHwnd
  40. * 10/25/90 LeoN JumpButton takes a LPVOID
  41. * 10/28/90 JohnSc Removed wBTN_*: use #defines from objects.h instead;
  42. * cleaned up some macros
  43. * 11/04/90 RobertBu Added prototypes for macro binding functions for
  44. * menu functionality.
  45. * 11/04/90 Tomsn Use new VA address type (enabling zeck compression)
  46. * 12/08/90 RobertBu Added/changed prototypes for dealing with help-on files
  47. * 12/11/90 RobertBu GhGetHoh() -> FGetHohQch()
  48. * 12/18/90 RobertBu Added prototypes for functions to implement the Mark
  49. * macros and the conditional macros.
  50. * 01/04/90 LeoN Added FIsNSRHde
  51. * 90/01/10 kevynct Added Jump Descriptor
  52. * 02/04/91 Maha changed ints to INT
  53. * 05/16/91 LeoN HELP31 #1063: Add FmGetHde
  54. * 05/20/91 LeoN Add DiscardDLLList
  55. * 08/08/91 LeoN Add HelpOnTop()
  56. * 17-Dec-1991 RussPJ 3.1 #1285 - Added FRaiseMacroFlag(), etc.
  57. *
  58. *****************************************************************************/
  59. /*****************************************************************************
  60. *
  61. * Defines
  62. *
  63. *****************************************************************************/
  64. /* CONSTANTS */
  65. #define iINDEX 0L
  66. #define nilCTX 0L
  67. /* Possible vals for SCRLAMT */
  68. #define SCROLL_PAGEUP 1
  69. #define SCROLL_PAGEDN 2
  70. #define SCROLL_LINEUP 3
  71. #define SCROLL_LINEDN 4
  72. #define SCROLL_HOME 5
  73. #define SCROLL_END 6
  74. /* Possible values for SCRLDIR (Scroll direction). Also specifies
  75. which scroll bar is referred to in some Navigator calls. */
  76. #define SCROLL_HORZ 1 /* Bit flags */
  77. #define SCROLL_VERT 2
  78. /* Constants for MouseInFrame() */
  79. #define NAV_MOUSEMOVED WM_MOUSEMOVE
  80. #define NAV_MOUSEDOWN WM_LBUTTONDOWN
  81. #define NAV_MOUSEUP WM_LBUTTONUP
  82. #define NAV_UNINITIALIZED 1 /* Internal to nav package */
  83. #define NAV_NEXTABLE 2
  84. #define NAV_PREVABLE 4
  85. #define NAV_BACKABLE 8 /* If backtracking is possible */
  86. #define NAV_FORWARDABLE 16 /* If not viewing the index */
  87. #define NAV_INDEX 32
  88. #define NAV_UDH 64
  89. #define NAV_SEARCHABLE 128 /* Are there any keywords? */
  90. #define NAV_TOPICFLAGS (NAV_NEXTABLE|NAV_PREVABLE|NAV_BACKABLE|NAV_FORWARDABLE \
  91. |NAV_INDEX|NAV_UDH|NAV_SEARCHABLE)
  92. #define NAV_ALLFLAGS (NAV_TOPICFLAGS)
  93. /*
  94. The value of bAnnoHotspot must differ from all valid hotspot types
  95. in objects.h because it is passed to JumpButton() as a parameter.
  96. */
  97. #define bAnnoHotspot 0xB0
  98. /* Messages to pass to NAV (via WNavMsgHde) */
  99. #define NAV_NEXTHS 0 /* Move highlight to next hot spot */
  100. #define NAV_PREVHS 1 /* Move highlight to prev hot spot */
  101. #define NAV_HITHS 2 /* "Hit" highlighted hot spot */
  102. #define NAV_TOTALHILITEON 3 /* Turn on all screen hotspots if off */
  103. #define NAV_TOTALHILITEOFF 4 /* Turn off all screen hotspots if on */
  104. /* Return values for passing message to NAV (via WNavMsgHde) */
  105. #define wNavFailure 0
  106. #define wNavSuccess 1
  107. #define wNavNoHotspotsExist 2
  108. #define wNavNoMoreHotspots 3
  109. const int cchMAXBINDING = 512; // Maximum size of a macro string
  110. /* Match manager navigation commands */
  111. #define wNavSrchInit 1
  112. #define wNavSrchFini 2
  113. #define wNavSrchCurrTopic 3
  114. #define wNavSrchFirstTopic 4
  115. #define wNavSrchLastTopic 5
  116. #define wNavSrchPrevTopic 6
  117. #define wNavSrchNextTopic 7
  118. #define wNavSrchPrevMatch 8
  119. #define wNavSrchNextMatch 9
  120. #define wNavSrchQuerySearchable 10
  121. #define wNavSrchQueryHasMatches 11
  122. #define wNavSrchHiliteOn 12
  123. #define wNavSrchHiliteOff 13
  124. #define VaFirstQde(qde) ((qde)->deType == deNSR ? \
  125. ((qde)->top.mtop.vaNSR) : ((qde)->top.mtop.vaSR))
  126. #define VaMarkTopQde(qde) VaLayoutBoundsQde(qde, TRUE)
  127. #define VaMarkBottomQde(qde) VaLayoutBoundsQde(qde, FALSE)
  128. #define DwFirstSeqTopic(qde) ((DWORD)13) /* HACK!! This is sizeof(MBHD) */
  129. #define DwNextSeqTopic(qde) ((qde)->top.mtop.vaNextSeqTopic.dword)
  130. #define FIsNoteHde( hde ) ( deNote == GetDETypeHde( hde ) )
  131. #define FIsTopicHde( hde ) ( deTopic == GetDETypeHde( hde ) )
  132. #define FIsPrintHde( hde ) ( dePrint == GetDETypeHde( hde ) )
  133. #define FIsCopyHde( hde ) ( deCopy == GetDETypeHde( hde ) )
  134. #define FIsNSRHde( hde ) ( deNSR == GetDETypeHde( hde ) )
  135. #define JumpQLA(hde, qla) JumpGeneric((hde), FALSE, (qla), NULL)
  136. #define JumpTLP(hde, tlp) JumpGeneric((hde), TRUE, NULL, &(tlp))
  137. #define JumpNextTopic(hde) \
  138. do { LA la; INT ito; \
  139. (FNextTopicHde(hde, TRUE, &ito, &la)) ? \
  140. TopicGoto(fGOTO_ITO, &ito) : TopicGoto(fGOTO_LA, &la); \
  141. } while ( 0 )
  142. #define JumpPrevTopic(hde) \
  143. do { LA la; INT ito; \
  144. (FNextTopicHde(hde, FALSE, &ito, &la)) ? \
  145. TopicGoto(fGOTO_ITO, &ito) : TopicGoto(fGOTO_LA, &la); \
  146. } while ( 0 )
  147. #define GetTLPNSRStartHde(hde, qtlp) FGetTLPStartInfo(hde, qtlp, TRUE)
  148. #define GetTLPTopicStartHde(hde, qtlp) FGetTLPStartInfo(hde, qtlp, FALSE)
  149. #define FTopicHasNSR(hde) FGetTLPStartInfo(hde, (QTLP) NULL, TRUE)
  150. #define FTopicHasSR(hde) FGetTLPStartInfo(hde, (QTLP) NULL, FALSE)
  151. /*****************************************************************************
  152. *
  153. * Prototypes
  154. *
  155. *****************************************************************************/
  156. #ifdef RAWHIDE
  157. BOOL FAR PASCAL FRawhideSearchableHde(HDE);
  158. BOOL FAR PASCAL FSearchSetEmptyHde(HDE);
  159. RC_TYPE FAR PASCAL RcProcessNavSrchCmd(HDE, WORD, QLA);
  160. RC_TYPE FAR PASCAL RcCallSearch(HDE, HWND);
  161. RC_TYPE FAR PASCAL RcResetCurrMatchFile(HDE);
  162. #endif
  163. VOID PASCAL About(VOID);
  164. VOID PASCAL Action(WORD);
  165. VOID PASCAL Annotate(VOID);
  166. VOID PASCAL Back(VOID);
  167. VOID PASCAL BacktrackHde( HDE, BOOL );
  168. VOID PASCAL BookmarkDefine(VOID);
  169. VOID PASCAL BookmarkMore(VOID);
  170. VOID PASCAL BrowseButtons(VOID);
  171. DWORD PASCAL CbTopicQde(QDE);
  172. void PASCAL ClearMacroFlag( void );
  173. VOID PASCAL CloseNav( VOID );
  174. VOID PASCAL Command(WORD);
  175. VOID PASCAL ConfigMacrosHde(HDE);
  176. VOID PASCAL CopySpecial(VOID);
  177. VOID PASCAL DeleteMark(LPSTR);
  178. VOID PASCAL DestroyHde( HDE );
  179. VOID PASCAL DiscardDLLList(VOID);
  180. VOID PASCAL doCopy(VOID);
  181. INT PASCAL DyGetLayoutHeightHde(HDE);
  182. VOID PASCAL Exit(VOID);
  183. BOOL PASCAL FActivateHelp(HDE, BOOL);
  184. BOOL PASCAL FDisplayAnnoHde(HDE);
  185. BOOL PASCAL FGetHohQch(HDE, LPSTR, WORD);
  186. BOOL PASCAL FGetStateHde( HDE, QSTATE, QSTATE );
  187. BOOL PASCAL FGetTLPStartInfo(HDE, QTLP, BOOL);
  188. VOID PASCAL FileOpen(VOID);
  189. BOOL PASCAL FInitNav( VOID );
  190. BOOL PASCAL FJumpContext(LPCSTR, DWORD);
  191. BOOL PASCAL FJumpHash(LPSTR, DWORD);
  192. BOOL PASCAL FJumpHOH(VOID);
  193. BOOL PASCAL FJumpId(LPSTR, LPSTR);
  194. BOOL PASCAL FJumpIndex(LPCSTR);
  195. BOOL PASCAL FMark(LPSTR);
  196. BOOL PASCAL FNextTopicHde(HDE, BOOL, int*, QLA);
  197. BOOL PASCAL FNot(BOOL);
  198. BOOL PASCAL FPopupCtx(LPCSTR, DWORD);
  199. BOOL PASCAL FPopupHash(LPSTR, DWORD);
  200. BOOL PASCAL FPopupId(LPSTR, LPSTR);
  201. BOOL PASCAL FRaiseMacroFlag( void );
  202. BOOL PASCAL FSameFile(HDE, FM);
  203. BOOL PASCAL FSetIndex(LPSTR, DWORD);
  204. BOOL PASCAL FShowKey(LPSTR, LPSTR);
  205. BOOL PASCAL FTestMacroFlag( void );
  206. BOOL PASCAL FWinHelp(LPCSTR, UINT, DWORD);
  207. VOID PASCAL GetCurrentTitleQde(QDE, LPSTR, INT);
  208. WORD PASCAL GetDETypeHde(HDE);
  209. VOID PASCAL GotoMark(LPSTR);
  210. HDE PASCAL HdeCreate(FM, HDE, short);
  211. VOID PASCAL HelpOn(VOID);
  212. VOID PASCAL HelpOnTop(VOID);
  213. VOID PASCAL History(VOID);
  214. VOID PASCAL IfThen(BOOL, LPSTR);
  215. VOID PASCAL IfThenElse(BOOL, LPSTR, LPSTR);
  216. VOID PASCAL Index(VOID);
  217. VOID PASCAL JumpButton (LPVOID, WORD, WORD);
  218. BOOL PASCAL JumpCtx(HDE, CTX);
  219. VOID PASCAL JumpGeneric(HDE, BOOL, QLA, QTLP);
  220. BOOL PASCAL JumpHash(HDE, int);
  221. VOID PASCAL JumpITO(HDE, int);
  222. VOID PASCAL JumpSS(HDE, GH);
  223. VOID PASCAL MouseInFrame( HDE, LPPOINT, INT );
  224. VOID PASCAL Next(VOID);
  225. VOID PASCAL Prev(VOID);
  226. VOID PASCAL Print(VOID);
  227. VOID PASCAL Print(VOID);
  228. VOID PASCAL PrinterSetup(VOID);
  229. POINT PASCAL PtGetLayoutSizeHde(HDE);
  230. RECT PASCAL RctLastHotspotHde(HDE);
  231. VOID PASCAL RefreshHde( HDE, LPRECT );
  232. VOID PASCAL SaveMark(LPSTR);
  233. VOID PASCAL Search(VOID);
  234. VOID PASCAL SetHdeCoBack (HDE, DWORD);
  235. VOID PASCAL SetHdeHwnd (HDE, HWND);
  236. VOID PASCAL SetHds( HDE, HDC );
  237. VOID PASCAL SetHelpOn(LPSTR);
  238. VOID PASCAL SetIndex(HDE, CTX);
  239. VOID PASCAL SetSizeHdeQrct( HDE, LPRECT, BOOL );
  240. STATE PASCAL StateGetHde(HDE);
  241. TLP PASCAL TLPCurrentHde(HDE);
  242. VA PASCAL VaLayoutBoundsQde(QDE, BOOL);
  243. WORD PASCAL WNavMsgHde(HDE, WORD);
  244. #endif