blob: 3868855c52a86b36aa10281323c7e6581fd10185 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContact_Impl: Sized {
fn GetContactID(&self, pszcontactid: &::windows::core::PWSTR, cchcontactid: u32, pdwcchcontactidrequired: *mut u32) -> ::windows::core::Result<()>;
fn GetPath(&self, pszpath: &::windows::core::PWSTR, cchpath: u32, pdwcchpathrequired: *mut u32) -> ::windows::core::Result<()>;
fn CommitChanges(&self, dwcommitflags: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IContact {}
impl IContact_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContact_Impl, const OFFSET: isize>() -> IContact_Vtbl {
unsafe extern "system" fn GetContactID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcontactid: ::windows::core::PWSTR, cchcontactid: u32, pdwcchcontactidrequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContactID(::core::mem::transmute(&pszcontactid), ::core::mem::transmute_copy(&cchcontactid), ::core::mem::transmute_copy(&pdwcchcontactidrequired)).into()
}
unsafe extern "system" fn GetPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows::core::PWSTR, cchpath: u32, pdwcchpathrequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPath(::core::mem::transmute(&pszpath), ::core::mem::transmute_copy(&cchpath), ::core::mem::transmute_copy(&pdwcchpathrequired)).into()
}
unsafe extern "system" fn CommitChanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcommitflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CommitChanges(::core::mem::transmute_copy(&dwcommitflags)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetContactID: GetContactID::<Identity, Impl, OFFSET>,
GetPath: GetPath::<Identity, Impl, OFFSET>,
CommitChanges: CommitChanges::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContact as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationAggregate_Impl: Sized {
fn Save(&self) -> ::windows::core::Result<()>;
fn GetComponentItems(&self) -> ::windows::core::Result<IContactAggregationContactCollection>;
fn Link(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn get_Groups(&self, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS) -> ::windows::core::Result<IContactAggregationGroupCollection>;
fn AntiLink(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAntiLink(&self, pantilink: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn FavoriteOrder(&self) -> ::windows::core::Result<u32>;
fn SetFavoriteOrder(&self, favoriteorder: u32) -> ::windows::core::Result<()>;
fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
}
impl ::windows::core::RuntimeName for IContactAggregationAggregate {}
impl IContactAggregationAggregate_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>() -> IContactAggregationAggregate_Vtbl {
unsafe extern "system" fn Save<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save().into()
}
unsafe extern "system" fn GetComponentItems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcomponentitems: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetComponentItems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcomponentitems, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Link<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Link(::core::mem::transmute(&paggregateid)).into()
}
unsafe extern "system" fn get_Groups<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS, ppgroups: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_Groups(::core::mem::transmute_copy(&options)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroups, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AntiLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppantilink: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AntiLink() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppantilink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAntiLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pantilink: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAntiLink(::core::mem::transmute(&pantilink)).into()
}
unsafe extern "system" fn FavoriteOrder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfavoriteorder: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FavoriteOrder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfavoriteorder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFavoriteOrder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, favoriteorder: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFavoriteOrder(::core::mem::transmute_copy(&favoriteorder)).into()
}
unsafe extern "system" fn Id<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitemid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Id() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitemid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Save: Save::<Identity, Impl, OFFSET>,
GetComponentItems: GetComponentItems::<Identity, Impl, OFFSET>,
Link: Link::<Identity, Impl, OFFSET>,
get_Groups: get_Groups::<Identity, Impl, OFFSET>,
AntiLink: AntiLink::<Identity, Impl, OFFSET>,
SetAntiLink: SetAntiLink::<Identity, Impl, OFFSET>,
FavoriteOrder: FavoriteOrder::<Identity, Impl, OFFSET>,
SetFavoriteOrder: SetFavoriteOrder::<Identity, Impl, OFFSET>,
Id: Id::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationAggregate as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationAggregateCollection_Impl: Sized {
fn FindFirst(&self) -> ::windows::core::Result<IContactAggregationAggregate>;
fn FindFirstByAntiLinkId(&self, pantilinkid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationAggregate>;
fn FindNext(&self) -> ::windows::core::Result<IContactAggregationAggregate>;
fn Count(&self) -> ::windows::core::Result<i32>;
}
impl ::windows::core::RuntimeName for IContactAggregationAggregateCollection {}
impl IContactAggregationAggregateCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregateCollection_Impl, const OFFSET: isize>() -> IContactAggregationAggregateCollection_Vtbl {
unsafe extern "system" fn FindFirst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregateCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaggregate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirst() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByAntiLinkId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregateCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pantilinkid: ::windows::core::PCWSTR, ppaggregate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByAntiLinkId(::core::mem::transmute(&pantilinkid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregateCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaggregate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationAggregateCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut i32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindFirst: FindFirst::<Identity, Impl, OFFSET>,
FindFirstByAntiLinkId: FindFirstByAntiLinkId::<Identity, Impl, OFFSET>,
FindNext: FindNext::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationAggregateCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactAggregationContact_Impl: Sized {
fn Delete(&self) -> ::windows::core::Result<()>;
fn Save(&self) -> ::windows::core::Result<()>;
fn MoveToAggregate(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Unlink(&self) -> ::windows::core::Result<()>;
fn AccountId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAccountId(&self, paccountid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AggregateId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn IsMe(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
fn IsExternal(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
fn NetworkSourceId(&self) -> ::windows::core::Result<u32>;
fn SetNetworkSourceId(&self, networksourceid: u32) -> ::windows::core::Result<()>;
fn NetworkSourceIdString(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetNetworkSourceIdString(&self, pnetworksourceid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn RemoteObjectId(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetRemoteObjectId(&self, premoteobjectid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
fn SyncIdentityHash(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetSyncIdentityHash(&self, psyncidentityhash: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IContactAggregationContact {}
#[cfg(feature = "Win32_Foundation")]
impl IContactAggregationContact_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>() -> IContactAggregationContact_Vtbl {
unsafe extern "system" fn Delete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Delete().into()
}
unsafe extern "system" fn Save<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save().into()
}
unsafe extern "system" fn MoveToAggregate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoveToAggregate(::core::mem::transmute(&paggregateid)).into()
}
unsafe extern "system" fn Unlink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unlink().into()
}
unsafe extern "system" fn AccountId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaccountid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AccountId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaccountid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAccountId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paccountid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAccountId(::core::mem::transmute(&paccountid)).into()
}
unsafe extern "system" fn AggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaggregateid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AggregateId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregateid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Id<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitemid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Id() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitemid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsMe<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisme: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsMe() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pisme, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsExternal<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisexternal: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsExternal() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pisexternal, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NetworkSourceId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnetworksourceid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NetworkSourceId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pnetworksourceid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNetworkSourceId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, networksourceid: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNetworkSourceId(::core::mem::transmute_copy(&networksourceid)).into()
}
unsafe extern "system" fn NetworkSourceIdString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppnetworksourceid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NetworkSourceIdString() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppnetworksourceid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNetworkSourceIdString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnetworksourceid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNetworkSourceIdString(::core::mem::transmute(&pnetworksourceid)).into()
}
unsafe extern "system" fn RemoteObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppremoteobjectid: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RemoteObjectId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppremoteobjectid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRemoteObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, premoteobjectid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRemoteObjectId(::core::mem::transmute_copy(&premoteobjectid)).into()
}
unsafe extern "system" fn SyncIdentityHash<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsyncidentityhash: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SyncIdentityHash() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsyncidentityhash, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSyncIdentityHash<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContact_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psyncidentityhash: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncIdentityHash(::core::mem::transmute_copy(&psyncidentityhash)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Delete: Delete::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
MoveToAggregate: MoveToAggregate::<Identity, Impl, OFFSET>,
Unlink: Unlink::<Identity, Impl, OFFSET>,
AccountId: AccountId::<Identity, Impl, OFFSET>,
SetAccountId: SetAccountId::<Identity, Impl, OFFSET>,
AggregateId: AggregateId::<Identity, Impl, OFFSET>,
Id: Id::<Identity, Impl, OFFSET>,
IsMe: IsMe::<Identity, Impl, OFFSET>,
IsExternal: IsExternal::<Identity, Impl, OFFSET>,
NetworkSourceId: NetworkSourceId::<Identity, Impl, OFFSET>,
SetNetworkSourceId: SetNetworkSourceId::<Identity, Impl, OFFSET>,
NetworkSourceIdString: NetworkSourceIdString::<Identity, Impl, OFFSET>,
SetNetworkSourceIdString: SetNetworkSourceIdString::<Identity, Impl, OFFSET>,
RemoteObjectId: RemoteObjectId::<Identity, Impl, OFFSET>,
SetRemoteObjectId: SetRemoteObjectId::<Identity, Impl, OFFSET>,
SyncIdentityHash: SyncIdentityHash::<Identity, Impl, OFFSET>,
SetSyncIdentityHash: SetSyncIdentityHash::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationContact as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationContactCollection_Impl: Sized {
fn FindFirst(&self) -> ::windows::core::Result<IContactAggregationContact>;
fn FindNext(&self) -> ::windows::core::Result<IContactAggregationContact>;
fn FindFirstByIdentityHash(&self, psourcetype: &::windows::core::PCWSTR, paccountid: &::windows::core::PCWSTR, pidentityhash: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<IContactAggregationContact>;
fn Count(&self) -> ::windows::core::Result<i32>;
fn FindFirstByRemoteId(&self, psourcetype: &::windows::core::PCWSTR, paccountid: &::windows::core::PCWSTR, premoteobjectid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<IContactAggregationContact>;
}
impl ::windows::core::RuntimeName for IContactAggregationContactCollection {}
impl IContactAggregationContactCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>() -> IContactAggregationContactCollection_Vtbl {
unsafe extern "system" fn FindFirst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirst() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByIdentityHash<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcetype: ::windows::core::PCWSTR, paccountid: ::windows::core::PCWSTR, pidentityhash: *const CONTACT_AGGREGATION_BLOB, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByIdentityHash(::core::mem::transmute(&psourcetype), ::core::mem::transmute(&paccountid), ::core::mem::transmute_copy(&pidentityhash)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut i32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByRemoteId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcetype: ::windows::core::PCWSTR, paccountid: ::windows::core::PCWSTR, premoteobjectid: *const CONTACT_AGGREGATION_BLOB, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByRemoteId(::core::mem::transmute(&psourcetype), ::core::mem::transmute(&paccountid), ::core::mem::transmute_copy(&premoteobjectid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindFirst: FindFirst::<Identity, Impl, OFFSET>,
FindNext: FindNext::<Identity, Impl, OFFSET>,
FindFirstByIdentityHash: FindFirstByIdentityHash::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
FindFirstByRemoteId: FindFirstByRemoteId::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationContactCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationGroup_Impl: Sized {
fn Delete(&self) -> ::windows::core::Result<()>;
fn Save(&self) -> ::windows::core::Result<()>;
fn Add(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Remove(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Members(&self) -> ::windows::core::Result<IContactAggregationAggregateCollection>;
fn GlobalObjectId(&self) -> ::windows::core::Result<::windows::core::GUID>;
fn SetGlobalObjectId(&self, pglobalobjectid: *const ::windows::core::GUID) -> ::windows::core::Result<()>;
fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn Name(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetName(&self, pname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IContactAggregationGroup {}
impl IContactAggregationGroup_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>() -> IContactAggregationGroup_Vtbl {
unsafe extern "system" fn Delete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Delete().into()
}
unsafe extern "system" fn Save<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save().into()
}
unsafe extern "system" fn Add<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Add(::core::mem::transmute(&paggregateid)).into()
}
unsafe extern "system" fn Remove<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Remove(::core::mem::transmute(&paggregateid)).into()
}
unsafe extern "system" fn Members<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaggregatecontactcollection: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Members() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregatecontactcollection, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GlobalObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pglobalobjectid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GlobalObjectId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pglobalobjectid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetGlobalObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pglobalobjectid: *const ::windows::core::GUID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGlobalObjectId(::core::mem::transmute_copy(&pglobalobjectid)).into()
}
unsafe extern "system" fn Id<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitemid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Id() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitemid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetName(::core::mem::transmute(&pname)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Delete: Delete::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
Add: Add::<Identity, Impl, OFFSET>,
Remove: Remove::<Identity, Impl, OFFSET>,
Members: Members::<Identity, Impl, OFFSET>,
GlobalObjectId: GlobalObjectId::<Identity, Impl, OFFSET>,
SetGlobalObjectId: SetGlobalObjectId::<Identity, Impl, OFFSET>,
Id: Id::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
SetName: SetName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationGroup as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationGroupCollection_Impl: Sized {
fn FindFirst(&self) -> ::windows::core::Result<IContactAggregationGroup>;
fn FindFirstByGlobalObjectId(&self, pglobalobjectid: *const ::windows::core::GUID) -> ::windows::core::Result<IContactAggregationGroup>;
fn FindNext(&self) -> ::windows::core::Result<IContactAggregationGroup>;
fn Count(&self) -> ::windows::core::Result<u32>;
}
impl ::windows::core::RuntimeName for IContactAggregationGroupCollection {}
impl IContactAggregationGroupCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroupCollection_Impl, const OFFSET: isize>() -> IContactAggregationGroupCollection_Vtbl {
unsafe extern "system" fn FindFirst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroupCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirst() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroup, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByGlobalObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroupCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pglobalobjectid: *const ::windows::core::GUID, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByGlobalObjectId(::core::mem::transmute_copy(&pglobalobjectid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroup, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroupCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroup, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationGroupCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindFirst: FindFirst::<Identity, Impl, OFFSET>,
FindFirstByGlobalObjectId: FindFirstByGlobalObjectId::<Identity, Impl, OFFSET>,
FindNext: FindNext::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationGroupCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactAggregationLink_Impl: Sized {
fn Delete(&self) -> ::windows::core::Result<()>;
fn Save(&self) -> ::windows::core::Result<()>;
fn AccountId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAccountId(&self, paccountid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn IsLinkResolved(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
fn SetIsLinkResolved(&self, islinkresolved: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn NetworkSourceIdString(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetNetworkSourceIdString(&self, pnetworksourceid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn RemoteObjectId(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetRemoteObjectId(&self, premoteobjectid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
fn ServerPerson(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetServerPerson(&self, pserverpersonid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ServerPersonBaseline(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetServerPersonBaseline(&self, pserverpersonid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SyncIdentityHash(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetSyncIdentityHash(&self, psyncidentityhash: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IContactAggregationLink {}
#[cfg(feature = "Win32_Foundation")]
impl IContactAggregationLink_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>() -> IContactAggregationLink_Vtbl {
unsafe extern "system" fn Delete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Delete().into()
}
unsafe extern "system" fn Save<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save().into()
}
unsafe extern "system" fn AccountId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaccountid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AccountId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaccountid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAccountId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paccountid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAccountId(::core::mem::transmute(&paccountid)).into()
}
unsafe extern "system" fn Id<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitemid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Id() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitemid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsLinkResolved<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pislinkresolved: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsLinkResolved() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pislinkresolved, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIsLinkResolved<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, islinkresolved: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIsLinkResolved(::core::mem::transmute_copy(&islinkresolved)).into()
}
unsafe extern "system" fn NetworkSourceIdString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppnetworksourceid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NetworkSourceIdString() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppnetworksourceid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNetworkSourceIdString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnetworksourceid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNetworkSourceIdString(::core::mem::transmute(&pnetworksourceid)).into()
}
unsafe extern "system" fn RemoteObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppremoteobjectid: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RemoteObjectId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppremoteobjectid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRemoteObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, premoteobjectid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRemoteObjectId(::core::mem::transmute_copy(&premoteobjectid)).into()
}
unsafe extern "system" fn ServerPerson<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverpersonid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ServerPerson() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverpersonid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetServerPerson<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pserverpersonid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetServerPerson(::core::mem::transmute(&pserverpersonid)).into()
}
unsafe extern "system" fn ServerPersonBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverpersonid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ServerPersonBaseline() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverpersonid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetServerPersonBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pserverpersonid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetServerPersonBaseline(::core::mem::transmute(&pserverpersonid)).into()
}
unsafe extern "system" fn SyncIdentityHash<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppsyncidentityhash: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SyncIdentityHash() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsyncidentityhash, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSyncIdentityHash<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psyncidentityhash: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncIdentityHash(::core::mem::transmute_copy(&psyncidentityhash)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Delete: Delete::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
AccountId: AccountId::<Identity, Impl, OFFSET>,
SetAccountId: SetAccountId::<Identity, Impl, OFFSET>,
Id: Id::<Identity, Impl, OFFSET>,
IsLinkResolved: IsLinkResolved::<Identity, Impl, OFFSET>,
SetIsLinkResolved: SetIsLinkResolved::<Identity, Impl, OFFSET>,
NetworkSourceIdString: NetworkSourceIdString::<Identity, Impl, OFFSET>,
SetNetworkSourceIdString: SetNetworkSourceIdString::<Identity, Impl, OFFSET>,
RemoteObjectId: RemoteObjectId::<Identity, Impl, OFFSET>,
SetRemoteObjectId: SetRemoteObjectId::<Identity, Impl, OFFSET>,
ServerPerson: ServerPerson::<Identity, Impl, OFFSET>,
SetServerPerson: SetServerPerson::<Identity, Impl, OFFSET>,
ServerPersonBaseline: ServerPersonBaseline::<Identity, Impl, OFFSET>,
SetServerPersonBaseline: SetServerPersonBaseline::<Identity, Impl, OFFSET>,
SyncIdentityHash: SyncIdentityHash::<Identity, Impl, OFFSET>,
SetSyncIdentityHash: SetSyncIdentityHash::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationLink as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationLinkCollection_Impl: Sized {
fn FindFirst(&self) -> ::windows::core::Result<IContactAggregationLink>;
fn FindFirstByRemoteId(&self, psourcetype: &::windows::core::PCWSTR, paccountid: &::windows::core::PCWSTR, premoteid: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<IContactAggregationLink>;
fn FindNext(&self) -> ::windows::core::Result<IContactAggregationLink>;
fn Count(&self) -> ::windows::core::Result<u32>;
}
impl ::windows::core::RuntimeName for IContactAggregationLinkCollection {}
impl IContactAggregationLinkCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLinkCollection_Impl, const OFFSET: isize>() -> IContactAggregationLinkCollection_Vtbl {
unsafe extern "system" fn FindFirst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLinkCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppservercontactlink: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirst() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppservercontactlink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByRemoteId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLinkCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcetype: ::windows::core::PCWSTR, paccountid: ::windows::core::PCWSTR, premoteid: *const CONTACT_AGGREGATION_BLOB, ppservercontactlink: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByRemoteId(::core::mem::transmute(&psourcetype), ::core::mem::transmute(&paccountid), ::core::mem::transmute_copy(&premoteid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppservercontactlink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLinkCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppservercontactlink: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppservercontactlink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationLinkCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindFirst: FindFirst::<Identity, Impl, OFFSET>,
FindFirstByRemoteId: FindFirstByRemoteId::<Identity, Impl, OFFSET>,
FindNext: FindNext::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationLinkCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactAggregationManager_Impl: Sized {
fn GetVersionInfo(&self, plmajorversion: *mut i32, plminorversion: *mut i32) -> ::windows::core::Result<()>;
fn CreateOrOpenGroup(&self, pgroupname: &::windows::core::PCWSTR, options: CONTACT_AGGREGATION_CREATE_OR_OPEN_OPTIONS, pcreatedgroup: *mut super::super::Foundation::BOOL, ppgroup: *mut ::core::option::Option<IContactAggregationGroup>) -> ::windows::core::Result<()>;
fn CreateExternalContact(&self) -> ::windows::core::Result<IContactAggregationContact>;
fn CreateServerPerson(&self) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn CreateServerContactLink(&self) -> ::windows::core::Result<IContactAggregationLink>;
fn Flush(&self) -> ::windows::core::Result<()>;
fn OpenAggregateContact(&self, pitemid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationAggregate>;
fn OpenContact(&self, pitemid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationContact>;
fn OpenServerContactLink(&self, pitemid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationLink>;
fn OpenServerPerson(&self, pitemid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn get_Contacts(&self, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS) -> ::windows::core::Result<IContactAggregationContactCollection>;
fn get_AggregateContacts(&self, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS) -> ::windows::core::Result<IContactAggregationAggregateCollection>;
fn get_Groups(&self, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS) -> ::windows::core::Result<IContactAggregationGroupCollection>;
fn ServerPersons(&self) -> ::windows::core::Result<IContactAggregationServerPersonCollection>;
fn get_ServerContactLinks(&self, ppersonitemid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationLinkCollection>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IContactAggregationManager {}
#[cfg(feature = "Win32_Foundation")]
impl IContactAggregationManager_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>() -> IContactAggregationManager_Vtbl {
unsafe extern "system" fn GetVersionInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmajorversion: *mut i32, plminorversion: *mut i32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVersionInfo(::core::mem::transmute_copy(&plmajorversion), ::core::mem::transmute_copy(&plminorversion)).into()
}
unsafe extern "system" fn CreateOrOpenGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgroupname: ::windows::core::PCWSTR, options: CONTACT_AGGREGATION_CREATE_OR_OPEN_OPTIONS, pcreatedgroup: *mut super::super::Foundation::BOOL, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateOrOpenGroup(::core::mem::transmute(&pgroupname), ::core::mem::transmute_copy(&options), ::core::mem::transmute_copy(&pcreatedgroup), ::core::mem::transmute_copy(&ppgroup)).into()
}
unsafe extern "system" fn CreateExternalContact<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateExternalContact() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateServerPerson<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateServerPerson() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateServerContactLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppservercontactlink: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateServerContactLink() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppservercontactlink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Flush<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Flush().into()
}
unsafe extern "system" fn OpenAggregateContact<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitemid: ::windows::core::PCWSTR, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OpenAggregateContact(::core::mem::transmute(&pitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OpenContact<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitemid: ::windows::core::PCWSTR, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OpenContact(::core::mem::transmute(&pitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OpenServerContactLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitemid: ::windows::core::PCWSTR, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OpenServerContactLink(::core::mem::transmute(&pitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OpenServerPerson<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pitemid: ::windows::core::PCWSTR, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OpenServerPerson(::core::mem::transmute(&pitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn get_Contacts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS, ppitems: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_Contacts(::core::mem::transmute_copy(&options)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitems, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn get_AggregateContacts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS, ppaggregates: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_AggregateContacts(::core::mem::transmute_copy(&options)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregates, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn get_Groups<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: CONTACT_AGGREGATION_COLLECTION_OPTIONS, ppgroups: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_Groups(::core::mem::transmute_copy(&options)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroups, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ServerPersons<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverpersoncollection: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ServerPersons() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverpersoncollection, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn get_ServerContactLinks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppersonitemid: ::windows::core::PCWSTR, ppservercontactlinkcollection: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_ServerContactLinks(::core::mem::transmute(&ppersonitemid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppservercontactlinkcollection, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetVersionInfo: GetVersionInfo::<Identity, Impl, OFFSET>,
CreateOrOpenGroup: CreateOrOpenGroup::<Identity, Impl, OFFSET>,
CreateExternalContact: CreateExternalContact::<Identity, Impl, OFFSET>,
CreateServerPerson: CreateServerPerson::<Identity, Impl, OFFSET>,
CreateServerContactLink: CreateServerContactLink::<Identity, Impl, OFFSET>,
Flush: Flush::<Identity, Impl, OFFSET>,
OpenAggregateContact: OpenAggregateContact::<Identity, Impl, OFFSET>,
OpenContact: OpenContact::<Identity, Impl, OFFSET>,
OpenServerContactLink: OpenServerContactLink::<Identity, Impl, OFFSET>,
OpenServerPerson: OpenServerPerson::<Identity, Impl, OFFSET>,
get_Contacts: get_Contacts::<Identity, Impl, OFFSET>,
get_AggregateContacts: get_AggregateContacts::<Identity, Impl, OFFSET>,
get_Groups: get_Groups::<Identity, Impl, OFFSET>,
ServerPersons: ServerPersons::<Identity, Impl, OFFSET>,
get_ServerContactLinks: get_ServerContactLinks::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationManager as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactAggregationServerPerson_Impl: Sized {
fn Delete(&self) -> ::windows::core::Result<()>;
fn Save(&self) -> ::windows::core::Result<()>;
fn AggregateId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAggregateId(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AntiLink(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAntiLink(&self, pantilink: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AntiLinkBaseline(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetAntiLinkBaseline(&self, pantilink: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn FavoriteOrder(&self) -> ::windows::core::Result<u32>;
fn SetFavoriteOrder(&self, favoriteorder: u32) -> ::windows::core::Result<()>;
fn FavoriteOrderBaseline(&self) -> ::windows::core::Result<u32>;
fn SetFavoriteOrderBaseline(&self, favoriteorder: u32) -> ::windows::core::Result<()>;
fn Groups(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetGroups(&self, pgroups: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
fn GroupsBaseline(&self) -> ::windows::core::Result<*mut CONTACT_AGGREGATION_BLOB>;
fn SetGroupsBaseline(&self, pgroups: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::Result<()>;
fn Id(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn IsTombstone(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
fn SetIsTombstone(&self, istombstone: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn LinkedAggregateId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetLinkedAggregateId(&self, plinkedaggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ObjectId(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
fn SetObjectId(&self, pobjectid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IContactAggregationServerPerson {}
#[cfg(feature = "Win32_Foundation")]
impl IContactAggregationServerPerson_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>() -> IContactAggregationServerPerson_Vtbl {
unsafe extern "system" fn Delete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Delete().into()
}
unsafe extern "system" fn Save<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save().into()
}
unsafe extern "system" fn AggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaggregateid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AggregateId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaggregateid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAggregateId(::core::mem::transmute(&paggregateid)).into()
}
unsafe extern "system" fn AntiLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppantilink: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AntiLink() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppantilink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAntiLink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pantilink: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAntiLink(::core::mem::transmute(&pantilink)).into()
}
unsafe extern "system" fn AntiLinkBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppantilink: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AntiLinkBaseline() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppantilink, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAntiLinkBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pantilink: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAntiLinkBaseline(::core::mem::transmute(&pantilink)).into()
}
unsafe extern "system" fn FavoriteOrder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfavoriteorder: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FavoriteOrder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfavoriteorder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFavoriteOrder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, favoriteorder: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFavoriteOrder(::core::mem::transmute_copy(&favoriteorder)).into()
}
unsafe extern "system" fn FavoriteOrderBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfavoriteorder: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FavoriteOrderBaseline() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfavoriteorder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFavoriteOrderBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, favoriteorder: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFavoriteOrderBaseline(::core::mem::transmute_copy(&favoriteorder)).into()
}
unsafe extern "system" fn Groups<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgroups: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Groups() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pgroups, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetGroups<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgroups: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroups(::core::mem::transmute_copy(&pgroups)).into()
}
unsafe extern "system" fn GroupsBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppgroups: *mut *mut CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GroupsBaseline() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgroups, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetGroupsBaseline<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgroups: *const CONTACT_AGGREGATION_BLOB) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGroupsBaseline(::core::mem::transmute_copy(&pgroups)).into()
}
unsafe extern "system" fn Id<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Id() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsTombstone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistombstone: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsTombstone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pistombstone, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIsTombstone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istombstone: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIsTombstone(::core::mem::transmute_copy(&istombstone)).into()
}
unsafe extern "system" fn LinkedAggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pplinkedaggregateid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LinkedAggregateId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pplinkedaggregateid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLinkedAggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plinkedaggregateid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLinkedAggregateId(::core::mem::transmute(&plinkedaggregateid)).into()
}
unsafe extern "system" fn ObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppobjectid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ObjectId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppobjectid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetObjectId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPerson_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pobjectid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetObjectId(::core::mem::transmute(&pobjectid)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Delete: Delete::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
AggregateId: AggregateId::<Identity, Impl, OFFSET>,
SetAggregateId: SetAggregateId::<Identity, Impl, OFFSET>,
AntiLink: AntiLink::<Identity, Impl, OFFSET>,
SetAntiLink: SetAntiLink::<Identity, Impl, OFFSET>,
AntiLinkBaseline: AntiLinkBaseline::<Identity, Impl, OFFSET>,
SetAntiLinkBaseline: SetAntiLinkBaseline::<Identity, Impl, OFFSET>,
FavoriteOrder: FavoriteOrder::<Identity, Impl, OFFSET>,
SetFavoriteOrder: SetFavoriteOrder::<Identity, Impl, OFFSET>,
FavoriteOrderBaseline: FavoriteOrderBaseline::<Identity, Impl, OFFSET>,
SetFavoriteOrderBaseline: SetFavoriteOrderBaseline::<Identity, Impl, OFFSET>,
Groups: Groups::<Identity, Impl, OFFSET>,
SetGroups: SetGroups::<Identity, Impl, OFFSET>,
GroupsBaseline: GroupsBaseline::<Identity, Impl, OFFSET>,
SetGroupsBaseline: SetGroupsBaseline::<Identity, Impl, OFFSET>,
Id: Id::<Identity, Impl, OFFSET>,
IsTombstone: IsTombstone::<Identity, Impl, OFFSET>,
SetIsTombstone: SetIsTombstone::<Identity, Impl, OFFSET>,
LinkedAggregateId: LinkedAggregateId::<Identity, Impl, OFFSET>,
SetLinkedAggregateId: SetLinkedAggregateId::<Identity, Impl, OFFSET>,
ObjectId: ObjectId::<Identity, Impl, OFFSET>,
SetObjectId: SetObjectId::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationServerPerson as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactAggregationServerPersonCollection_Impl: Sized {
fn FindFirst(&self) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn FindFirstByServerId(&self, pserverid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn FindFirstByAggregateId(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn FindFirstByLinkedAggregateId(&self, paggregateid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn FindNext(&self) -> ::windows::core::Result<IContactAggregationServerPerson>;
fn Count(&self) -> ::windows::core::Result<u32>;
}
impl ::windows::core::RuntimeName for IContactAggregationServerPersonCollection {}
impl IContactAggregationServerPersonCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>() -> IContactAggregationServerPersonCollection_Vtbl {
unsafe extern "system" fn FindFirst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirst() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByServerId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pserverid: ::windows::core::PCWSTR, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByServerId(::core::mem::transmute(&pserverid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByAggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByAggregateId(::core::mem::transmute(&paggregateid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFirstByLinkedAggregateId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paggregateid: ::windows::core::PCWSTR, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFirstByLinkedAggregateId(::core::mem::transmute(&paggregateid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppserverperson: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppserverperson, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactAggregationServerPersonCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindFirst: FindFirst::<Identity, Impl, OFFSET>,
FindFirstByServerId: FindFirstByServerId::<Identity, Impl, OFFSET>,
FindFirstByAggregateId: FindFirstByAggregateId::<Identity, Impl, OFFSET>,
FindFirstByLinkedAggregateId: FindFirstByLinkedAggregateId::<Identity, Impl, OFFSET>,
FindNext: FindNext::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactAggregationServerPersonCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactCollection_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn Next(&self) -> ::windows::core::Result<()>;
fn GetCurrent(&self) -> ::windows::core::Result<IContact>;
}
impl ::windows::core::RuntimeName for IContactCollection {}
impl IContactCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactCollection_Impl, const OFFSET: isize>() -> IContactCollection_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next().into()
}
unsafe extern "system" fn GetCurrent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppcontact: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcontact, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
GetCurrent: GetCurrent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactCollection as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"implement\"`*"]
pub trait IContactManager_Impl: Sized {
fn Initialize(&self, pszappname: &::windows::core::PCWSTR, pszappversion: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Load(&self, pszcontactid: &::windows::core::PCWSTR) -> ::windows::core::Result<IContact>;
fn MergeContactIDs(&self, psznewcontactid: &::windows::core::PCWSTR, pszoldcontactid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetMeContact(&self) -> ::windows::core::Result<IContact>;
fn SetMeContact(&self, pmecontact: ::core::option::Option<&IContact>) -> ::windows::core::Result<()>;
fn GetContactCollection(&self) -> ::windows::core::Result<IContactCollection>;
}
impl ::windows::core::RuntimeName for IContactManager {}
impl IContactManager_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>() -> IContactManager_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszappname: ::windows::core::PCWSTR, pszappversion: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute(&pszappname), ::core::mem::transmute(&pszappversion)).into()
}
unsafe extern "system" fn Load<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszcontactid: ::windows::core::PCWSTR, ppcontact: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Load(::core::mem::transmute(&pszcontactid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcontact, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn MergeContactIDs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psznewcontactid: ::windows::core::PCWSTR, pszoldcontactid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MergeContactIDs(::core::mem::transmute(&psznewcontactid), ::core::mem::transmute(&pszoldcontactid)).into()
}
unsafe extern "system" fn GetMeContact<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmecontact: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMeContact() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmecontact, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMeContact<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmecontact: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMeContact(::windows::core::from_raw_borrowed(&pmecontact)).into()
}
unsafe extern "system" fn GetContactCollection<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppcontactcollection: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetContactCollection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcontactcollection, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
Load: Load::<Identity, Impl, OFFSET>,
MergeContactIDs: MergeContactIDs::<Identity, Impl, OFFSET>,
GetMeContact: GetMeContact::<Identity, Impl, OFFSET>,
SetMeContact: SetMeContact::<Identity, Impl, OFFSET>,
GetContactCollection: GetContactCollection::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactManager as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IContactProperties_Impl: Sized {
fn GetString(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, pszvalue: &::windows::core::PWSTR, cchvalue: u32, pdwcchpropertyvaluerequired: *mut u32) -> ::windows::core::Result<()>;
fn GetDate(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, pftdatetime: *mut super::super::Foundation::FILETIME) -> ::windows::core::Result<()>;
fn GetBinary(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, pszcontenttype: &::windows::core::PWSTR, cchcontenttype: u32, pdwcchcontenttyperequired: *mut u32, ppstream: *mut ::core::option::Option<super::Com::IStream>) -> ::windows::core::Result<()>;
fn GetLabels(&self, pszarrayelementname: &::windows::core::PCWSTR, dwflags: u32, pszlabels: &::windows::core::PWSTR, cchlabels: u32, pdwcchlabelsrequired: *mut u32) -> ::windows::core::Result<()>;
fn SetString(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, pszvalue: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetDate(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, ftdatetime: &super::super::Foundation::FILETIME) -> ::windows::core::Result<()>;
fn SetBinary(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32, pszcontenttype: &::windows::core::PCWSTR, pstream: ::core::option::Option<&super::Com::IStream>) -> ::windows::core::Result<()>;
fn SetLabels(&self, pszarrayelementname: &::windows::core::PCWSTR, dwflags: u32, dwlabelcount: u32, ppszlabels: *const ::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn CreateArrayNode(&self, pszarrayname: &::windows::core::PCWSTR, dwflags: u32, fappend: super::super::Foundation::BOOL, psznewarrayelementname: &::windows::core::PWSTR, cchnewarrayelementname: u32, pdwcchnewarrayelementnamerequired: *mut u32) -> ::windows::core::Result<()>;
fn DeleteProperty(&self, pszpropertyname: &::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::Result<()>;
fn DeleteArrayNode(&self, pszarrayelementname: &::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::Result<()>;
fn DeleteLabels(&self, pszarrayelementname: &::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::Result<()>;
fn GetPropertyCollection(&self, pppropertycollection: *mut ::core::option::Option<IContactPropertyCollection>, dwflags: u32, pszmultivaluename: &::windows::core::PCWSTR, dwlabelcount: u32, ppszlabels: *const ::windows::core::PCWSTR, fanylabelmatches: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows::core::RuntimeName for IContactProperties {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IContactProperties_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>() -> IContactProperties_Vtbl {
unsafe extern "system" fn GetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, pszvalue: ::windows::core::PWSTR, cchvalue: u32, pdwcchpropertyvaluerequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetString(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszvalue), ::core::mem::transmute_copy(&cchvalue), ::core::mem::transmute_copy(&pdwcchpropertyvaluerequired)).into()
}
unsafe extern "system" fn GetDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, pftdatetime: *mut super::super::Foundation::FILETIME) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDate(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&pftdatetime)).into()
}
unsafe extern "system" fn GetBinary<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, pszcontenttype: ::windows::core::PWSTR, cchcontenttype: u32, pdwcchcontenttyperequired: *mut u32, ppstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBinary(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszcontenttype), ::core::mem::transmute_copy(&cchcontenttype), ::core::mem::transmute_copy(&pdwcchcontenttyperequired), ::core::mem::transmute_copy(&ppstream)).into()
}
unsafe extern "system" fn GetLabels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayelementname: ::windows::core::PCWSTR, dwflags: u32, pszlabels: ::windows::core::PWSTR, cchlabels: u32, pdwcchlabelsrequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLabels(::core::mem::transmute(&pszarrayelementname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszlabels), ::core::mem::transmute_copy(&cchlabels), ::core::mem::transmute_copy(&pdwcchlabelsrequired)).into()
}
unsafe extern "system" fn SetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, pszvalue: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetString(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszvalue)).into()
}
unsafe extern "system" fn SetDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, ftdatetime: super::super::Foundation::FILETIME) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDate(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&ftdatetime)).into()
}
unsafe extern "system" fn SetBinary<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32, pszcontenttype: ::windows::core::PCWSTR, pstream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBinary(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszcontenttype), ::windows::core::from_raw_borrowed(&pstream)).into()
}
unsafe extern "system" fn SetLabels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayelementname: ::windows::core::PCWSTR, dwflags: u32, dwlabelcount: u32, ppszlabels: *const ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLabels(::core::mem::transmute(&pszarrayelementname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&dwlabelcount), ::core::mem::transmute_copy(&ppszlabels)).into()
}
unsafe extern "system" fn CreateArrayNode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayname: ::windows::core::PCWSTR, dwflags: u32, fappend: super::super::Foundation::BOOL, psznewarrayelementname: ::windows::core::PWSTR, cchnewarrayelementname: u32, pdwcchnewarrayelementnamerequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateArrayNode(::core::mem::transmute(&pszarrayname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&fappend), ::core::mem::transmute(&psznewarrayelementname), ::core::mem::transmute_copy(&cchnewarrayelementname), ::core::mem::transmute_copy(&pdwcchnewarrayelementnamerequired)).into()
}
unsafe extern "system" fn DeleteProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteProperty(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn DeleteArrayNode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayelementname: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteArrayNode(::core::mem::transmute(&pszarrayelementname), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn DeleteLabels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayelementname: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteLabels(::core::mem::transmute(&pszarrayelementname), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetPropertyCollection<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pppropertycollection: *mut *mut ::core::ffi::c_void, dwflags: u32, pszmultivaluename: ::windows::core::PCWSTR, dwlabelcount: u32, ppszlabels: *const ::windows::core::PCWSTR, fanylabelmatches: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyCollection(::core::mem::transmute_copy(&pppropertycollection), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute(&pszmultivaluename), ::core::mem::transmute_copy(&dwlabelcount), ::core::mem::transmute_copy(&ppszlabels), ::core::mem::transmute_copy(&fanylabelmatches)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetString: GetString::<Identity, Impl, OFFSET>,
GetDate: GetDate::<Identity, Impl, OFFSET>,
GetBinary: GetBinary::<Identity, Impl, OFFSET>,
GetLabels: GetLabels::<Identity, Impl, OFFSET>,
SetString: SetString::<Identity, Impl, OFFSET>,
SetDate: SetDate::<Identity, Impl, OFFSET>,
SetBinary: SetBinary::<Identity, Impl, OFFSET>,
SetLabels: SetLabels::<Identity, Impl, OFFSET>,
CreateArrayNode: CreateArrayNode::<Identity, Impl, OFFSET>,
DeleteProperty: DeleteProperty::<Identity, Impl, OFFSET>,
DeleteArrayNode: DeleteArrayNode::<Identity, Impl, OFFSET>,
DeleteLabels: DeleteLabels::<Identity, Impl, OFFSET>,
GetPropertyCollection: GetPropertyCollection::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactProperties as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Contacts\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IContactPropertyCollection_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn Next(&self) -> ::windows::core::Result<()>;
fn GetPropertyName(&self, pszpropertyname: &::windows::core::PWSTR, cchpropertyname: u32, pdwcchpropertynamerequired: *mut u32) -> ::windows::core::Result<()>;
fn GetPropertyType(&self, pdwtype: *mut u32) -> ::windows::core::Result<()>;
fn GetPropertyVersion(&self, pdwversion: *mut u32) -> ::windows::core::Result<()>;
fn GetPropertyModificationDate(&self, pftmodificationdate: *mut super::super::Foundation::FILETIME) -> ::windows::core::Result<()>;
fn GetPropertyArrayElementID(&self, pszarrayelementid: &::windows::core::PWSTR, ccharrayelementid: u32, pdwccharrayelementidrequired: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IContactPropertyCollection {}
#[cfg(feature = "Win32_Foundation")]
impl IContactPropertyCollection_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>() -> IContactPropertyCollection_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next().into()
}
unsafe extern "system" fn GetPropertyName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpropertyname: ::windows::core::PWSTR, cchpropertyname: u32, pdwcchpropertynamerequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyName(::core::mem::transmute(&pszpropertyname), ::core::mem::transmute_copy(&cchpropertyname), ::core::mem::transmute_copy(&pdwcchpropertynamerequired)).into()
}
unsafe extern "system" fn GetPropertyType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwtype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyType(::core::mem::transmute_copy(&pdwtype)).into()
}
unsafe extern "system" fn GetPropertyVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwversion: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyVersion(::core::mem::transmute_copy(&pdwversion)).into()
}
unsafe extern "system" fn GetPropertyModificationDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pftmodificationdate: *mut super::super::Foundation::FILETIME) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyModificationDate(::core::mem::transmute_copy(&pftmodificationdate)).into()
}
unsafe extern "system" fn GetPropertyArrayElementID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IContactPropertyCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszarrayelementid: ::windows::core::PWSTR, ccharrayelementid: u32, pdwccharrayelementidrequired: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPropertyArrayElementID(::core::mem::transmute(&pszarrayelementid), ::core::mem::transmute_copy(&ccharrayelementid), ::core::mem::transmute_copy(&pdwccharrayelementidrequired)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
Next: Next::<Identity, Impl, OFFSET>,
GetPropertyName: GetPropertyName::<Identity, Impl, OFFSET>,
GetPropertyType: GetPropertyType::<Identity, Impl, OFFSET>,
GetPropertyVersion: GetPropertyVersion::<Identity, Impl, OFFSET>,
GetPropertyModificationDate: GetPropertyModificationDate::<Identity, Impl, OFFSET>,
GetPropertyArrayElementID: GetPropertyArrayElementID::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IContactPropertyCollection as ::windows::core::ComInterface>::IID
}
}