Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

168 lines
2.9 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
ToStr.h
Abstract:
Author:
Hakki T. Bostanci (hakkib) 06-Apr-2000
Revision History:
--*/
#ifndef _TOSTR_H_
#define _TOSTR_H_
#include "Wrappers.h"
//////////////////////////////////////////////////////////////////////////
//
//
//
class CAutoStr : public CHandle<PTSTR, CAutoStr>
{
public:
explicit CAutoStr(int nLength)
{
Attach(new TCHAR[nLength]);
m_bShouldFree = TRUE;
}
CAutoStr(PCTSTR pszStr)
{
Attach(const_cast<PTSTR>(pszStr));
m_bShouldFree = FALSE;
}
void Destroy()
{
if (m_bShouldFree)
{
delete [] *this;
}
}
bool IsValid()
{
return *this != 0;
}
private:
BOOL m_bShouldFree;
};
//////////////////////////////////////////////////////////////////////////
//
//
//
CAutoStr ToStr(const void *Value, VARTYPE vt);
CAutoStr IntToStr(int Value);
CAutoStr Int64ToStr(__int64 Value);
CAutoStr FloatToStr(float Value);
CAutoStr DoubleToStr(double Value);
CAutoStr SzToStr(PCSTR Value);
CAutoStr WSzToStr(PCWSTR Value);
CAutoStr GuidToStr(REFGUID Value);
CAutoStr TymedToStr(TYMED Value);
CAutoStr DeviceTypeToStr(STI_DEVICE_MJ_TYPE Value);
CAutoStr ButtonIdToStr(int Value);
CAutoStr HResultToStr(HRESULT Value);
CAutoStr VarTypeToStr(VARTYPE Value);
CAutoStr PropVariantToStr(PROPVARIANT Value);
CAutoStr WiaCallbackReasonToStr(ULONG Value);
CAutoStr WiaCallbackStatusToStr(ULONG Value);
//////////////////////////////////////////////////////////////////////////
//
//
//
template <class T> inline CAutoStr ToStr(const T &Value)
{
ASSERT(FALSE);
return _T("");
}
template <> inline CAutoStr ToStr(const int &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const unsigned int &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const long &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const unsigned long &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const short &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const unsigned short &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const char &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const unsigned char &Value)
{
return IntToStr(Value);
}
template <> inline CAutoStr ToStr(const float &Value)
{
return FloatToStr(Value);
}
template <> inline CAutoStr ToStr(const double &Value)
{
return DoubleToStr(Value);
}
template <> inline CAutoStr ToStr(const PCSTR &Value)
{
return SzToStr(Value);
}
template <> inline CAutoStr ToStr(const PCWSTR &Value)
{
return WSzToStr(Value);
}
template <> inline CAutoStr ToStr(const GUID &Value)
{
return GuidToStr(Value);
}
template <> inline CAutoStr ToStr(const PROPVARIANT &Value)
{
return PropVariantToStr(Value);
}
#endif //_TOSTR_H_