/// <summary> /// Construct the device by obtainin the device properties and the sub data. /// /// NOTE: /// There is a difference with the device id and the id. /// The id indicates the object id within the windows portable device. /// The device id indicates the object id within the operating system. /// /// The initial id for all windows portable devices is hard coded to "DEVICE" /// </summary> /// <param name="deviceId"></param> public Device(string deviceId) : base("DEVICE") { DeviceId = deviceId; ComDeviceObject = new PortableDeviceClass(); Connect(); IPortableDeviceValues deviceProperties = ExtractDeviceProperties(ComDeviceObject); ContentType = new ContentTypeProperty(deviceProperties); DeviceType = new TypeProperty(deviceProperties); FirmwareVersion = new FirmwareVersionProperty(deviceProperties); FriendlyName = new FriendlyNameProperty(deviceProperties); Manufacturer = new ManufacturerProperty(deviceProperties); Model = new ModelProperty(deviceProperties); Name = new NameProperty(deviceProperties); SerialNumber = new SerialNumberProperty(deviceProperties); LoadDeviceData(ComDeviceObject); Disconnect(); }
public Item(string objectId, IPortableDeviceContent content) : base(objectId) { DeviceContent = content; IPortableDeviceProperties properties; content.Properties(out properties); IPortableDeviceKeyCollection keys; properties.GetSupportedProperties(objectId, out keys); IPortableDeviceValues values; properties.GetValues(objectId, keys, out values); ContentType = new ContentTypeProperty(values); Name = new NameProperty(values); // Only load the sub information if the current object is a folder or functional object. switch (ContentType.Type) { case WindowsPortableDeviceEnumerators.ContentType.FunctionalObject: { LoadDeviceItems(content); break; } case WindowsPortableDeviceEnumerators.ContentType.Folder: { OriginalFileName = new OriginalFileNameProperty(values); LoadDeviceItems(content); break; } case WindowsPortableDeviceEnumerators.ContentType.Image: { OriginalFileName = new OriginalFileNameProperty(values); break; } } }