// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. use shared::minwindef::DWORD; use shared::wtypes::PROPERTYKEY; use um::propidl::{PROPVARIANT, REFPROPVARIANT}; use um::propkeydef::REFPROPERTYKEY; use um::unknwnbase::{IUnknown, IUnknownVtbl}; use um::winnt::HRESULT; pub type IPropertyDescriptionList = IUnknown; // TODO RIDL!{#[uuid(0x886d8eeb, 0x8cf2, 0x4446, 0x8d, 0x02, 0xcd, 0xba, 0x1d, 0xbd, 0xcf, 0x99)] interface IPropertyStore(IPropertyStoreVtbl): IUnknown(IUnknownVtbl) { fn GetCount( cProps: *mut DWORD, ) -> HRESULT, fn GetAt( iProp: DWORD, pkey: *mut PROPERTYKEY, ) -> HRESULT, fn GetValue( key: REFPROPERTYKEY, pv: *mut PROPVARIANT, ) -> HRESULT, fn SetValue( key: REFPROPERTYKEY, propvar: REFPROPVARIANT, ) -> HRESULT, fn Commit() -> HRESULT, }} ENUM!{enum GETPROPERTYSTOREFLAGS { GPS_DEFAULT = 0, GPS_HANDLERPROPERTIESONLY = 0x1, GPS_READWRITE = 0x2, GPS_TEMPORARY = 0x4, GPS_FASTPROPERTIESONLY = 0x8, GPS_OPENSLOWITEM = 0x10, GPS_DELAYCREATION = 0x20, GPS_BESTEFFORT = 0x40, GPS_NO_OPLOCK = 0x80, GPS_PREFERQUERYPROPERTIES = 0x100, GPS_EXTRINSICPROPERTIES = 0x200, GPS_EXTRINSICPROPERTIESONLY = 0x400, GPS_MASK_VALID = 0x7ff, }}