1use shared::basetsd::ULONG_PTR;
8use shared::wtypes::PROPERTYKEY;
9DEFINE_GUID!{GUID_DEVINTERFACE_WPD,
10 0x6AC27878, 0xA6FA, 0x4155, 0xBA, 0x85, 0xF9, 0x8F, 0x49, 0x1D, 0x4F, 0x33}
11DEFINE_GUID!{GUID_DEVINTERFACE_WPD_PRIVATE,
12 0xBA0C718F, 0x4DED, 0x49B7, 0xBD, 0xD3, 0xFA, 0xBE, 0x28, 0x66, 0x12, 0x11}
13DEFINE_GUID!{GUID_DEVINTERFACE_WPD_SERVICE,
14 0x9EF44F80, 0x3D64, 0x4246, 0xA6, 0xAA, 0x20, 0x6F, 0x32, 0x8D, 0x1E, 0xDC}
15pub const WPD_DEVICE_OBJECT_ID: &'static str = "DEVICE";
17pub const WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR: ULONG_PTR = -1isize as ULONG_PTR;
18pub const PORTABLE_DEVICE_TYPE: &'static str = "PortableDeviceType";
19pub const PORTABLE_DEVICE_ICON: &'static str = "Icons";
20pub const PORTABLE_DEVICE_NAMESPACE_TIMEOUT: &'static str = "PortableDeviceNameSpaceTimeout";
21pub const PORTABLE_DEVICE_NAMESPACE_EXCLUDE_FROM_SHELL: &'static str
22 = "PortableDeviceNameSpaceExcludeFromShell";
23pub const PORTABLE_DEVICE_NAMESPACE_THUMBNAIL_CONTENT_TYPES: &'static str
24 = "PortableDeviceNameSpaceThumbnailContentTypes";
25pub const PORTABLE_DEVICE_IS_MASS_STORAGE: &'static str = "PortableDeviceIsMassStorage";
26pub const PORTABLE_DEVICE_DRM_SCHEME_WMDRM10_PD: &'static str = "WMDRM10-PD";
27pub const PORTABLE_DEVICE_DRM_SCHEME_PDDRM: &'static str = "PDDRM";
28ENUM!{enum WPD_DEVICE_TYPES {
30 WPD_DEVICE_TYPE_GENERIC = 0,
31 WPD_DEVICE_TYPE_CAMERA = 1,
32 WPD_DEVICE_TYPE_MEDIA_PLAYER = 2,
33 WPD_DEVICE_TYPE_PHONE = 3,
34 WPD_DEVICE_TYPE_VIDEO = 4,
35 WPD_DEVICE_TYPE_PERSONAL_INFORMATION_MANAGER = 5,
36 WPD_DEVICE_TYPE_AUDIO_RECORDER = 6,
37}}
38ENUM!{enum WPD_DEVICE_TRANSPORTS {
40 WPD_DEVICE_TRANSPORT_UNSPECIFIED = 0,
41 WPD_DEVICE_TRANSPORT_USB = 1,
42 WPD_DEVICE_TRANSPORT_IP = 2,
43 WPD_DEVICE_TRANSPORT_BLUETOOTH = 3,
44}}
45ENUM!{enum WPD_POWER_SOURCES {
47 WPD_POWER_SOURCE_BATTERY = 0,
48 WPD_POWER_SOURCE_EXTERNAL = 1,
49}}
50DEFINE_GUID!{WPD_FUNCTIONAL_OBJECT_PROPERTIES_V1,
52 0x8F052D93, 0xABCA, 0x4FC5, 0xA5, 0xAC, 0xB0, 0x1D, 0xF4, 0xDB, 0xE5, 0x98}
53DEFINE_PROPERTYKEY!{WPD_FUNCTIONAL_OBJECT_CATEGORY,
54 0x8F052D93, 0xABCA, 0x4FC5, 0xA5, 0xAC, 0xB0, 0x1D, 0xF4, 0xDB, 0xE5, 0x98, 2}
55DEFINE_GUID!{WPD_DEVICE_PROPERTIES_V1,
57 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC}
58DEFINE_PROPERTYKEY!{WPD_DEVICE_SYNC_PARTNER,
59 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 2}
60DEFINE_PROPERTYKEY!{WPD_DEVICE_FIRMWARE_VERSION,
61 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 3}
62DEFINE_PROPERTYKEY!{WPD_DEVICE_POWER_LEVEL,
63 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 4}
64DEFINE_PROPERTYKEY!{WPD_DEVICE_POWER_SOURCE,
65 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 5}
66DEFINE_PROPERTYKEY!{WPD_DEVICE_PROTOCOL,
67 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 6}
68DEFINE_PROPERTYKEY!{WPD_DEVICE_MANUFACTURER,
69 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 7}
70DEFINE_PROPERTYKEY!{WPD_DEVICE_MODEL,
71 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 8}
72DEFINE_PROPERTYKEY!{WPD_DEVICE_SERIAL_NUMBER,
73 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 9}
74DEFINE_PROPERTYKEY!{WPD_DEVICE_SUPPORTS_NON_CONSUMABLE,
75 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 10}
76DEFINE_PROPERTYKEY!{WPD_DEVICE_DATETIME,
77 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 11}
78DEFINE_PROPERTYKEY!{WPD_DEVICE_FRIENDLY_NAME,
79 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 12}
80DEFINE_PROPERTYKEY!{WPD_DEVICE_SUPPORTED_DRM_SCHEMES,
81 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 13}
82DEFINE_PROPERTYKEY!{WPD_DEVICE_SUPPORTED_FORMATS_ARE_ORDERED,
83 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 14}
84DEFINE_PROPERTYKEY!{WPD_DEVICE_TYPE,
85 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 15}
86DEFINE_PROPERTYKEY!{WPD_DEVICE_NETWORK_IDENTIFIER,
87 0x26D4979A, 0xE643, 0x4626, 0x9E, 0x2B, 0x73, 0x6D, 0xC0, 0xC9, 0x2F, 0xDC, 16}
88DEFINE_GUID!{WPD_DEVICE_PROPERTIES_V2,
89 0x463DD662, 0x7FC4, 0x4291, 0x91, 0x1C, 0x7F, 0x4C, 0x9C, 0xCA, 0x97, 0x99}
90DEFINE_PROPERTYKEY!{WPD_DEVICE_FUNCTIONAL_UNIQUE_ID,
91 0x463DD662, 0x7FC4, 0x4291, 0x91, 0x1C, 0x7F, 0x4C, 0x9C, 0xCA, 0x97, 0x99, 2}
92DEFINE_PROPERTYKEY!{WPD_DEVICE_MODEL_UNIQUE_ID,
93 0x463DD662, 0x7FC4, 0x4291, 0x91, 0x1C, 0x7F, 0x4C, 0x9C, 0xCA, 0x97, 0x99, 3}
94DEFINE_PROPERTYKEY!{WPD_DEVICE_TRANSPORT,
95 0x463DD662, 0x7FC4, 0x4291, 0x91, 0x1C, 0x7F, 0x4C, 0x9C, 0xCA, 0x97, 0x99, 4}
96DEFINE_PROPERTYKEY!{WPD_DEVICE_USE_DEVICE_STAGE,
97 0x463DD662, 0x7FC4, 0x4291, 0x91, 0x1C, 0x7F, 0x4C, 0x9C, 0xCA, 0x97, 0x99, 5}
98DEFINE_GUID!{WPD_DEVICE_PROPERTIES_V3,
99 0x6C2B878C, 0xC2EC, 0x490D, 0xB4, 0x25, 0xD7, 0xA7, 0x5E, 0x23, 0xE5, 0xED}
100DEFINE_PROPERTYKEY!{WPD_DEVICE_EDP_IDENTITY,
101 0x6C2B878C, 0xC2EC, 0x490D, 0xB4, 0x25, 0xD7, 0xA7, 0x5E, 0x23, 0xE5, 0xED, 1}
102DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_COMMAND_CATEGORY,
104 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1001}
105DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_COMMAND_ID,
106 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1002}
107DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_HRESULT,
108 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1003}
109DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_DRIVER_ERROR_CODE,
110 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1004}
111DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_COMMAND_TARGET,
112 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1006}
113DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_PERSISTENT_UNIQUE_IDS,
114 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1007}
115DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_OBJECT_IDS,
116 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1008}
117DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_CLIENT_INFORMATION,
118 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1009}
119DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_CLIENT_INFORMATION_CONTEXT,
120 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1010}
121DEFINE_PROPERTYKEY!{WPD_PROPERTY_COMMON_ACTIVITY_ID,
122 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 1011}
123DEFINE_PROPERTYKEY!{WPD_OPTION_VALID_OBJECT_IDS,
124 0xF0422A9C, 0x5DC8, 0x4440, 0xB5, 0xBD, 0x5D, 0xF2, 0x88, 0x35, 0x65, 0x8A, 5001}
125DEFINE_PROPERTYKEY!{WPD_OBJECT_ID,
127 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 2}
128DEFINE_PROPERTYKEY!{WPD_OBJECT_PARENT_ID,
129 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 3}
130DEFINE_PROPERTYKEY!{WPD_OBJECT_NAME,
131 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 4}
132DEFINE_PROPERTYKEY!{WPD_OBJECT_PERSISTENT_UNIQUE_ID,
133 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 5}
134DEFINE_PROPERTYKEY!{WPD_OBJECT_FORMAT,
135 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 6}
136DEFINE_PROPERTYKEY!{WPD_OBJECT_ISHIDDEN,
137 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 9}
138DEFINE_PROPERTYKEY!{WPD_OBJECT_ISSYSTEM,
139 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 10}
140DEFINE_PROPERTYKEY!{WPD_OBJECT_SIZE,
141 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 11}
142DEFINE_PROPERTYKEY!{WPD_OBJECT_ORIGINAL_FILE_NAME,
143 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 12}
144DEFINE_PROPERTYKEY!{WPD_OBJECT_NON_CONSUMABLE,
145 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 13}
146DEFINE_PROPERTYKEY!{WPD_OBJECT_KEYWORDS,
147 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 15}
148DEFINE_PROPERTYKEY!{WPD_OBJECT_SYNC_ID,
149 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 16}
150DEFINE_PROPERTYKEY!{WPD_OBJECT_IS_DRM_PROTECTED,
151 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 17}
152DEFINE_PROPERTYKEY!{WPD_OBJECT_DATE_CREATED,
153 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 18}
154DEFINE_PROPERTYKEY!{WPD_OBJECT_DATE_MODIFIED,
155 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 19}
156DEFINE_PROPERTYKEY!{WPD_OBJECT_DATE_AUTHORED,
157 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 20}
158DEFINE_PROPERTYKEY!{WPD_OBJECT_BACK_REFERENCES,
159 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 21}
160DEFINE_PROPERTYKEY!{WPD_OBJECT_CAN_DELETE,
161 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 26}
162DEFINE_PROPERTYKEY!{WPD_OBJECT_LANGUAGE_LOCALE,
163 0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C, 27}