1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef AUTOWIDEH
- #define AUTOWIDEH
- class AutoWide
- {
- public:
- AutoWide(const char *convert) : allocated(false), wide(0)
- {
- // review maybe CP_UTF8?
- int size = MultiByteToWideChar(CP_ACP, 0, convert, -1, 0,0);
- if (!size)
- return;
- wide = new unsigned short[size];
- allocated=true;
- if (!MultiByteToWideChar(CP_ACP, 0, convert, -1, wide,size))
- {
- delete wide;
- wide=0;
- allocated=false;
- }
- }
- ~AutoWide()
- {
- if (allocated)
- {
- delete wide;
- wide=0;
- allocated=false;
- }
- }
- operator unsigned short *()
- {
- return wide;
- }
- private:
- bool allocated;
- unsigned short *wide;
- };
- #endif
|