|
|
#if !defined(_FUSION_SXS_ACTCTXGENCTXCTB_H_INCLUDED_)
#define _FUSION_SXS_ACTCTXGENCTXCTB_H_INCLUDED_
#pragma once
/*-----------------------------------------------------------------------------
ACTivation ConTeXt GENneration ConTeXt ConTriButor -----------------------------------------------------------------------------*/
#include "sxsp.h"
#include "ForwardDeclarations.h"
class CActivationContextGenerationContextContributor { public: CActivationContextGenerationContextContributor() : m_ActCtxCtb(NULL), m_ActCtxGenContext(NULL), m_ManifestParseContext(NULL), m_ManifestParseContextValid(FALSE), m_NoMoreCallbacksThisFile(FALSE), m_SectionSize(0) { } ~CActivationContextGenerationContextContributor();
BOOL Initialize(PACTCTXCTB ActCtxCtb, PVOID ActCtxGenContext);
VOID PopulateCallbackHeader(ACTCTXCTB_CBHEADER &Header, ULONG Reason, PACTCTXGENCTX pActCtxGenCtx);
// comparison function for qsort()
static int __cdecl Compare(const void *pelem1, const void *pelem2);
bool IsExtendedSection() const { return m_IsExtendedSection; } PCWSTR Name() const; const GUID &ExtensionGuid() const; ULONG SectionId() const; ULONG SectionFormat() const;
BOOL Fire_ParseBeginning( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, DWORD FileFlags, ULONG ParseType, ULONG FilePathType, PCWSTR FilePath, SIZE_T FilePathCch, const FILETIME &FileLastWriteTime, ULONG FileFormatVersionMajor, ULONG FileFormatVersionMinor, ULONG MetadataSatelliteRosterIndex ); BOOL Fire_IdentityDetermined( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, PCASSEMBLY_IDENTITY AssemblyIdentity ); BOOL Fire_BeginChildren( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, PCSXS_NODE_INFO NodeInfo ); BOOL Fire_EndChildren( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, BOOL Empty, PCSXS_NODE_INFO NodeInfo ); BOOL Fire_ElementParsed( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, USHORT NodeCount, PCSXS_NODE_INFO NodeInfo ); BOOL Fire_PCDATAParsed( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, const WCHAR *Text, ULONG TextCch ); BOOL Fire_CDATAParsed( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext, PCACTCTXCTB_PARSE_CONTEXT ParseContext, const WCHAR *Text, ULONG TextCch ); BOOL Fire_ParseEnding( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext ); VOID Fire_ParseEnded( PACTCTXGENCTX pActCtxGenCtx, PCACTCTXCTB_ASSEMBLY_CONTEXT AssemblyContext ); BOOL Fire_AllParsingDone( PACTCTXGENCTX pActCtxGenCtx ); BOOL Fire_GetSectionSize( PACTCTXGENCTX pActCtxGenCtx ); BOOL Fire_GetSectionData( PACTCTXGENCTX pActCtxGenCtx, PVOID Buffer );
BOOL Fire_ActCtxGenEnding( PACTCTXGENCTX pActCtxGenCtx );
VOID Fire_ActCtxGenEnded( PACTCTXGENCTX pActCtxGenCtx );
SIZE_T SectionSize() const { return m_SectionSize; } PVOID ActCtxGenContext() const { return m_ActCtxGenContext; }
// protected:
PVOID m_ManifestParseContext; BOOL m_ManifestParseContextValid; BOOL m_NoMoreCallbacksThisFile;
protected: PACTCTXCTB m_ActCtxCtb; PVOID m_ActCtxGenContext; SIZE_T m_SectionSize; bool m_IsExtendedSection; };
#endif
|