mirror of
https://github.com/reactos/reactos.git
synced 2024-11-01 04:11:30 +00:00
250 lines
4.3 KiB
C
250 lines
4.3 KiB
C
/*
|
|
* 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 */
|