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.
40 lines
416 B
40 lines
416 B
#pragma once |
|
#include <OleAuto.h> |
|
|
|
struct BStrHolder |
|
{ |
|
BStrHolder() : |
|
m_Str(NULL) |
|
{ |
|
} |
|
|
|
BStrHolder(const wchar_t* str) : |
|
m_Str(SysAllocString(str)) |
|
{ |
|
} |
|
|
|
~BStrHolder() |
|
{ |
|
if (m_Str != NULL) |
|
SysFreeString(m_Str); |
|
} |
|
|
|
operator BSTR() const |
|
{ |
|
return m_Str; |
|
} |
|
|
|
BSTR* operator&() |
|
{ |
|
if (m_Str != NULL) |
|
{ |
|
SysFreeString(m_Str); |
|
m_Str = NULL; |
|
} |
|
|
|
return &m_Str; |
|
} |
|
|
|
private: |
|
BSTR m_Str; |
|
};
|
|
|