You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.2 KiB
94 lines
2.2 KiB
/*
|
|
Copyright (c) Microsoft Corporation
|
|
*/
|
|
#include "stdinc.h"
|
|
#include <windows.h>
|
|
#include "sxsp.h"
|
|
#include "gsgenctx.h"
|
|
|
|
//
|
|
// ISSUE: jonwis 3/7/2002 - No parameter checking ANYWHERE??
|
|
// ISSUE: jonwis 3/7/2002 - Why the C-style interface to a C++ class? Remove a layer, nuke this and go C++
|
|
//
|
|
|
|
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);
|
|
}
|