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. 6 use shared::minwindef::DWORD; 7 use shared::wtypes::PROPERTYKEY; 8 use um::propidl::{PROPVARIANT, REFPROPVARIANT}; 9 use um::propkeydef::REFPROPERTYKEY; 10 use um::unknwnbase::{IUnknown, IUnknownVtbl}; 11 use um::winnt::HRESULT; 12 pub type IPropertyDescriptionList = IUnknown; // TODO 13 RIDL!{#[uuid(0x886d8eeb, 0x8cf2, 0x4446, 0x8d, 0x02, 0xcd, 0xba, 0x1d, 0xbd, 0xcf, 0x99)] 14 interface 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 }} 32 ENUM!{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 }} 47