Copies a PROPVARIANT structure by value so the original pvarSrc and new pvarDest parameters may be freed independently with calls to PropVariantClear. PropVariantCopy does not free the destination as the VariantCopy function does. For nonsimple PROPVARIANT types such as VT_STREAM, VT_STORAGE, and so forth, which require a subobject, the copy is made by reference. The pointer is copied and IUnknown::AddRef is called on it. It is illegal to pass NULL for either pvarDest or pvarSrc.