winapi_ui_automation/um/
propsys.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::minwindef::DWORD;
7use shared::wtypes::PROPERTYKEY;
8use um::propidl::{PROPVARIANT, REFPROPVARIANT};
9use um::propkeydef::REFPROPERTYKEY;
10use um::unknwnbase::{IUnknown, IUnknownVtbl};
11use um::winnt::HRESULT;
12pub type IPropertyDescriptionList = IUnknown; // TODO
13RIDL!{#[uuid(0x886d8eeb, 0x8cf2, 0x4446, 0x8d, 0x02, 0xcd, 0xba, 0x1d, 0xbd, 0xcf, 0x99)]
14interface IPropertyStore(IPropertyStoreVtbl): IUnknown(IUnknownVtbl) {
15    fn GetCount(
16        cProps: *mut DWORD,
17    ) -> HRESULT,
18    fn GetAt(
19        iProp: DWORD,
20        pkey: *mut PROPERTYKEY,
21    ) -> HRESULT,
22    fn GetValue(
23        key: REFPROPERTYKEY,
24        pv: *mut PROPVARIANT,
25    ) -> HRESULT,
26    fn SetValue(
27        key: REFPROPERTYKEY,
28        propvar: REFPROPVARIANT,
29    ) -> HRESULT,
30    fn Commit() -> HRESULT,
31}}
32ENUM!{enum GETPROPERTYSTOREFLAGS {
33    GPS_DEFAULT = 0,
34    GPS_HANDLERPROPERTIESONLY = 0x1,
35    GPS_READWRITE = 0x2,
36    GPS_TEMPORARY = 0x4,
37    GPS_FASTPROPERTIESONLY = 0x8,
38    GPS_OPENSLOWITEM = 0x10,
39    GPS_DELAYCREATION = 0x20,
40    GPS_BESTEFFORT = 0x40,
41    GPS_NO_OPLOCK = 0x80,
42    GPS_PREFERQUERYPROPERTIES = 0x100,
43    GPS_EXTRINSICPROPERTIES = 0x200,
44    GPS_EXTRINSICPROPERTIESONLY = 0x400,
45    GPS_MASK_VALID = 0x7ff,
46}}