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.
|
|
/*
Copyright (c) Microsoft Corporation */ #include "stdinc.h"
#include "componentpolicytable.h"
BOOL CComponentPolicyTableHelper::HashKey( PCASSEMBLY_IDENTITY AssemblyIdentity, ULONG &rulPseudoKey ) { BOOL fSuccess = FALSE; FN_TRACE_WIN32(fSuccess);
PARAMETER_CHECK(AssemblyIdentity != NULL);
IFW32FALSE_EXIT(::SxsHashAssemblyIdentity(0, AssemblyIdentity, &rulPseudoKey));
fSuccess = TRUE; Exit: return fSuccess; }
BOOL CComponentPolicyTableHelper::CompareKey( PCASSEMBLY_IDENTITY keyin, const PCASSEMBLY_IDENTITY &rkeystored, bool &rfMatch ) { BOOL fSuccess = FALSE; FN_TRACE_WIN32(fSuccess); BOOL fEqual = FALSE;
rfMatch = false;
PARAMETER_CHECK(keyin != NULL); PARAMETER_CHECK(rkeystored != NULL);
IFW32FALSE_EXIT(::SxsAreAssemblyIdentitiesEqual(0, keyin, rkeystored, &fEqual));
if (fEqual) rfMatch = true;
fSuccess = TRUE; Exit: return fSuccess; }
BOOL CComponentPolicyTableHelper::InitializeKey( PCASSEMBLY_IDENTITY keyin, PCASSEMBLY_IDENTITY &rkeystored ) { BOOL fSuccess = FALSE; FN_TRACE_WIN32(fSuccess); PASSEMBLY_IDENTITY AssemblyIdentity = NULL;
rkeystored = NULL;
PARAMETER_CHECK(keyin != NULL);
IFW32FALSE_EXIT( ::SxsDuplicateAssemblyIdentity( SXS_DUPLICATE_ASSEMBLY_IDENTITY_FLAG_FREEZE, keyin, &AssemblyIdentity));
rkeystored = AssemblyIdentity; AssemblyIdentity = NULL;
fSuccess = TRUE; Exit: if (AssemblyIdentity != NULL) ::SxsDestroyAssemblyIdentity(AssemblyIdentity);
return fSuccess; }
BOOL CComponentPolicyTableHelper::InitializeValue( CPolicyStatement *vin, CPolicyStatement *&rvstored ) { BOOL fSuccess = FALSE; FN_TRACE_WIN32(fSuccess);
PARAMETER_CHECK(vin != NULL); INTERNAL_ERROR_CHECK(rvstored == NULL);
rvstored = vin;
fSuccess = TRUE; Exit: return fSuccess; }
BOOL CComponentPolicyTableHelper::UpdateValue( CPolicyStatement *vin, CPolicyStatement *&rvstored ) { BOOL fSuccess = FALSE; FN_TRACE_WIN32(fSuccess);
if (rvstored != NULL) FUSION_DELETE_SINGLETON(rvstored);
rvstored = vin;
fSuccess = TRUE; return fSuccess; }
|