Move some OLE utilities to oleutils.cpp and simplified date conversion

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-01-25 18:14:37 +00:00
parent a5fc9a1ca0
commit 94113cc555
2 changed files with 90 additions and 320 deletions

View File

@@ -67,6 +67,83 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount)
return false;
}
BSTR wxConvertStringToOle(const wxString& str)
{
/*
unsigned int len = strlen((const char*) str);
unsigned short* s = new unsigned short[len*2+2];
unsigned int i;
memset(s, 0, len*2+2);
for (i=0; i < len; i++)
s[i*2] = str[i];
*/
wxBasicString bstr(str.mb_str());
return bstr.Get();
}
wxString wxConvertStringFromOle(BSTR bStr)
{
#if wxUSE_UNICODE
wxString str(bStr);
#else
int len = SysStringLen(bStr) + 1;
char *buf = new char[len];
(void)wcstombs( buf, bStr, len);
wxString str(buf);
delete[] buf;
#endif
return str;
}
// ----------------------------------------------------------------------------
// wxBasicString
// ----------------------------------------------------------------------------
// ctor takes an ANSI string and transforms it to Unicode
wxBasicString::wxBasicString(const char *sz)
{
Init(sz);
}
// ctor takes an ANSI or Unicode string and transforms it to Unicode
wxBasicString::wxBasicString(const wxString& str)
{
#if wxUSE_UNICODE
m_wzBuf = new OLECHAR[str.Length() + 1];
memcpy(m_wzBuf, str.c_str(), str.Length()*2);
m_wzBuf[str.Length()] = L'\0';
#else
Init(str.c_str());
#endif
}
// Takes an ANSI string and transforms it to Unicode
void wxBasicString::Init(const char *sz)
{
// get the size of required buffer
UINT lenAnsi = strlen(sz);
#ifdef __MWERKS__
UINT lenWide = lenAnsi * 2 ;
#else
UINT lenWide = mbstowcs(NULL, sz, lenAnsi);
#endif
if ( lenWide > 0 ) {
m_wzBuf = new OLECHAR[lenWide + 1];
mbstowcs(m_wzBuf, sz, lenAnsi);
m_wzBuf[lenWide] = L'\0';
}
else {
m_wzBuf = NULL;
}
}
// dtor frees memory
wxBasicString::~wxBasicString()
{
delete [] m_wzBuf;
}
#if wxUSE_DATAOBJ
// ----------------------------------------------------------------------------