ib_shell_item/prop/
column.rs1use derive_more::TryFrom;
2use num_enum::IntoPrimitive;
3use windows::Win32::{Foundation::PROPERTYKEY, Storage::EnhancedStorage::*};
4
5#[allow(non_camel_case_types)]
15#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, TryFrom, IntoPrimitive)]
16#[try_from(repr)]
17#[repr(u16)]
18pub enum FSColumn {
19 ItemNameDisplay = 0,
20 Size = 1,
21 ItemType = 2,
22 DateModified = 3,
23 DateCreated = 4,
24 DateAccessed = 5,
25 FileAttributes = 6,
26 OfflineStatus = 7,
27 OfflineAvailability = 8,
28 PerceivedType = 9,
29 FileOwner = 10,
30 Kind = 11,
31 Photo_DateTaken = 12,
32 Music_Artist = 13,
33 Music_AlbumTitle = 14,
34 Media_Year = 15,
35 Music_Genre = 16,
36 Music_Conductor = 17,
37 Keywords = 18,
38 Rating = 19,
39 Author = 20,
40 Title = 21,
41 Subject = 22,
42 Category = 23,
43 Comment = 24,
44 Copyright = 25,
45 Music_TrackNumber = 26,
46 Media_Duration = 27,
47 Audio_EncodingBitrate = 28,
48 DRM_IsProtected = 29,
49 Photo_CameraModel = 30,
50 Image_Dimensions = 31,
51 Photo_CameraManufacturer = 32,
52 Company = 33,
53 FileDescription = 34,
54}
55
56impl FSColumn {
57 pub fn key(self) -> PROPERTYKEY {
58 use FSColumn::*;
59 match self {
60 ItemNameDisplay => PKEY_ItemNameDisplay,
61 Size => PKEY_Size,
62 ItemType => PKEY_ItemType,
63 DateModified => PKEY_DateModified,
64 DateCreated => PKEY_DateCreated,
65 DateAccessed => PKEY_DateAccessed,
66 FileAttributes => PKEY_FileAttributes,
67 OfflineStatus => PKEY_OfflineStatus,
68 OfflineAvailability => PKEY_OfflineAvailability,
69 PerceivedType => PKEY_PerceivedType,
70 FileOwner => PKEY_FileOwner,
71 Kind => PKEY_Kind,
72 Photo_DateTaken => PKEY_Photo_DateTaken,
73 Music_Artist => PKEY_Music_Artist,
74 Music_AlbumTitle => PKEY_Music_AlbumTitle,
75 Media_Year => PKEY_Media_Year,
76 Music_Genre => PKEY_Music_Genre,
77 Music_Conductor => PKEY_Music_Conductor,
78 Keywords => PKEY_Keywords,
79 Rating => PKEY_Rating,
80 Author => PKEY_Author,
81 Title => PKEY_Title,
82 Subject => PKEY_Subject,
83 Category => PKEY_Category,
84 Comment => PKEY_Comment,
85 Copyright => PKEY_Copyright,
86 Music_TrackNumber => PKEY_Music_TrackNumber,
87 Media_Duration => PKEY_Media_Duration,
88 Audio_EncodingBitrate => PKEY_Audio_EncodingBitrate,
89 DRM_IsProtected => PKEY_DRM_IsProtected,
90 Photo_CameraModel => PKEY_Photo_CameraModel,
91 Image_Dimensions => PKEY_Image_Dimensions,
92 Photo_CameraManufacturer => PKEY_Photo_CameraManufacturer,
93 Company => PKEY_Company,
94 FileDescription => PKEY_FileDescription,
95 }
96 }
97}