Visual C++ backend for rbuild (for now just a hacked mingw backend) and related compi...
[reactos.git] / lib / inflib / infhost.h
1 /*
2 * PROJECT: .inf file parser
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PROGRAMMER: Royce Mitchell III
5 * Eric Kohl
6 * Ge van Geldorp <gvg@reactos.org>
7 */
8
9 #ifndef INFHOST_H_INCLUDED
10 #define INFHOST_H_INCLUDED
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* __cplusplus */
15
16 #include "infcommon.h"
17
18 extern int InfHostOpenBufferedFile(PHINF InfHandle,
19 void *Buffer,
20 ULONG BufferSize,
21 ULONG *ErrorLine);
22 extern int InfHostOpenFile(PHINF InfHandle,
23 const CHAR *FileName,
24 ULONG *ErrorLine);
25 extern int InfHostWriteFile(HINF InfHandle,
26 const CHAR *FileName,
27 const CHAR *HeaderComment);
28 extern void InfHostCloseFile(HINF InfHandle);
29 extern int InfHostFindFirstLine(HINF InfHandle,
30 const CHAR *Section,
31 const CHAR *Key,
32 PINFCONTEXT *Context);
33 extern int InfHostFindNextLine(PINFCONTEXT ContextIn,
34 PINFCONTEXT ContextOut);
35 extern int InfHostFindFirstMatchLine(PINFCONTEXT ContextIn,
36 const CHAR *Key,
37 PINFCONTEXT ContextOut);
38 extern int InfHostFindNextMatchLine(PINFCONTEXT ContextIn,
39 const CHAR *Key,
40 PINFCONTEXT ContextOut);
41 extern LONG InfHostGetLineCount(HINF InfHandle,
42 const CHAR *Section);
43 extern LONG InfHostGetFieldCount(PINFCONTEXT Context);
44 extern int InfHostGetBinaryField(PINFCONTEXT Context,
45 ULONG FieldIndex,
46 UCHAR *ReturnBuffer,
47 ULONG ReturnBufferSize,
48 ULONG *RequiredSize);
49 extern int InfHostGetIntField(PINFCONTEXT Context,
50 ULONG FieldIndex,
51 ULONG *IntegerValue);
52 extern int InfHostGetMultiSzField(PINFCONTEXT Context,
53 ULONG FieldIndex,
54 CHAR *ReturnBuffer,
55 ULONG ReturnBufferSize,
56 ULONG *RequiredSize);
57 extern int InfHostGetStringField(PINFCONTEXT Context,
58 ULONG FieldIndex,
59 CHAR *ReturnBuffer,
60 ULONG ReturnBufferSize,
61 ULONG *RequiredSize);
62 extern int InfHostGetData(PINFCONTEXT Context,
63 CHAR **Key,
64 CHAR **Data);
65 extern int InfHostGetDataField(PINFCONTEXT Context,
66 ULONG FieldIndex,
67 CHAR **Data);
68 extern int InfHostFindOrAddSection(HINF InfHandle,
69 const CHAR *Section,
70 PINFCONTEXT *Context);
71 extern int InfHostAddLine(PINFCONTEXT Context, const CHAR *Key);
72 extern int InfHostAddField(PINFCONTEXT Context, const CHAR *Data);
73 extern void InfHostFreeContext(PINFCONTEXT Context);
74
75 #ifdef __cplusplus
76 }
77 #endif /* __cplusplus */
78
79 #endif /* INFROS_H_INCLUDED */
80
81 /* EOF */