Sync to trunk r38500
[reactos.git] / reactos / lib / inflib / infros.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 INFROS_H_INCLUDED
10 #define INFROS_H_INCLUDED
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* __cplusplus */
15
16 #include <infcommon.h>
17
18 extern VOID InfSetHeap(PVOID Heap);
19 extern NTSTATUS InfOpenBufferedFile(PHINF InfHandle,
20 PVOID Buffer,
21 ULONG BufferSize,
22 PULONG ErrorLine);
23 extern NTSTATUS InfOpenFile(PHINF InfHandle,
24 PUNICODE_STRING FileName,
25 PULONG ErrorLine);
26 extern NTSTATUS InfWriteFile(HINF InfHandle,
27 PUNICODE_STRING FileName,
28 PUNICODE_STRING HeaderComment);
29 extern VOID InfCloseFile(HINF InfHandle);
30 extern BOOLEAN InfFindFirstLine(HINF InfHandle,
31 PCWSTR Section,
32 PCWSTR Key,
33 PINFCONTEXT *Context);
34 extern BOOLEAN InfFindNextLine(PINFCONTEXT ContextIn,
35 PINFCONTEXT ContextOut);
36 extern BOOLEAN InfFindFirstMatchLine(PINFCONTEXT ContextIn,
37 PCWSTR Key,
38 PINFCONTEXT ContextOut);
39 extern BOOLEAN InfFindNextMatchLine(PINFCONTEXT ContextIn,
40 PCWSTR Key,
41 PINFCONTEXT ContextOut);
42 extern LONG InfGetLineCount(HINF InfHandle,
43 PCWSTR Section);
44 extern LONG InfGetFieldCount(PINFCONTEXT Context);
45 extern BOOLEAN InfGetBinaryField(PINFCONTEXT Context,
46 ULONG FieldIndex,
47 PUCHAR ReturnBuffer,
48 ULONG ReturnBufferSize,
49 PULONG RequiredSize);
50 extern BOOLEAN InfGetIntField(PINFCONTEXT Context,
51 ULONG FieldIndex,
52 PINT IntegerValue);
53 extern BOOLEAN InfGetMultiSzField(PINFCONTEXT Context,
54 ULONG FieldIndex,
55 PWSTR ReturnBuffer,
56 ULONG ReturnBufferSize,
57 PULONG RequiredSize);
58 extern BOOLEAN InfGetStringField(PINFCONTEXT Context,
59 ULONG FieldIndex,
60 PWSTR ReturnBuffer,
61 ULONG ReturnBufferSize,
62 PULONG RequiredSize);
63 extern BOOLEAN InfGetData(PINFCONTEXT Context,
64 PWCHAR *Key,
65 PWCHAR *Data);
66 extern BOOLEAN InfGetDataField(PINFCONTEXT Context,
67 ULONG FieldIndex,
68 PWCHAR *Data);
69 extern BOOLEAN InfFindOrAddSection(HINF InfHandle,
70 PCWSTR Section,
71 PINFCONTEXT *Context);
72 extern BOOLEAN InfAddLine(PINFCONTEXT Context, PCWSTR Key);
73 extern BOOLEAN InfAddField(PINFCONTEXT Context, PCWSTR Data);
74 extern VOID InfFreeContext(PINFCONTEXT Context);
75
76 #ifdef __cplusplus
77 }
78 #endif /* __cplusplus */
79
80 #endif /* INFROS_H_INCLUDED */
81
82 /* EOF */