Leaked source code of windows server 2003
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

/*
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);
}