xref: /reactos/sdk/lib/inflib/infhost.h (revision c2c66aff)
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 #pragma once
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif /* __cplusplus */
14 
15 #include "infcommon.h"
16 
17 extern int InfHostOpenBufferedFile(PHINF InfHandle,
18                                    void *Buffer,
19                                    ULONG BufferSize,
20                                    LANGID LanguageId,
21                                    ULONG *ErrorLine);
22 extern int InfHostOpenFile(PHINF InfHandle,
23                            const CHAR *FileName,
24                            LANGID LanguageId,
25                            ULONG *ErrorLine);
26 extern int InfHostWriteFile(HINF InfHandle,
27                             const CHAR *FileName,
28                             const CHAR *HeaderComment);
29 extern void InfHostCloseFile(HINF InfHandle);
30 extern int InfHostFindFirstLine(HINF InfHandle,
31                                 const WCHAR *Section,
32                                 const WCHAR *Key,
33                                 PINFCONTEXT *Context);
34 extern int InfHostFindNextLine(PINFCONTEXT ContextIn,
35                                PINFCONTEXT ContextOut);
36 extern int InfHostFindFirstMatchLine(PINFCONTEXT ContextIn,
37                                      const WCHAR *Key,
38                                      PINFCONTEXT ContextOut);
39 extern int InfHostFindNextMatchLine(PINFCONTEXT ContextIn,
40                                     const WCHAR *Key,
41                                     PINFCONTEXT ContextOut);
42 extern LONG InfHostGetLineCount(HINF InfHandle,
43                                 const WCHAR *Section);
44 extern LONG InfHostGetFieldCount(PINFCONTEXT Context);
45 extern int InfHostGetBinaryField(PINFCONTEXT Context,
46                                  ULONG FieldIndex,
47                                  UCHAR *ReturnBuffer,
48                                  ULONG ReturnBufferSize,
49                                  ULONG *RequiredSize);
50 extern int InfHostGetIntField(PINFCONTEXT Context,
51                               ULONG FieldIndex,
52                               INT *IntegerValue);
53 extern int InfHostGetMultiSzField(PINFCONTEXT Context,
54                                   ULONG FieldIndex,
55                                   WCHAR *ReturnBuffer,
56                                   ULONG ReturnBufferSize,
57                                   ULONG *RequiredSize);
58 extern int InfHostGetStringField(PINFCONTEXT Context,
59                                  ULONG FieldIndex,
60                                  WCHAR *ReturnBuffer,
61                                  ULONG ReturnBufferSize,
62                                  ULONG *RequiredSize);
63 extern int InfHostGetData(PINFCONTEXT Context,
64                           WCHAR **Key,
65                           WCHAR **Data);
66 extern int InfHostGetDataField(PINFCONTEXT Context,
67                                ULONG FieldIndex,
68                                WCHAR **Data);
69 extern int InfHostFindOrAddSection(HINF InfHandle,
70                                    const WCHAR *Section,
71                                    PINFCONTEXT *Context);
72 extern int InfHostAddLine(PINFCONTEXT Context, const WCHAR *Key);
73 extern int InfHostAddField(PINFCONTEXT Context, const WCHAR *Data);
74 extern void InfHostFreeContext(PINFCONTEXT Context);
75 
76 #ifdef __cplusplus
77 }
78 #endif /* __cplusplus */
79 
80 /* EOF */
81