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.
|
|
#include "stdinc.h"
#include "regpaths.h"
#include "protectedstore.h"
CProtectedStoreDetails::~CProtectedStoreDetails() { const DWORD dwLastError = ::GetLastError(); this->Reset(); SetLastError(dwLastError); }
void CProtectedStoreDetails::Reset() { m_FileSystemPath.Clear(); m_SecDescBacking.Reset(); }
BOOL CProtectedStoreDetails::ResolveStore( LPCGUID pGuid, CProtectedStoreDetails *pTarget ) { BOOL fSuccess = FALSE; CStringBuffer PathToRegistry; CStringBuffer FormattedGuid; CStringPair StringPairs[5];
if (pTarget) { pTarget->Reset(); } if ((pTarget == NULL) || (pGuid == NULL)) { ::SetLastError(ERROR_INVALID_PARAMETER); goto Exit; }
if (!FormatGuid(pGuid, FormattedGuid)) { goto Exit; }
//
// Look in the registry for information on the store in question. Form up a path to the
// keys
//
StringPairs[0].SetPointerAndCount(SXS_REGPATH_INSTALLATIONS, NUMBER_OF(SXS_REGPATH_INSTALLATIONS) - 1); StringPairs[1].SetPointerAndCount(L"\\", 1); StringPairs[2].SetPointerAndCount(SXS_REGKEYNAME_GACS, NUMBER_OF(SXS_REGKEYNAME_GACS) - 1); StringPairs[3].SetPointerAndCount(L"\\", 1); StringPairs[4] = StringPair(FormattedGuid); PathToRegistry.AssignArray(NUMBER_OF(StringPairs), StringPairs);
fSuccess = TRUE; Exit: return fSuccess; }
|