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.
 
 
 
 
 
 

133 lines
4.1 KiB

#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