133 lines
4 KiB
C++
133 lines
4 KiB
C++
#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 |