windows-nt/Source/XPSP1/NT/admin/snapin/certentp/policyoid.cpp
2020-09-26 16:20:57 +08:00

80 lines
2.6 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000-2001.
//
// File: PolicyOID.cpp
//
// Contents: CPolicyOID
//
//----------------------------------------------------------------------------
#include "stdafx.h"
#include "PolicyOID.h"
CPolicyOID::CPolicyOID (const CString& szOID, const CString& szDisplayName, ADS_INTEGER flags, bool bCanRename)
: m_szOIDW (szOID),
m_szDisplayName (szDisplayName),
m_pszOIDA (0),
m_flags (flags),
m_bCanRename (bCanRename)
{
int nLen = WideCharToMultiByte(
CP_ACP, // code page
0, // performance and mapping flags
(PCWSTR) m_szOIDW, // wide-character string
(int) wcslen (m_szOIDW), // number of chars in string
0, // buffer for new string
0, // size of buffer
0, // default for unmappable chars
0); // set when default char used
if ( nLen > 0 )
{
m_pszOIDA = new CHAR[nLen+1];
if ( m_pszOIDA )
{
ZeroMemory (m_pszOIDA, (nLen + 1) *sizeof(CHAR));
nLen = WideCharToMultiByte(
CP_ACP, // code page
0, // performance and mapping flags
(PCWSTR) m_szOIDW, // wide-character string
(int) wcslen (m_szOIDW), // number of chars in string
m_pszOIDA, // buffer for new string
nLen, // size of buffer
0, // default for unmappable chars
0); // set when default char used
if ( !nLen )
{
_TRACE (0, L"WideCharToMultiByte (%s) failed: 0x%x\n",
(PCWSTR) m_szOIDW, GetLastError ());
}
}
}
else
{
_TRACE (0, L"WideCharToMultiByte (%s) failed: 0x%x\n",
(PCWSTR) m_szOIDW, GetLastError ());
}
}
CPolicyOID::~CPolicyOID ()
{
if ( m_pszOIDA )
delete [] m_pszOIDA;
}
bool CPolicyOID::IsIssuanceOID() const
{
return (m_flags == CERT_OID_TYPE_ISSUER_POLICY) ? true : false;
}
bool CPolicyOID::IsApplicationOID() const
{
return (m_flags == CERT_OID_TYPE_APPLICATION_POLICY) ? true : false;
}
void CPolicyOID::SetDisplayName(const CString &szDisplayName)
{
m_szDisplayName = szDisplayName;
}