windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/guidsectgen.cpp
2020-09-26 16:20:57 +08:00

87 lines
1.9 KiB
C++

#include "stdinc.h"
#include <windows.h>
#include "sxsp.h"
#include "gsgenctx.h"
BOOL
SxsInitGuidSectionGenerationContext(
OUT PGUID_SECTION_GENERATION_CONTEXT *GSGenContext,
IN ULONG DataFormatVersion,
IN GUID_SECTION_GENERATION_CONTEXT_CALLBACK_FUNCTION CallbackFunction,
IN LPVOID Context
)
{
return CGSGenCtx::Create(
GSGenContext,
DataFormatVersion,
CallbackFunction,
Context);
}
PVOID
WINAPI
SxsGetGuidSectionGenerationContextCallbackContext(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext
)
{
return ((CGSGenCtx *) GSGenContext)->GetCallbackContext();
}
VOID
WINAPI
SxsDestroyGuidSectionGenerationContext(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext
)
{
if (GSGenContext != NULL)
{
((CGSGenCtx *) GSGenContext)->DeleteYourself();
}
}
BOOL
WINAPI
SxsAddGuidToGuidSectionGenerationContext(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext,
IN const GUID *Guid,
IN PVOID DataContext,
IN ULONG AssemblyRosterIndex,
IN DWORD DuplicateGuidErrorCode
)
{
return ((CGSGenCtx *) GSGenContext)->Add(*Guid, DataContext, AssemblyRosterIndex, DuplicateGuidErrorCode);
}
BOOL
WINAPI
SxsFindStringInGuidSectionGenerationContext(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext,
IN const GUID *Guid,
OUT PVOID *DataContext
)
{
return ((CGSGenCtx *) GSGenContext)->Find(*Guid, DataContext);
}
BOOL
WINAPI
SxsGetGuidSectionGenerationContextSectionSize(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext,
OUT PSIZE_T DataSize
)
{
return ((CGSGenCtx *) GSGenContext)->GetSectionSize(DataSize);
}
BOOL
WINAPI
SxsGetGuidSectionGenerationContextSectionData(
IN PGUID_SECTION_GENERATION_CONTEXT GSGenContext,
IN SIZE_T BufferSize,
IN PVOID Buffer,
OUT PSIZE_T BytesWritten OPTIONAL
)
{
return ((CGSGenCtx *) GSGenContext)->GetSectionData(BufferSize, Buffer, BytesWritten);
}