windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/pendingassembly.cpp
2020-09-26 16:20:57 +08:00

66 lines
1.2 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
pendingassembly.cpp
Abstract:
Sources for the CPendingAssembly class
Author:
Michael J. Grier (MGrier) 23-Feb-2000
Revision History:
xiaoyuw 09/2000 replace attributes with assembly identity
--*/
#include "stdinc.h"
#include "pendingassembly.h"
CPendingAssembly::CPendingAssembly() :
m_SourceAssembly(NULL),
m_Identity(NULL),
m_Optional(false),
m_MetadataSatellite(false)
{
}
CPendingAssembly::~CPendingAssembly()
{
if (m_Identity != NULL)
{
::SxsDestroyAssemblyIdentity(m_Identity);
m_Identity = NULL;
}
}
BOOL
CPendingAssembly::Initialize(
PASSEMBLY Assembly,
PCASSEMBLY_IDENTITY Identity,
bool Optional,
bool MetadataSatellite
)
{
BOOL fSuccess = FALSE;
FN_TRACE_WIN32(fSuccess);
INTERNAL_ERROR_CHECK(m_Identity == NULL);
PARAMETER_CHECK(Identity != NULL);
IFW32FALSE_EXIT(::SxsDuplicateAssemblyIdentity(0, Identity, &m_Identity));
m_SourceAssembly = Assembly;
m_Optional = Optional;
m_MetadataSatellite = MetadataSatellite;
fSuccess = TRUE;
Exit:
return fSuccess;
}