windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/actctxgenctxctb.h

133 lines
4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#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