Files
Slnkdwf/ATL90/source/SProxy/QName.cpp
Jos Groot Lipman 0e37d774d2 Merge SLNKDWF64 branch
svn path=/Slnkdwf/trunk/; revision=23911
2015-01-21 12:09:31 +00:00

59 lines
1.2 KiB
C++

//
// QName.cpp
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
#include "stdafx.h"
#include "QName.h"
void CQName::CrackQName(const wchar_t *wszQName, int cchQName)
{
if (cchQName == -1)
{
cchQName = (int)wcslen(wszQName);
}
wchar_t * wszQNameTmp = (wchar_t *) wszQName;
wchar_t * wszColon = wcschr(wszQNameTmp, L':');
if (wszColon && (wszColon-wszQNameTmp) <= cchQName)
{
m_strPrefix.SetString(wszQNameTmp, (int)(wszColon-wszQNameTmp));
m_strName.SetString(wszColon+1, (int)(cchQName-m_strPrefix.GetLength()-1));
}
else
{
m_strName.SetString(wszQName, cchQName);
}
}
CQName::CQName(const CStringW& strQName)
{
SetQName(strQName);
}
CQName::CQName(const CStringW& strPrefix, const CStringW& strName)
:m_strPrefix(strPrefix), m_strName(strName)
{
}
CQName::CQName(const wchar_t *wszQName, int cchQName)
{
SetQName(wszQName, cchQName);
}
void CQName::SetQName(const CStringW& strQName)
{
CrackQName((LPCWSTR) strQName, strQName.GetLength());
}
void CQName::SetQName(const CStringW& strPrefix, const CStringW& strName)
{
m_strPrefix = strPrefix;
m_strName = strName;
}
void CQName::SetQName(const wchar_t *wszQName, int cchQName)
{
CrackQName(wszQName, cchQName);
}