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) 2000 Microsoft Corporation
Module Name: InstanceBase.cpp
Abstract: This file contains the implementation of the Taxonomy::InstanceBase class, which controls the set of files for a specific SKU.
Revision History: Davide Massarenti (Dmassare) 24/03/2001 created
******************************************************************************/
#include "stdafx.h"
////////////////////////////////////////////////////////////////////////////////
Taxonomy::InstanceBase::InstanceBase() { // Taxonomy::HelpSet m_ths;
// MPC::wstring m_strDisplayName;
// MPC::wstring m_strProductID;
// MPC::wstring m_strVersion;
//
m_fDesktop = false; // bool m_fDesktop;
m_fServer = false; // bool m_fServer;
m_fEmbedded = false; // bool m_fEmbedded;
}
HRESULT Taxonomy::operator>>( /*[in]*/ MPC::Serializer& stream, /*[out]*/ Taxonomy::InstanceBase& val ) { HRESULT hr;
if(SUCCEEDED(hr = (stream >> val.m_ths )) && SUCCEEDED(hr = (stream >> val.m_strDisplayName)) && SUCCEEDED(hr = (stream >> val.m_strProductID )) && SUCCEEDED(hr = (stream >> val.m_strVersion )) &&
SUCCEEDED(hr = (stream >> val.m_fDesktop )) && SUCCEEDED(hr = (stream >> val.m_fServer )) && SUCCEEDED(hr = (stream >> val.m_fEmbedded )) ) { hr = S_OK; }
return hr; }
HRESULT Taxonomy::operator<<( /*[in]*/ MPC::Serializer& stream, /*[in] */ const Taxonomy::InstanceBase& val ) { HRESULT hr;
if(SUCCEEDED(hr = (stream << val.m_ths )) && SUCCEEDED(hr = (stream << val.m_strDisplayName)) && SUCCEEDED(hr = (stream << val.m_strProductID )) && SUCCEEDED(hr = (stream << val.m_strVersion )) &&
SUCCEEDED(hr = (stream << val.m_fDesktop )) && SUCCEEDED(hr = (stream << val.m_fServer )) && SUCCEEDED(hr = (stream << val.m_fEmbedded )) ) { hr = S_OK; }
return hr; }
////////////////////////////////////////////////////////////////////////////////
bool Taxonomy::InstanceBase::Match( /*[in]*/ LPCWSTR szSKU , /*[in]*/ LPCWSTR szLanguage ) { while(1) { if(STRINGISPRESENT(szSKU)) { if(!_wcsicmp( szSKU, L"All" )) { ; } else if(!_wcsicmp( szSKU, L"Server" )) { if(m_fServer == false) break; } else if(!_wcsicmp( szSKU, L"Desktop" )) { if(m_fDesktop == false) break; } else if(!_wcsicmp( szSKU, L"Embedded" )) { if(m_fEmbedded == false) break; } else { if(_wcsicmp( szSKU, m_ths.GetSKU() ) != 0) break; } }
if(STRINGISPRESENT(szLanguage)) { if(!_wcsicmp( szLanguage, L"All" )) { ; } else { if(_wtol( szLanguage ) != m_ths.GetLanguage()) break; } }
return true; }
return false; }
bool Taxonomy::InstanceBase::Match( /*[in]*/ const Package& pkg ) { return Match( pkg.m_strSKU.c_str(), pkg.m_strLanguage.c_str() ); }
|