/// <summary> /// Called to clear the PropVariant's referenced and local memory. /// </summary> /// <remarks> /// You must call Clear to avoid memory leaks. /// </remarks> public void Clear() { // Can't pass "this" by ref, so make a copy to call PropVariantClear with PropVariant var = this; PropVariantNativeMethods.PropVariantClear(ref var); // Since we couldn't pass "this" by ref, we need to clear the member fields manually // NOTE: PropVariantClear already freed heap data for us, so we are just setting // our references to null. valueType = (ushort)VarEnum.VT_EMPTY; wReserved1 = wReserved2 = wReserved3 = 0; valueData = IntPtr.Zero; valueDataExt = 0; }
/// <summary> /// Disposes the object, calls the clear function. /// </summary> public void Dispose() { PropVariantNativeMethods.PropVariantClear(this); GC.SuppressFinalize(this); }