public static bool TryGetMetadataByName(this IWICMetadataQueryReader meta, string name, out PropVariant val) { val = null; int hr = ProxyFunctions.GetMetadataByName(meta, name, IntPtr.Zero); if (hr >= 0) { val = new PropVariant(); meta.GetMetadataByName(name, val); } return(hr >= 0); }
public static bool TryGetMetadataByName(this IWICMetadataQueryReader meta, string name, [NotNullWhen(true)] out PropVariant?value) { value = null; int hr = ProxyFunctions.GetMetadataByName(meta, name, IntPtr.Zero); if (hr >= 0) { value = new PropVariant(); var pvMarshal = PropVariant.Marshaler.GetInstance(null); var pvNative = pvMarshal.MarshalManagedToNative(value); hr = ProxyFunctions.GetMetadataByName(meta, name, pvNative); pvMarshal.MarshalNativeToManaged(pvNative); pvMarshal.CleanUpNativeData(pvNative); } return(hr >= 0); }