VARIANT copy problem, for multi-threads
does VARIANT have default-copy function, or do i have to write copy-function & overider operator =
https://learn.microsoft.com/en-us/windows/desktop/winauto/variant-structure
https://learn.microsoft.com/en-us/windows/desktop/api/oaidl/ns-oaidl-tagvariant
is this ok?
class Data()
{
protected:
VARIANT m_var;
public:
Data()
{
VariantInit(&m_var);
}
~Data()
{
VariantClear(&m_var);
}
Data(const Data& other)
{
VariantInit(&m_var);
VariantCopy(&m_var, &other.m_var);
}
Data& operator = (const Data& other)
{
if(this == &other)
return *this;
VariantInit(&m_var);
VariantCopy(&m_var, &other.m_var);
return *this;
}
Data(Data&& other)
{
VariantInit(&m_var);
VariantCopy(&m_var, &other.m_var);
VariantClear(&other.m_var);
}
Data& operator = (Data&& d)
{
if(this == &other)
return *this;
VariantInit(&m_var);
VariantCopy(&m_var, &other.m_var);
VariantClear(&other.m_var);
return *this;
}
}