Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / lib / inflib / infhostget.c
diff --git a/sdk/lib/inflib/infhostget.c b/sdk/lib/inflib/infhostget.c
new file mode 100644 (file)
index 0000000..e1714d6
--- /dev/null
@@ -0,0 +1,249 @@
+/*
+ * PROJECT:    .inf file parser
+ * LICENSE:    GPL - See COPYING in the top level directory
+ * PROGRAMMER: Royce Mitchell III
+ *             Eric Kohl
+ *             Ge van Geldorp <gvg@reactos.org>
+ */
+
+/* INCLUDES *****************************************************************/
+
+#include "inflib.h"
+#include "infhost.h"
+
+#define NDEBUG
+#include <debug.h>
+
+int
+InfHostFindFirstLine(HINF InfHandle,
+                     const WCHAR *Section,
+                     const WCHAR *Key,
+                     PINFCONTEXT *Context)
+{
+  INFSTATUS Status;
+
+  Status = InfpFindFirstLine(InfHandle, Section, Key, Context);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostFindNextLine(PINFCONTEXT ContextIn,
+                    PINFCONTEXT ContextOut)
+{
+  INFSTATUS Status;
+
+  Status = InfpFindNextLine(ContextIn, ContextOut);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostFindFirstMatchLine(PINFCONTEXT ContextIn,
+                          const WCHAR *Key,
+                          PINFCONTEXT ContextOut)
+{
+  INFSTATUS Status;
+
+  Status = InfpFindFirstMatchLine(ContextIn, Key, ContextOut);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostFindNextMatchLine(PINFCONTEXT ContextIn,
+                         const WCHAR *Key,
+                         PINFCONTEXT ContextOut)
+{
+  INFSTATUS Status;
+
+  Status = InfpFindNextMatchLine(ContextIn, Key, ContextOut);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+LONG
+InfHostGetLineCount(HINF InfHandle,
+                    PCWSTR Section)
+{
+  return InfpGetLineCount(InfHandle, Section);
+}
+
+
+/* InfGetLineText */
+
+
+LONG
+InfHostGetFieldCount(PINFCONTEXT Context)
+{
+  return InfpGetFieldCount(Context);
+}
+
+
+int
+InfHostGetBinaryField(PINFCONTEXT Context,
+                      ULONG FieldIndex,
+                      UCHAR *ReturnBuffer,
+                      ULONG ReturnBufferSize,
+                      ULONG *RequiredSize)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetBinaryField(Context, FieldIndex, ReturnBuffer,
+                              ReturnBufferSize, RequiredSize);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostGetIntField(PINFCONTEXT Context,
+                   ULONG FieldIndex,
+                   INT *IntegerValue)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetIntField(Context, FieldIndex, IntegerValue);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostGetMultiSzField(PINFCONTEXT Context,
+                       ULONG FieldIndex,
+                       WCHAR *ReturnBuffer,
+                       ULONG ReturnBufferSize,
+                       ULONG *RequiredSize)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetMultiSzField(Context, FieldIndex, ReturnBuffer,
+                               ReturnBufferSize, RequiredSize);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostGetStringField(PINFCONTEXT Context,
+                      ULONG FieldIndex,
+                      WCHAR *ReturnBuffer,
+                      ULONG ReturnBufferSize,
+                      ULONG *RequiredSize)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetStringField(Context, FieldIndex, ReturnBuffer,
+                              ReturnBufferSize, RequiredSize);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostGetData(PINFCONTEXT Context,
+               WCHAR **Key,
+               WCHAR **Data)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetData(Context, Key, Data);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+
+int
+InfHostGetDataField(PINFCONTEXT Context,
+                    ULONG FieldIndex,
+                    WCHAR **Data)
+{
+  INFSTATUS Status;
+
+  Status = InfpGetDataField(Context, FieldIndex, Data);
+  if (INF_SUCCESS(Status))
+    {
+      return 0;
+    }
+  else
+    {
+      errno = Status;
+      return -1;
+    }
+}
+
+VOID
+InfHostFreeContext(PINFCONTEXT Context)
+{
+  InfpFreeContext(Context);
+}
+
+/* EOF */