public static bool TryGetUnsignedLargeIntegerValue(this IPortableDeviceValues values, PropertyKey key, out ulong value) { if (values.HasKeyValue(key)) { values.GetUnsignedLargeIntegerValue(ref key, out value); return(true); } value = 0; return(false); }
/// <summary> /// 获取大小属性 /// </summary> /// <param name="deviceValues"></param> /// <returns></returns> private static ulong GetFileSizeProperty(IPortableDeviceValues deviceValues) { _tagpropertykey nameKey = new _tagpropertykey(); nameKey.fmtid = new Guid(0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C); //guid唯一值 nameKey.pid = 11; //索引 ulong sizeProperty = 0; deviceValues.GetUnsignedLargeIntegerValue(ref nameKey, out sizeProperty); return(sizeProperty); }
/// <summary> /// プロパティ値から、符号なし 64 ビット整数値を読み取ります。 /// </summary> /// <param name="key">識別子。</param> /// <param name="values">プロパティ値。</param> /// <returns>成功時は読み取った値。それ以外は null。</returns> public static ulong?ReadUInt64(_tagpropertykey key, IPortableDeviceValues values) { try { ulong value; values.GetUnsignedLargeIntegerValue(key, out value); return(value); } catch (Exception exp) { Debug.WriteLine(exp.Message); return(null); } }
/// <summary> /// プロパティ値から、符号なし 64 ビット整数値を読み取ります。 /// </summary> /// <param name="key">識別子。</param> /// <param name="values">プロパティ値。</param> /// <returns>成功時は読み取った値。それ以外は null。</returns> public static ulong? ReadUInt64( _tagpropertykey key, IPortableDeviceValues values ) { try { ulong value; values.GetUnsignedLargeIntegerValue( key, out value ); return value; } catch( Exception exp ) { Debug.WriteLine( exp.Message ); return null; } }