diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/source/win32/shlxthandler/ooofilt/propspec.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/shell/source/win32/shlxthandler/ooofilt/propspec.cxx b/shell/source/win32/shlxthandler/ooofilt/propspec.cxx index ed44bb8b22b9..f96d363d6542 100644 --- a/shell/source/win32/shlxthandler/ooofilt/propspec.cxx +++ b/shell/source/win32/shlxthandler/ooofilt/propspec.cxx @@ -111,12 +111,16 @@ CFullPropSpec::CFullPropSpec( CFullPropSpec const & src ) : CFullPropSpec & CFullPropSpec::operator=( CFullPropSpec const & Property ) { - // Clean up. - this->CFullPropSpec::~CFullPropSpec(); + if (this != &Property) + { + // Clean up. + this->CFullPropSpec::~CFullPropSpec(); - ::new (this) CFullPropSpec( Property ); + ::new (this) CFullPropSpec( Property ); + } return *this; } + CFullPropSpec::~CFullPropSpec() { if ( _psProperty.ulKind == PRSPEC_LPWSTR && @@ -125,6 +129,7 @@ CFullPropSpec::~CFullPropSpec() CoTaskMemFree( _psProperty.lpwstr ); } } + void CFullPropSpec::SetProperty( PROPID pidProperty ) { if ( _psProperty.ulKind == PRSPEC_LPWSTR && |