#![allow(
non_snake_case,
non_upper_case_globals,
non_camel_case_types,
dead_code,
clippy::all
)]
windows_core::imp::define_interface!(
IOPCEventAreaBrowser,
IOPCEventAreaBrowser_Vtbl,
0x65168857_5783_11d1_84a0_00608cb8a7e9
);
windows_core::imp::interface_hierarchy!(IOPCEventAreaBrowser, windows_core::IUnknown);
impl IOPCEventAreaBrowser {
pub unsafe fn ChangeBrowsePosition<P1>(
&self,
dwbrowsedirection: __MIDL___MIDL_itf_opc_ae_0000_0001_0001,
szstring: P1,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).ChangeBrowsePosition)(
windows_core::Interface::as_raw(self),
dwbrowsedirection,
szstring.param().abi(),
)
.ok()
}
}
pub unsafe fn BrowseOPCAreas<P1>(
&self,
dwbrowsefiltertype: __MIDL___MIDL_itf_opc_ae_0000_0001_0002,
szfiltercriteria: P1,
) -> windows_core::Result<windows::Win32::System::Com::IEnumString>
where
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).BrowseOPCAreas)(
windows_core::Interface::as_raw(self),
dwbrowsefiltertype,
szfiltercriteria.param().abi(),
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
pub unsafe fn GetQualifiedAreaName<P0>(
&self,
szareaname: P0,
) -> windows_core::Result<windows_core::PWSTR>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetQualifiedAreaName)(
windows_core::Interface::as_raw(self),
szareaname.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetQualifiedSourceName<P0>(
&self,
szsourcename: P0,
) -> windows_core::Result<windows_core::PWSTR>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetQualifiedSourceName)(
windows_core::Interface::as_raw(self),
szsourcename.param().abi(),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventAreaBrowser_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ChangeBrowsePosition: unsafe extern "system" fn(
*mut core::ffi::c_void,
__MIDL___MIDL_itf_opc_ae_0000_0001_0001,
windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub BrowseOPCAreas: unsafe extern "system" fn(
*mut core::ffi::c_void,
__MIDL___MIDL_itf_opc_ae_0000_0001_0002,
windows_core::PCWSTR,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
pub GetQualifiedAreaName: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub GetQualifiedSourceName: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut windows_core::PWSTR,
) -> windows_core::HRESULT,
}
pub trait IOPCEventAreaBrowser_Impl: windows_core::IUnknownImpl {
fn ChangeBrowsePosition(
&self,
dwbrowsedirection: __MIDL___MIDL_itf_opc_ae_0000_0001_0001,
szstring: &windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn BrowseOPCAreas(
&self,
dwbrowsefiltertype: __MIDL___MIDL_itf_opc_ae_0000_0001_0002,
szfiltercriteria: &windows_core::PCWSTR,
) -> windows_core::Result<windows::Win32::System::Com::IEnumString>;
fn GetQualifiedAreaName(
&self,
szareaname: &windows_core::PCWSTR,
) -> windows_core::Result<windows_core::PWSTR>;
fn GetQualifiedSourceName(
&self,
szsourcename: &windows_core::PCWSTR,
) -> windows_core::Result<windows_core::PWSTR>;
}
impl IOPCEventAreaBrowser_Vtbl {
pub const fn new<Identity: IOPCEventAreaBrowser_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn ChangeBrowsePosition<
Identity: IOPCEventAreaBrowser_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwbrowsedirection: __MIDL___MIDL_itf_opc_ae_0000_0001_0001,
szstring: windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventAreaBrowser_Impl::ChangeBrowsePosition(
this,
core::mem::transmute_copy(&dwbrowsedirection),
core::mem::transmute(&szstring),
)
.into()
}
}
unsafe extern "system" fn BrowseOPCAreas<
Identity: IOPCEventAreaBrowser_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwbrowsefiltertype: __MIDL___MIDL_itf_opc_ae_0000_0001_0002,
szfiltercriteria: windows_core::PCWSTR,
ppienumstring: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventAreaBrowser_Impl::BrowseOPCAreas(
this,
core::mem::transmute_copy(&dwbrowsefiltertype),
core::mem::transmute(&szfiltercriteria),
) {
Ok(ok__) => {
ppienumstring.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetQualifiedAreaName<
Identity: IOPCEventAreaBrowser_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szareaname: windows_core::PCWSTR,
pszqualifiedareaname: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventAreaBrowser_Impl::GetQualifiedAreaName(
this,
core::mem::transmute(&szareaname),
) {
Ok(ok__) => {
pszqualifiedareaname.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetQualifiedSourceName<
Identity: IOPCEventAreaBrowser_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szsourcename: windows_core::PCWSTR,
pszqualifiedsourcename: *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventAreaBrowser_Impl::GetQualifiedSourceName(
this,
core::mem::transmute(&szsourcename),
) {
Ok(ok__) => {
pszqualifiedsourcename.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ChangeBrowsePosition: ChangeBrowsePosition::<Identity, OFFSET>,
BrowseOPCAreas: BrowseOPCAreas::<Identity, OFFSET>,
GetQualifiedAreaName: GetQualifiedAreaName::<Identity, OFFSET>,
GetQualifiedSourceName: GetQualifiedSourceName::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventAreaBrowser as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventAreaBrowser {}
windows_core::imp::define_interface!(
IOPCEventServer,
IOPCEventServer_Vtbl,
0x65168851_5783_11d1_84a0_00608cb8a7e9
);
windows_core::imp::interface_hierarchy!(IOPCEventServer, windows_core::IUnknown);
impl IOPCEventServer {
pub unsafe fn GetStatus(
&self,
) -> windows_core::Result<*mut __MIDL___MIDL_itf_opc_ae_0000_0001_0005> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStatus)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn CreateEventSubscription(
&self,
bactive: bool,
dwbuffertime: u32,
dwmaxsize: u32,
hclientsubscription: u32,
riid: *const windows_core::GUID,
ppunk: *mut Option<windows_core::IUnknown>,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).CreateEventSubscription)(
windows_core::Interface::as_raw(self),
bactive.into(),
dwbuffertime,
dwmaxsize,
hclientsubscription,
riid,
core::mem::transmute(ppunk),
pdwrevisedbuffertime as _,
pdwrevisedmaxsize as _,
)
.ok()
}
}
pub unsafe fn QueryAvailableFilters(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).QueryAvailableFilters)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn QueryEventCategories(
&self,
dweventtype: u32,
pdwcount: *mut u32,
ppdweventcategories: *mut *mut u32,
ppszeventcategorydescs: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).QueryEventCategories)(
windows_core::Interface::as_raw(self),
dweventtype,
pdwcount as _,
ppdweventcategories as _,
ppszeventcategorydescs as _,
)
.ok()
}
}
pub unsafe fn QueryConditionNames(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).QueryConditionNames)(
windows_core::Interface::as_raw(self),
dweventcategory,
pdwcount as _,
ppszconditionnames as _,
)
.ok()
}
}
pub unsafe fn QuerySubConditionNames<P0>(
&self,
szconditionname: P0,
pdwcount: *mut u32,
ppszsubconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).QuerySubConditionNames)(
windows_core::Interface::as_raw(self),
szconditionname.param().abi(),
pdwcount as _,
ppszsubconditionnames as _,
)
.ok()
}
}
pub unsafe fn QuerySourceConditions<P0>(
&self,
szsource: P0,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).QuerySourceConditions)(
windows_core::Interface::as_raw(self),
szsource.param().abi(),
pdwcount as _,
ppszconditionnames as _,
)
.ok()
}
}
pub unsafe fn QueryEventAttributes(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattrids: *mut *mut u32,
ppszattrdescs: *mut *mut windows_core::PWSTR,
ppvtattrtypes: *mut *mut u16,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).QueryEventAttributes)(
windows_core::Interface::as_raw(self),
dweventcategory,
pdwcount as _,
ppdwattrids as _,
ppszattrdescs as _,
ppvtattrtypes as _,
)
.ok()
}
}
pub unsafe fn TranslateToItemIDs<P0, P2, P3>(
&self,
szsource: P0,
dweventcategory: u32,
szconditionname: P2,
szsubconditionname: P3,
dwcount: u32,
pdwassocattrids: *const u32,
ppszattritemids: *mut *mut windows_core::PWSTR,
ppsznodenames: *mut *mut windows_core::PWSTR,
ppclsids: *mut *mut windows_core::GUID,
) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
P3: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).TranslateToItemIDs)(
windows_core::Interface::as_raw(self),
szsource.param().abi(),
dweventcategory,
szconditionname.param().abi(),
szsubconditionname.param().abi(),
dwcount,
pdwassocattrids,
ppszattritemids as _,
ppsznodenames as _,
ppclsids as _,
)
.ok()
}
}
pub unsafe fn GetConditionState<P0, P1>(
&self,
szsource: P0,
szconditionname: P1,
pdwattributeids: &[u32],
) -> windows_core::Result<*mut __MIDL___MIDL_itf_opc_ae_0000_0001_0006>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetConditionState)(
windows_core::Interface::as_raw(self),
szsource.param().abi(),
szconditionname.param().abi(),
pdwattributeids.len().try_into().unwrap(),
core::mem::transmute(pdwattributeids.as_ptr()),
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn EnableConditionByArea(
&self,
pszareas: &[windows_core::PCWSTR],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).EnableConditionByArea)(
windows_core::Interface::as_raw(self),
pszareas.len().try_into().unwrap(),
core::mem::transmute(pszareas.as_ptr()),
)
.ok()
}
}
pub unsafe fn EnableConditionBySource(
&self,
pszsources: &[windows_core::PCWSTR],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).EnableConditionBySource)(
windows_core::Interface::as_raw(self),
pszsources.len().try_into().unwrap(),
core::mem::transmute(pszsources.as_ptr()),
)
.ok()
}
}
pub unsafe fn DisableConditionByArea(
&self,
pszareas: &[windows_core::PCWSTR],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).DisableConditionByArea)(
windows_core::Interface::as_raw(self),
pszareas.len().try_into().unwrap(),
core::mem::transmute(pszareas.as_ptr()),
)
.ok()
}
}
pub unsafe fn DisableConditionBySource(
&self,
pszsources: &[windows_core::PCWSTR],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).DisableConditionBySource)(
windows_core::Interface::as_raw(self),
pszsources.len().try_into().unwrap(),
core::mem::transmute(pszsources.as_ptr()),
)
.ok()
}
}
pub unsafe fn AckCondition<P1, P2>(
&self,
dwcount: u32,
szacknowledgerid: P1,
szcomment: P2,
pszsource: *const windows_core::PCWSTR,
pszconditionname: *const windows_core::PCWSTR,
pftactivetime: *const windows::Win32::Foundation::FILETIME,
pdwcookie: *const u32,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>
where
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
unsafe {
(windows_core::Interface::vtable(self).AckCondition)(
windows_core::Interface::as_raw(self),
dwcount,
szacknowledgerid.param().abi(),
szcomment.param().abi(),
pszsource,
pszconditionname,
pftactivetime,
pdwcookie,
pperrors as _,
)
.ok()
}
}
pub unsafe fn CreateAreaBrowser(
&self,
riid: *const windows_core::GUID,
) -> windows_core::Result<windows_core::IUnknown> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateAreaBrowser)(
windows_core::Interface::as_raw(self),
riid,
&mut result__,
)
.and_then(|| windows_core::Type::from_abi(result__))
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventServer_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetStatus: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut *mut __MIDL___MIDL_itf_opc_ae_0000_0001_0005,
) -> windows_core::HRESULT,
pub CreateEventSubscription: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::BOOL,
u32,
u32,
u32,
*const windows_core::GUID,
*mut *mut core::ffi::c_void,
*mut u32,
*mut u32,
) -> windows_core::HRESULT,
pub QueryAvailableFilters:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub QueryEventCategories: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*mut u32,
*mut *mut u32,
*mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub QueryConditionNames: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*mut u32,
*mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub QuerySubConditionNames: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut u32,
*mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub QuerySourceConditions: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
*mut u32,
*mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub QueryEventAttributes: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*mut u32,
*mut *mut u32,
*mut *mut windows_core::PWSTR,
*mut *mut u16,
) -> windows_core::HRESULT,
pub TranslateToItemIDs: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
u32,
windows_core::PCWSTR,
windows_core::PCWSTR,
u32,
*const u32,
*mut *mut windows_core::PWSTR,
*mut *mut windows_core::PWSTR,
*mut *mut windows_core::GUID,
) -> windows_core::HRESULT,
pub GetConditionState: unsafe extern "system" fn(
*mut core::ffi::c_void,
windows_core::PCWSTR,
windows_core::PCWSTR,
u32,
*const u32,
*mut *mut __MIDL___MIDL_itf_opc_ae_0000_0001_0006,
) -> windows_core::HRESULT,
pub EnableConditionByArea: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub EnableConditionBySource: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub DisableConditionByArea: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub DisableConditionBySource: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub AckCondition: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
windows_core::PCWSTR,
windows_core::PCWSTR,
*const windows_core::PCWSTR,
*const windows_core::PCWSTR,
*const windows::Win32::Foundation::FILETIME,
*const u32,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub CreateAreaBrowser: unsafe extern "system" fn(
*mut core::ffi::c_void,
*const windows_core::GUID,
*mut *mut core::ffi::c_void,
) -> windows_core::HRESULT,
}
pub trait IOPCEventServer_Impl: windows_core::IUnknownImpl {
fn GetStatus(&self) -> windows_core::Result<*mut __MIDL___MIDL_itf_opc_ae_0000_0001_0005>;
fn CreateEventSubscription(
&self,
bactive: windows_core::BOOL,
dwbuffertime: u32,
dwmaxsize: u32,
hclientsubscription: u32,
riid: *const windows_core::GUID,
ppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::Result<()>;
fn QueryAvailableFilters(&self) -> windows_core::Result<u32>;
fn QueryEventCategories(
&self,
dweventtype: u32,
pdwcount: *mut u32,
ppdweventcategories: *mut *mut u32,
ppszeventcategorydescs: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn QueryConditionNames(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn QuerySubConditionNames(
&self,
szconditionname: &windows_core::PCWSTR,
pdwcount: *mut u32,
ppszsubconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn QuerySourceConditions(
&self,
szsource: &windows_core::PCWSTR,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn QueryEventAttributes(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattrids: *mut *mut u32,
ppszattrdescs: *mut *mut windows_core::PWSTR,
ppvtattrtypes: *mut *mut u16,
) -> windows_core::Result<()>;
fn TranslateToItemIDs(
&self,
szsource: &windows_core::PCWSTR,
dweventcategory: u32,
szconditionname: &windows_core::PCWSTR,
szsubconditionname: &windows_core::PCWSTR,
dwcount: u32,
pdwassocattrids: *const u32,
ppszattritemids: *mut *mut windows_core::PWSTR,
ppsznodenames: *mut *mut windows_core::PWSTR,
ppclsids: *mut *mut windows_core::GUID,
) -> windows_core::Result<()>;
fn GetConditionState(
&self,
szsource: &windows_core::PCWSTR,
szconditionname: &windows_core::PCWSTR,
dwnumeventattrs: u32,
pdwattributeids: *const u32,
) -> windows_core::Result<*mut __MIDL___MIDL_itf_opc_ae_0000_0001_0006>;
fn EnableConditionByArea(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn EnableConditionBySource(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn DisableConditionByArea(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn DisableConditionBySource(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn AckCondition(
&self,
dwcount: u32,
szacknowledgerid: &windows_core::PCWSTR,
szcomment: &windows_core::PCWSTR,
pszsource: *const windows_core::PCWSTR,
pszconditionname: *const windows_core::PCWSTR,
pftactivetime: *const windows::Win32::Foundation::FILETIME,
pdwcookie: *const u32,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn CreateAreaBrowser(
&self,
riid: *const windows_core::GUID,
) -> windows_core::Result<windows_core::IUnknown>;
}
impl IOPCEventServer_Vtbl {
pub const fn new<Identity: IOPCEventServer_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn GetStatus<Identity: IOPCEventServer_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
ppeventserverstatus: *mut *mut __MIDL___MIDL_itf_opc_ae_0000_0001_0005,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventServer_Impl::GetStatus(this) {
Ok(ok__) => {
ppeventserverstatus.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn CreateEventSubscription<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
bactive: windows_core::BOOL,
dwbuffertime: u32,
dwmaxsize: u32,
hclientsubscription: u32,
riid: *const windows_core::GUID,
ppunk: *mut *mut core::ffi::c_void,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::CreateEventSubscription(
this,
core::mem::transmute_copy(&bactive),
core::mem::transmute_copy(&dwbuffertime),
core::mem::transmute_copy(&dwmaxsize),
core::mem::transmute_copy(&hclientsubscription),
core::mem::transmute_copy(&riid),
core::mem::transmute_copy(&ppunk),
core::mem::transmute_copy(&pdwrevisedbuffertime),
core::mem::transmute_copy(&pdwrevisedmaxsize),
)
.into()
}
}
unsafe extern "system" fn QueryAvailableFilters<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pdwfiltermask: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventServer_Impl::QueryAvailableFilters(this) {
Ok(ok__) => {
pdwfiltermask.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn QueryEventCategories<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventtype: u32,
pdwcount: *mut u32,
ppdweventcategories: *mut *mut u32,
ppszeventcategorydescs: *mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::QueryEventCategories(
this,
core::mem::transmute_copy(&dweventtype),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppdweventcategories),
core::mem::transmute_copy(&ppszeventcategorydescs),
)
.into()
}
}
unsafe extern "system" fn QueryConditionNames<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventcategory: u32,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::QueryConditionNames(
this,
core::mem::transmute_copy(&dweventcategory),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppszconditionnames),
)
.into()
}
}
unsafe extern "system" fn QuerySubConditionNames<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szconditionname: windows_core::PCWSTR,
pdwcount: *mut u32,
ppszsubconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::QuerySubConditionNames(
this,
core::mem::transmute(&szconditionname),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppszsubconditionnames),
)
.into()
}
}
unsafe extern "system" fn QuerySourceConditions<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szsource: windows_core::PCWSTR,
pdwcount: *mut u32,
ppszconditionnames: *mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::QuerySourceConditions(
this,
core::mem::transmute(&szsource),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppszconditionnames),
)
.into()
}
}
unsafe extern "system" fn QueryEventAttributes<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattrids: *mut *mut u32,
ppszattrdescs: *mut *mut windows_core::PWSTR,
ppvtattrtypes: *mut *mut u16,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::QueryEventAttributes(
this,
core::mem::transmute_copy(&dweventcategory),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppdwattrids),
core::mem::transmute_copy(&ppszattrdescs),
core::mem::transmute_copy(&ppvtattrtypes),
)
.into()
}
}
unsafe extern "system" fn TranslateToItemIDs<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szsource: windows_core::PCWSTR,
dweventcategory: u32,
szconditionname: windows_core::PCWSTR,
szsubconditionname: windows_core::PCWSTR,
dwcount: u32,
pdwassocattrids: *const u32,
ppszattritemids: *mut *mut windows_core::PWSTR,
ppsznodenames: *mut *mut windows_core::PWSTR,
ppclsids: *mut *mut windows_core::GUID,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::TranslateToItemIDs(
this,
core::mem::transmute(&szsource),
core::mem::transmute_copy(&dweventcategory),
core::mem::transmute(&szconditionname),
core::mem::transmute(&szsubconditionname),
core::mem::transmute_copy(&dwcount),
core::mem::transmute_copy(&pdwassocattrids),
core::mem::transmute_copy(&ppszattritemids),
core::mem::transmute_copy(&ppsznodenames),
core::mem::transmute_copy(&ppclsids),
)
.into()
}
}
unsafe extern "system" fn GetConditionState<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
szsource: windows_core::PCWSTR,
szconditionname: windows_core::PCWSTR,
dwnumeventattrs: u32,
pdwattributeids: *const u32,
ppconditionstate: *mut *mut __MIDL___MIDL_itf_opc_ae_0000_0001_0006,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventServer_Impl::GetConditionState(
this,
core::mem::transmute(&szsource),
core::mem::transmute(&szconditionname),
core::mem::transmute_copy(&dwnumeventattrs),
core::mem::transmute_copy(&pdwattributeids),
) {
Ok(ok__) => {
ppconditionstate.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn EnableConditionByArea<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::EnableConditionByArea(
this,
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszareas),
)
.into()
}
}
unsafe extern "system" fn EnableConditionBySource<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::EnableConditionBySource(
this,
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsources),
)
.into()
}
}
unsafe extern "system" fn DisableConditionByArea<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::DisableConditionByArea(
this,
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszareas),
)
.into()
}
}
unsafe extern "system" fn DisableConditionBySource<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::DisableConditionBySource(
this,
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsources),
)
.into()
}
}
unsafe extern "system" fn AckCondition<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwcount: u32,
szacknowledgerid: windows_core::PCWSTR,
szcomment: windows_core::PCWSTR,
pszsource: *const windows_core::PCWSTR,
pszconditionname: *const windows_core::PCWSTR,
pftactivetime: *const windows::Win32::Foundation::FILETIME,
pdwcookie: *const u32,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer_Impl::AckCondition(
this,
core::mem::transmute_copy(&dwcount),
core::mem::transmute(&szacknowledgerid),
core::mem::transmute(&szcomment),
core::mem::transmute_copy(&pszsource),
core::mem::transmute_copy(&pszconditionname),
core::mem::transmute_copy(&pftactivetime),
core::mem::transmute_copy(&pdwcookie),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn CreateAreaBrowser<
Identity: IOPCEventServer_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
riid: *const windows_core::GUID,
ppunk: *mut *mut core::ffi::c_void,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventServer_Impl::CreateAreaBrowser(
this,
core::mem::transmute_copy(&riid),
) {
Ok(ok__) => {
ppunk.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetStatus: GetStatus::<Identity, OFFSET>,
CreateEventSubscription: CreateEventSubscription::<Identity, OFFSET>,
QueryAvailableFilters: QueryAvailableFilters::<Identity, OFFSET>,
QueryEventCategories: QueryEventCategories::<Identity, OFFSET>,
QueryConditionNames: QueryConditionNames::<Identity, OFFSET>,
QuerySubConditionNames: QuerySubConditionNames::<Identity, OFFSET>,
QuerySourceConditions: QuerySourceConditions::<Identity, OFFSET>,
QueryEventAttributes: QueryEventAttributes::<Identity, OFFSET>,
TranslateToItemIDs: TranslateToItemIDs::<Identity, OFFSET>,
GetConditionState: GetConditionState::<Identity, OFFSET>,
EnableConditionByArea: EnableConditionByArea::<Identity, OFFSET>,
EnableConditionBySource: EnableConditionBySource::<Identity, OFFSET>,
DisableConditionByArea: DisableConditionByArea::<Identity, OFFSET>,
DisableConditionBySource: DisableConditionBySource::<Identity, OFFSET>,
AckCondition: AckCondition::<Identity, OFFSET>,
CreateAreaBrowser: CreateAreaBrowser::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventServer as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventServer {}
windows_core::imp::define_interface!(
IOPCEventServer2,
IOPCEventServer2_Vtbl,
0x71bbe88e_9564_4bcd_bcfc_71c558d94f2d
);
impl core::ops::Deref for IOPCEventServer2 {
type Target = IOPCEventServer;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IOPCEventServer2, windows_core::IUnknown, IOPCEventServer);
impl IOPCEventServer2 {
pub unsafe fn EnableConditionByArea2(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).EnableConditionByArea2)(
windows_core::Interface::as_raw(self),
dwnumareas,
pszareas,
pperrors as _,
)
.ok()
}
}
pub unsafe fn EnableConditionBySource2(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).EnableConditionBySource2)(
windows_core::Interface::as_raw(self),
dwnumsources,
pszsources,
pperrors as _,
)
.ok()
}
}
pub unsafe fn DisableConditionByArea2(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).DisableConditionByArea2)(
windows_core::Interface::as_raw(self),
dwnumareas,
pszareas,
pperrors as _,
)
.ok()
}
}
pub unsafe fn DisableConditionBySource2(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).DisableConditionBySource2)(
windows_core::Interface::as_raw(self),
dwnumsources,
pszsources,
pperrors as _,
)
.ok()
}
}
pub unsafe fn GetEnableStateByArea(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetEnableStateByArea)(
windows_core::Interface::as_raw(self),
dwnumareas,
pszareas,
pbenabled as _,
pbeffectivelyenabled as _,
pperrors as _,
)
.ok()
}
}
pub unsafe fn GetEnableStateBySource(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetEnableStateBySource)(
windows_core::Interface::as_raw(self),
dwnumsources,
pszsources,
pbenabled as _,
pbeffectivelyenabled as _,
pperrors as _,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventServer2_Vtbl {
pub base__: IOPCEventServer_Vtbl,
pub EnableConditionByArea2: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub EnableConditionBySource2: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub DisableConditionByArea2: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub DisableConditionBySource2: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub GetEnableStateByArea: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::BOOL,
*mut *mut windows_core::BOOL,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
pub GetEnableStateBySource: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*const windows_core::PCWSTR,
*mut *mut windows_core::BOOL,
*mut *mut windows_core::BOOL,
*mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT,
}
pub trait IOPCEventServer2_Impl: IOPCEventServer_Impl {
fn EnableConditionByArea2(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn EnableConditionBySource2(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn DisableConditionByArea2(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn DisableConditionBySource2(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn GetEnableStateByArea(
&self,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
fn GetEnableStateBySource(
&self,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::Result<()>;
}
impl IOPCEventServer2_Vtbl {
pub const fn new<Identity: IOPCEventServer2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn EnableConditionByArea2<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::EnableConditionByArea2(
this,
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszareas),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn EnableConditionBySource2<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::EnableConditionBySource2(
this,
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsources),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn DisableConditionByArea2<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::DisableConditionByArea2(
this,
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszareas),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn DisableConditionBySource2<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::DisableConditionBySource2(
this,
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsources),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn GetEnableStateByArea<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumareas: u32,
pszareas: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::GetEnableStateByArea(
this,
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszareas),
core::mem::transmute_copy(&pbenabled),
core::mem::transmute_copy(&pbeffectivelyenabled),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
unsafe extern "system" fn GetEnableStateBySource<
Identity: IOPCEventServer2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwnumsources: u32,
pszsources: *const windows_core::PCWSTR,
pbenabled: *mut *mut windows_core::BOOL,
pbeffectivelyenabled: *mut *mut windows_core::BOOL,
pperrors: *mut *mut windows_core::HRESULT,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventServer2_Impl::GetEnableStateBySource(
this,
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsources),
core::mem::transmute_copy(&pbenabled),
core::mem::transmute_copy(&pbeffectivelyenabled),
core::mem::transmute_copy(&pperrors),
)
.into()
}
}
Self {
base__: IOPCEventServer_Vtbl::new::<Identity, OFFSET>(),
EnableConditionByArea2: EnableConditionByArea2::<Identity, OFFSET>,
EnableConditionBySource2: EnableConditionBySource2::<Identity, OFFSET>,
DisableConditionByArea2: DisableConditionByArea2::<Identity, OFFSET>,
DisableConditionBySource2: DisableConditionBySource2::<Identity, OFFSET>,
GetEnableStateByArea: GetEnableStateByArea::<Identity, OFFSET>,
GetEnableStateBySource: GetEnableStateBySource::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventServer2 as windows_core::Interface>::IID
|| iid == &<IOPCEventServer as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventServer2 {}
windows_core::imp::define_interface!(
IOPCEventSink,
IOPCEventSink_Vtbl,
0x6516885f_5783_11d1_84a0_00608cb8a7e9
);
windows_core::imp::interface_hierarchy!(IOPCEventSink, windows_core::IUnknown);
impl IOPCEventSink {
pub unsafe fn OnEvent(
&self,
hclientsubscription: u32,
brefresh: bool,
blastrefresh: bool,
pevents: &[__MIDL___MIDL_itf_opc_ae_0000_0001_0004],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).OnEvent)(
windows_core::Interface::as_raw(self),
hclientsubscription,
brefresh.into(),
blastrefresh.into(),
pevents.len().try_into().unwrap(),
core::mem::transmute(pevents.as_ptr()),
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventSink_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub OnEvent: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
windows_core::BOOL,
windows_core::BOOL,
u32,
*const __MIDL___MIDL_itf_opc_ae_0000_0001_0004,
) -> windows_core::HRESULT,
}
pub trait IOPCEventSink_Impl: windows_core::IUnknownImpl {
fn OnEvent(
&self,
hclientsubscription: u32,
brefresh: windows_core::BOOL,
blastrefresh: windows_core::BOOL,
dwcount: u32,
pevents: *const __MIDL___MIDL_itf_opc_ae_0000_0001_0004,
) -> windows_core::Result<()>;
}
impl IOPCEventSink_Vtbl {
pub const fn new<Identity: IOPCEventSink_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn OnEvent<Identity: IOPCEventSink_Impl, const OFFSET: isize>(
this: *mut core::ffi::c_void,
hclientsubscription: u32,
brefresh: windows_core::BOOL,
blastrefresh: windows_core::BOOL,
dwcount: u32,
pevents: *const __MIDL___MIDL_itf_opc_ae_0000_0001_0004,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSink_Impl::OnEvent(
this,
core::mem::transmute_copy(&hclientsubscription),
core::mem::transmute_copy(&brefresh),
core::mem::transmute_copy(&blastrefresh),
core::mem::transmute_copy(&dwcount),
core::mem::transmute_copy(&pevents),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnEvent: OnEvent::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventSink as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventSink {}
windows_core::imp::define_interface!(
IOPCEventSubscriptionMgt,
IOPCEventSubscriptionMgt_Vtbl,
0x65168855_5783_11d1_84a0_00608cb8a7e9
);
windows_core::imp::interface_hierarchy!(IOPCEventSubscriptionMgt, windows_core::IUnknown);
impl IOPCEventSubscriptionMgt {
pub unsafe fn SetFilter(
&self,
dweventtype: u32,
pdweventcategories: &[u32],
dwlowseverity: u32,
dwhighseverity: u32,
pszarealist: &[windows_core::PCWSTR],
pszsourcelist: &[windows_core::PCWSTR],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetFilter)(
windows_core::Interface::as_raw(self),
dweventtype,
pdweventcategories.len().try_into().unwrap(),
core::mem::transmute(pdweventcategories.as_ptr()),
dwlowseverity,
dwhighseverity,
pszarealist.len().try_into().unwrap(),
core::mem::transmute(pszarealist.as_ptr()),
pszsourcelist.len().try_into().unwrap(),
core::mem::transmute(pszsourcelist.as_ptr()),
)
.ok()
}
}
pub unsafe fn GetFilter(
&self,
pdweventtype: *mut u32,
pdwnumcategories: *mut u32,
ppdweventcategories: *mut *mut u32,
pdwlowseverity: *mut u32,
pdwhighseverity: *mut u32,
pdwnumareas: *mut u32,
ppszarealist: *mut *mut windows_core::PWSTR,
pdwnumsources: *mut u32,
ppszsourcelist: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetFilter)(
windows_core::Interface::as_raw(self),
pdweventtype as _,
pdwnumcategories as _,
ppdweventcategories as _,
pdwlowseverity as _,
pdwhighseverity as _,
pdwnumareas as _,
ppszarealist as _,
pdwnumsources as _,
ppszsourcelist as _,
)
.ok()
}
}
pub unsafe fn SelectReturnedAttributes(
&self,
dweventcategory: u32,
dwattributeids: &[u32],
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SelectReturnedAttributes)(
windows_core::Interface::as_raw(self),
dweventcategory,
dwattributeids.len().try_into().unwrap(),
core::mem::transmute(dwattributeids.as_ptr()),
)
.ok()
}
}
pub unsafe fn GetReturnedAttributes(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattributeids: *mut *mut u32,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetReturnedAttributes)(
windows_core::Interface::as_raw(self),
dweventcategory,
pdwcount as _,
ppdwattributeids as _,
)
.ok()
}
}
pub unsafe fn Refresh(&self, dwconnection: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).Refresh)(
windows_core::Interface::as_raw(self),
dwconnection,
)
.ok()
}
}
pub unsafe fn CancelRefresh(&self, dwconnection: u32) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).CancelRefresh)(
windows_core::Interface::as_raw(self),
dwconnection,
)
.ok()
}
}
pub unsafe fn GetState(
&self,
pbactive: *mut windows_core::BOOL,
pdwbuffertime: *mut u32,
pdwmaxsize: *mut u32,
phclientsubscription: *mut u32,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).GetState)(
windows_core::Interface::as_raw(self),
pbactive as _,
pdwbuffertime as _,
pdwmaxsize as _,
phclientsubscription as _,
)
.ok()
}
}
pub unsafe fn SetState(
&self,
pbactive: *const windows_core::BOOL,
pdwbuffertime: *const u32,
pdwmaxsize: *const u32,
hclientsubscription: u32,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::Result<()> {
unsafe {
(windows_core::Interface::vtable(self).SetState)(
windows_core::Interface::as_raw(self),
pbactive,
pdwbuffertime,
pdwmaxsize,
hclientsubscription,
pdwrevisedbuffertime as _,
pdwrevisedmaxsize as _,
)
.ok()
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventSubscriptionMgt_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub SetFilter: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
u32,
*const u32,
u32,
u32,
u32,
*const windows_core::PCWSTR,
u32,
*const windows_core::PCWSTR,
) -> windows_core::HRESULT,
pub GetFilter: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut u32,
*mut u32,
*mut *mut u32,
*mut u32,
*mut u32,
*mut u32,
*mut *mut windows_core::PWSTR,
*mut u32,
*mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT,
pub SelectReturnedAttributes: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
u32,
*const u32,
) -> windows_core::HRESULT,
pub GetReturnedAttributes: unsafe extern "system" fn(
*mut core::ffi::c_void,
u32,
*mut u32,
*mut *mut u32,
) -> windows_core::HRESULT,
pub Refresh: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub CancelRefresh:
unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetState: unsafe extern "system" fn(
*mut core::ffi::c_void,
*mut windows_core::BOOL,
*mut u32,
*mut u32,
*mut u32,
) -> windows_core::HRESULT,
pub SetState: unsafe extern "system" fn(
*mut core::ffi::c_void,
*const windows_core::BOOL,
*const u32,
*const u32,
u32,
*mut u32,
*mut u32,
) -> windows_core::HRESULT,
}
pub trait IOPCEventSubscriptionMgt_Impl: windows_core::IUnknownImpl {
fn SetFilter(
&self,
dweventtype: u32,
dwnumcategories: u32,
pdweventcategories: *const u32,
dwlowseverity: u32,
dwhighseverity: u32,
dwnumareas: u32,
pszarealist: *const windows_core::PCWSTR,
dwnumsources: u32,
pszsourcelist: *const windows_core::PCWSTR,
) -> windows_core::Result<()>;
fn GetFilter(
&self,
pdweventtype: *mut u32,
pdwnumcategories: *mut u32,
ppdweventcategories: *mut *mut u32,
pdwlowseverity: *mut u32,
pdwhighseverity: *mut u32,
pdwnumareas: *mut u32,
ppszarealist: *mut *mut windows_core::PWSTR,
pdwnumsources: *mut u32,
ppszsourcelist: *mut *mut windows_core::PWSTR,
) -> windows_core::Result<()>;
fn SelectReturnedAttributes(
&self,
dweventcategory: u32,
dwcount: u32,
dwattributeids: *const u32,
) -> windows_core::Result<()>;
fn GetReturnedAttributes(
&self,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattributeids: *mut *mut u32,
) -> windows_core::Result<()>;
fn Refresh(&self, dwconnection: u32) -> windows_core::Result<()>;
fn CancelRefresh(&self, dwconnection: u32) -> windows_core::Result<()>;
fn GetState(
&self,
pbactive: *mut windows_core::BOOL,
pdwbuffertime: *mut u32,
pdwmaxsize: *mut u32,
phclientsubscription: *mut u32,
) -> windows_core::Result<()>;
fn SetState(
&self,
pbactive: *const windows_core::BOOL,
pdwbuffertime: *const u32,
pdwmaxsize: *const u32,
hclientsubscription: u32,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::Result<()>;
}
impl IOPCEventSubscriptionMgt_Vtbl {
pub const fn new<Identity: IOPCEventSubscriptionMgt_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetFilter<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventtype: u32,
dwnumcategories: u32,
pdweventcategories: *const u32,
dwlowseverity: u32,
dwhighseverity: u32,
dwnumareas: u32,
pszarealist: *const windows_core::PCWSTR,
dwnumsources: u32,
pszsourcelist: *const windows_core::PCWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::SetFilter(
this,
core::mem::transmute_copy(&dweventtype),
core::mem::transmute_copy(&dwnumcategories),
core::mem::transmute_copy(&pdweventcategories),
core::mem::transmute_copy(&dwlowseverity),
core::mem::transmute_copy(&dwhighseverity),
core::mem::transmute_copy(&dwnumareas),
core::mem::transmute_copy(&pszarealist),
core::mem::transmute_copy(&dwnumsources),
core::mem::transmute_copy(&pszsourcelist),
)
.into()
}
}
unsafe extern "system" fn GetFilter<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pdweventtype: *mut u32,
pdwnumcategories: *mut u32,
ppdweventcategories: *mut *mut u32,
pdwlowseverity: *mut u32,
pdwhighseverity: *mut u32,
pdwnumareas: *mut u32,
ppszarealist: *mut *mut windows_core::PWSTR,
pdwnumsources: *mut u32,
ppszsourcelist: *mut *mut windows_core::PWSTR,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::GetFilter(
this,
core::mem::transmute_copy(&pdweventtype),
core::mem::transmute_copy(&pdwnumcategories),
core::mem::transmute_copy(&ppdweventcategories),
core::mem::transmute_copy(&pdwlowseverity),
core::mem::transmute_copy(&pdwhighseverity),
core::mem::transmute_copy(&pdwnumareas),
core::mem::transmute_copy(&ppszarealist),
core::mem::transmute_copy(&pdwnumsources),
core::mem::transmute_copy(&ppszsourcelist),
)
.into()
}
}
unsafe extern "system" fn SelectReturnedAttributes<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventcategory: u32,
dwcount: u32,
dwattributeids: *const u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::SelectReturnedAttributes(
this,
core::mem::transmute_copy(&dweventcategory),
core::mem::transmute_copy(&dwcount),
core::mem::transmute_copy(&dwattributeids),
)
.into()
}
}
unsafe extern "system" fn GetReturnedAttributes<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dweventcategory: u32,
pdwcount: *mut u32,
ppdwattributeids: *mut *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::GetReturnedAttributes(
this,
core::mem::transmute_copy(&dweventcategory),
core::mem::transmute_copy(&pdwcount),
core::mem::transmute_copy(&ppdwattributeids),
)
.into()
}
}
unsafe extern "system" fn Refresh<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwconnection: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::Refresh(
this,
core::mem::transmute_copy(&dwconnection),
)
.into()
}
}
unsafe extern "system" fn CancelRefresh<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwconnection: u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::CancelRefresh(
this,
core::mem::transmute_copy(&dwconnection),
)
.into()
}
}
unsafe extern "system" fn GetState<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pbactive: *mut windows_core::BOOL,
pdwbuffertime: *mut u32,
pdwmaxsize: *mut u32,
phclientsubscription: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::GetState(
this,
core::mem::transmute_copy(&pbactive),
core::mem::transmute_copy(&pdwbuffertime),
core::mem::transmute_copy(&pdwmaxsize),
core::mem::transmute_copy(&phclientsubscription),
)
.into()
}
}
unsafe extern "system" fn SetState<
Identity: IOPCEventSubscriptionMgt_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pbactive: *const windows_core::BOOL,
pdwbuffertime: *const u32,
pdwmaxsize: *const u32,
hclientsubscription: u32,
pdwrevisedbuffertime: *mut u32,
pdwrevisedmaxsize: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
IOPCEventSubscriptionMgt_Impl::SetState(
this,
core::mem::transmute_copy(&pbactive),
core::mem::transmute_copy(&pdwbuffertime),
core::mem::transmute_copy(&pdwmaxsize),
core::mem::transmute_copy(&hclientsubscription),
core::mem::transmute_copy(&pdwrevisedbuffertime),
core::mem::transmute_copy(&pdwrevisedmaxsize),
)
.into()
}
}
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFilter: SetFilter::<Identity, OFFSET>,
GetFilter: GetFilter::<Identity, OFFSET>,
SelectReturnedAttributes: SelectReturnedAttributes::<Identity, OFFSET>,
GetReturnedAttributes: GetReturnedAttributes::<Identity, OFFSET>,
Refresh: Refresh::<Identity, OFFSET>,
CancelRefresh: CancelRefresh::<Identity, OFFSET>,
GetState: GetState::<Identity, OFFSET>,
SetState: SetState::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventSubscriptionMgt as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventSubscriptionMgt {}
windows_core::imp::define_interface!(
IOPCEventSubscriptionMgt2,
IOPCEventSubscriptionMgt2_Vtbl,
0x94c955dc_3684_4ccb_afab_f898ce19aac3
);
impl core::ops::Deref for IOPCEventSubscriptionMgt2 {
type Target = IOPCEventSubscriptionMgt;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(
IOPCEventSubscriptionMgt2,
windows_core::IUnknown,
IOPCEventSubscriptionMgt
);
impl IOPCEventSubscriptionMgt2 {
pub unsafe fn SetKeepAlive(&self, dwkeepalivetime: u32) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetKeepAlive)(
windows_core::Interface::as_raw(self),
dwkeepalivetime,
&mut result__,
)
.map(|| result__)
}
}
pub unsafe fn GetKeepAlive(&self) -> windows_core::Result<u32> {
unsafe {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetKeepAlive)(
windows_core::Interface::as_raw(self),
&mut result__,
)
.map(|| result__)
}
}
}
#[repr(C)]
#[doc(hidden)]
pub struct IOPCEventSubscriptionMgt2_Vtbl {
pub base__: IOPCEventSubscriptionMgt_Vtbl,
pub SetKeepAlive:
unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetKeepAlive:
unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
}
pub trait IOPCEventSubscriptionMgt2_Impl: IOPCEventSubscriptionMgt_Impl {
fn SetKeepAlive(&self, dwkeepalivetime: u32) -> windows_core::Result<u32>;
fn GetKeepAlive(&self) -> windows_core::Result<u32>;
}
impl IOPCEventSubscriptionMgt2_Vtbl {
pub const fn new<Identity: IOPCEventSubscriptionMgt2_Impl, const OFFSET: isize>() -> Self {
unsafe extern "system" fn SetKeepAlive<
Identity: IOPCEventSubscriptionMgt2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
dwkeepalivetime: u32,
pdwrevisedkeepalivetime: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventSubscriptionMgt2_Impl::SetKeepAlive(
this,
core::mem::transmute_copy(&dwkeepalivetime),
) {
Ok(ok__) => {
pdwrevisedkeepalivetime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
unsafe extern "system" fn GetKeepAlive<
Identity: IOPCEventSubscriptionMgt2_Impl,
const OFFSET: isize,
>(
this: *mut core::ffi::c_void,
pdwkeepalivetime: *mut u32,
) -> windows_core::HRESULT {
unsafe {
let this: &Identity =
&*((this as *const *const ()).offset(OFFSET) as *const Identity);
match IOPCEventSubscriptionMgt2_Impl::GetKeepAlive(this) {
Ok(ok__) => {
pdwkeepalivetime.write(core::mem::transmute(ok__));
windows_core::HRESULT(0)
}
Err(err) => err.into(),
}
}
}
Self {
base__: IOPCEventSubscriptionMgt_Vtbl::new::<Identity, OFFSET>(),
SetKeepAlive: SetKeepAlive::<Identity, OFFSET>,
GetKeepAlive: GetKeepAlive::<Identity, OFFSET>,
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<IOPCEventSubscriptionMgt2 as windows_core::Interface>::IID
|| iid == &<IOPCEventSubscriptionMgt as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for IOPCEventSubscriptionMgt2 {}
pub const OPCAE_BROWSE_DOWN: __MIDL___MIDL_itf_opc_ae_0000_0001_0001 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0001(2i32);
pub const OPCAE_BROWSE_TO: __MIDL___MIDL_itf_opc_ae_0000_0001_0001 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0001(3i32);
pub const OPCAE_BROWSE_UP: __MIDL___MIDL_itf_opc_ae_0000_0001_0001 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0001(1i32);
pub const OPCAE_STATUS_COMM_FAULT: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(6i32);
pub const OPCAE_STATUS_FAILED: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(2i32);
pub const OPCAE_STATUS_NOCONFIG: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(3i32);
pub const OPCAE_STATUS_RUNNING: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(1i32);
pub const OPCAE_STATUS_SUSPENDED: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(4i32);
pub const OPCAE_STATUS_TEST: __MIDL___MIDL_itf_opc_ae_0000_0001_0003 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0003(5i32);
windows_core::imp::define_interface!(
OPCEventServerCATID,
OPCEventServerCATID_Vtbl,
0x58e13251_ac87_11d1_84d5_00608cb8a7e9
);
windows_core::imp::interface_hierarchy!(OPCEventServerCATID, windows_core::IUnknown);
#[repr(C)]
#[doc(hidden)]
pub struct OPCEventServerCATID_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
}
pub trait OPCEventServerCATID_Impl: windows_core::IUnknownImpl {}
impl OPCEventServerCATID_Vtbl {
pub const fn new<Identity: OPCEventServerCATID_Impl, const OFFSET: isize>() -> Self {
Self {
base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
}
}
pub fn matches(iid: &windows_core::GUID) -> bool {
iid == &<OPCEventServerCATID as windows_core::Interface>::IID
}
}
impl windows_core::RuntimeName for OPCEventServerCATID {}
pub const OPC_ALL_EVENTS: u32 = 7u32;
pub const OPC_AREA: __MIDL___MIDL_itf_opc_ae_0000_0001_0002 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0002(1i32);
pub const OPC_CATEGORY_DESCRIPTION_AE10: windows_core::PCWSTR =
windows_core::w!("OPC Alarm & Event Server Version 1.0");
pub const OPC_CHANGE_ACK_STATE: u32 = 2u32;
pub const OPC_CHANGE_ACTIVE_STATE: u32 = 1u32;
pub const OPC_CHANGE_ATTRIBUTE: u32 = 128u32;
pub const OPC_CHANGE_ENABLE_STATE: u32 = 4u32;
pub const OPC_CHANGE_MESSAGE: u32 = 64u32;
pub const OPC_CHANGE_QUALITY: u32 = 8u32;
pub const OPC_CHANGE_SEVERITY: u32 = 16u32;
pub const OPC_CHANGE_SUBCONDITION: u32 = 32u32;
pub const OPC_CONDITION_ACKED: u32 = 4u32;
pub const OPC_CONDITION_ACTIVE: u32 = 2u32;
pub const OPC_CONDITION_ENABLED: u32 = 1u32;
pub const OPC_CONDITION_EVENT: u32 = 4u32;
pub const OPC_FILTER_BY_AREA: u32 = 8u32;
pub const OPC_FILTER_BY_CATEGORY: u32 = 2u32;
pub const OPC_FILTER_BY_EVENT: u32 = 1u32;
pub const OPC_FILTER_BY_SEVERITY: u32 = 4u32;
pub const OPC_FILTER_BY_SOURCE: u32 = 16u32;
pub const OPC_SIMPLE_EVENT: u32 = 1u32;
pub const OPC_SOURCE: __MIDL___MIDL_itf_opc_ae_0000_0001_0002 =
__MIDL___MIDL_itf_opc_ae_0000_0001_0002(2i32);
pub const OPC_TRACKING_EVENT: u32 = 2u32;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0001(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0002(pub i32);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0003(pub i32);
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0004 {
pub wChangeMask: u16,
pub wNewState: u16,
pub szSource: windows_core::PWSTR,
pub ftTime: windows::Win32::Foundation::FILETIME,
pub szMessage: windows_core::PWSTR,
pub dwEventType: u32,
pub dwEventCategory: u32,
pub dwSeverity: u32,
pub szConditionName: windows_core::PWSTR,
pub szSubconditionName: windows_core::PWSTR,
pub wQuality: u16,
pub wReserved: u16,
pub bAckRequired: windows_core::BOOL,
pub ftActiveTime: windows::Win32::Foundation::FILETIME,
pub dwCookie: u32,
pub dwNumEventAttrs: u32,
pub pEventAttributes: *mut windows::Win32::System::Variant::VARIANT,
pub szActorID: windows_core::PWSTR,
}
impl Default for __MIDL___MIDL_itf_opc_ae_0000_0001_0004 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0005 {
pub ftStartTime: windows::Win32::Foundation::FILETIME,
pub ftCurrentTime: windows::Win32::Foundation::FILETIME,
pub ftLastUpdateTime: windows::Win32::Foundation::FILETIME,
pub dwServerState: __MIDL___MIDL_itf_opc_ae_0000_0001_0003,
pub wMajorVersion: u16,
pub wMinorVersion: u16,
pub wBuildNumber: u16,
pub wReserved: u16,
pub szVendorInfo: windows_core::PWSTR,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct __MIDL___MIDL_itf_opc_ae_0000_0001_0006 {
pub wState: u16,
pub wReserved1: u16,
pub szActiveSubCondition: windows_core::PWSTR,
pub szASCDefinition: windows_core::PWSTR,
pub dwASCSeverity: u32,
pub szASCDescription: windows_core::PWSTR,
pub wQuality: u16,
pub wReserved2: u16,
pub ftLastAckTime: windows::Win32::Foundation::FILETIME,
pub ftSubCondLastActive: windows::Win32::Foundation::FILETIME,
pub ftCondLastActive: windows::Win32::Foundation::FILETIME,
pub ftCondLastInactive: windows::Win32::Foundation::FILETIME,
pub szAcknowledgerID: windows_core::PWSTR,
pub szComment: windows_core::PWSTR,
pub dwNumSCs: u32,
pub pszSCNames: *mut windows_core::PWSTR,
pub pszSCDefinitions: *mut windows_core::PWSTR,
pub pdwSCSeverities: *mut u32,
pub pszSCDescriptions: *mut windows_core::PWSTR,
pub dwNumEventAttrs: u32,
pub pEventAttributes: *mut windows::Win32::System::Variant::VARIANT,
pub pErrors: *mut windows_core::HRESULT,
}
impl Default for __MIDL___MIDL_itf_opc_ae_0000_0001_0006 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}