Release 980301
[wine] / programs / winhelp / hlpfile.h
1 /*
2  * Help Viewer
3  *
4  * Copyright 1996 Ulrich Schmid
5  */
6
7 struct tagHelpFile;
8
9 typedef struct
10 {
11   LPCSTR  lpszPath;
12   LONG    lHash;
13   BOOL    bPopup;
14
15   HGLOBAL hSelf;
16 } HLPFILE_LINK;
17
18 typedef struct tagHlpFileParagraph
19 {
20   LPSTR  lpszText;
21
22   UINT   bDebug;
23   UINT   wFont;
24   UINT   wIndent;
25   UINT   wHSpace;
26   UINT   wVSpace;
27
28   HLPFILE_LINK *link;
29
30   struct tagHlpFileParagraph *next;
31
32   HGLOBAL hSelf;
33 } HLPFILE_PARAGRAPH;
34
35 typedef struct tagHlpFilePage
36 {
37   LPSTR          lpszTitle;
38   HLPFILE_PARAGRAPH *first_paragraph;
39
40   UINT wNumber;
41
42   struct tagHlpFilePage *next;
43   struct tagHlpFileFile *file;
44
45   HGLOBAL hSelf;
46 } HLPFILE_PAGE;
47
48 typedef struct
49 {
50   LONG lHash;
51   UINT wPage;
52 } HLPFILE_CONTEXT;
53
54 typedef struct tagHlpFileMacro
55 {
56   LPCSTR lpszMacro;
57
58   HGLOBAL hSelf;
59   struct tagHlpFileMacro *next;
60 } HLPFILE_MACRO;
61
62 typedef struct tagHlpFileFile
63 {
64   LPSTR        lpszPath;
65   LPSTR        lpszTitle;
66   HLPFILE_PAGE    *first_page;
67   HLPFILE_MACRO   *first_macro;
68   UINT         wContextLen;
69   HLPFILE_CONTEXT *Context;
70
71   struct tagHlpFileFile *prev;
72   struct tagHlpFileFile *next;
73
74   UINT       wRefCount;
75
76   HGLOBAL    hTitle;
77   HGLOBAL    hContext;
78   HGLOBAL    hSelf;
79 } HLPFILE;
80
81 HLPFILE      *HLPFILE_ReadHlpFile(LPCSTR lpszPath);
82 HLPFILE_PAGE *HLPFILE_Contents(LPCSTR lpszPath);
83 HLPFILE_PAGE *HLPFILE_PageByHash(LPCSTR lpszPath, LONG wNum);
84 LONG          HLPFILE_Hash(LPCSTR lpszContext);
85 VOID          HLPFILE_FreeHlpFilePage(HLPFILE_PAGE*);
86 VOID          HLPFILE_FreeHlpFile(HLPFILE*);
87
88 /* Local Variables:    */
89 /* c-file-style: "GNU" */
90 /* End:                */