/*
* Minimal replacement for class CComPtr and CComBSTR
* Based on common public IUnknown interface only
*/
template <class T> class CComPtr
{
public:
/* Attribute(s) ... */
T* p;
/* Creation ... */
CComPtr()
{
p = NULL;
}
/* Destructor ... */
~CComPtr()
{
if (p)
p->Release();
}
};
class CComBSTR
{
public:
BSTR p;
/* Creation ... */
CComBSTR()
{
p = NULL;
}
/* Destructor ... */
~CComBSTR()
{
::SysFreeString(p);
}
/* Address-of operator */
BSTR* operator&()
{
return &p;
}
};
syntax highlighted by Code2HTML, v. 0.9.1