pub type IVpnChannelStatics = *mut ::core::ffi::c_void; pub type IVpnCredential = *mut ::core::ffi::c_void; pub type IVpnCustomPrompt = *mut ::core::ffi::c_void; pub type IVpnCustomPromptElement = *mut ::core::ffi::c_void; pub type IVpnDomainNameInfoFactory = *mut ::core::ffi::c_void; pub type IVpnInterfaceIdFactory = *mut ::core::ffi::c_void; pub type IVpnNamespaceInfoFactory = *mut ::core::ffi::c_void; pub type IVpnPacketBufferFactory = *mut ::core::ffi::c_void; pub type IVpnPlugIn = *mut ::core::ffi::c_void; pub type IVpnProfile = *mut ::core::ffi::c_void; pub type IVpnRouteFactory = *mut ::core::ffi::c_void; pub type VpnAppId = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnAppIdType(pub i32); impl VpnAppIdType { pub const PackageFamilyName: Self = Self(0i32); pub const FullyQualifiedBinaryName: Self = Self(1i32); pub const FilePath: Self = Self(2i32); } impl ::core::marker::Copy for VpnAppIdType {} impl ::core::clone::Clone for VpnAppIdType { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnAuthenticationMethod(pub i32); impl VpnAuthenticationMethod { pub const Mschapv2: Self = Self(0i32); pub const Eap: Self = Self(1i32); pub const Certificate: Self = Self(2i32); pub const PresharedKey: Self = Self(3i32); } impl ::core::marker::Copy for VpnAuthenticationMethod {} impl ::core::clone::Clone for VpnAuthenticationMethod { fn clone(&self) -> Self { *self } } pub type VpnChannel = *mut ::core::ffi::c_void; pub type VpnChannelActivityEventArgs = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnChannelActivityEventType(pub i32); impl VpnChannelActivityEventType { pub const Idle: Self = Self(0i32); pub const Active: Self = Self(1i32); } impl ::core::marker::Copy for VpnChannelActivityEventType {} impl ::core::clone::Clone for VpnChannelActivityEventType { fn clone(&self) -> Self { *self } } pub type VpnChannelActivityStateChangedArgs = *mut ::core::ffi::c_void; pub type VpnChannelConfiguration = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnChannelRequestCredentialsOptions(pub u32); impl VpnChannelRequestCredentialsOptions { pub const None: Self = Self(0u32); pub const Retrying: Self = Self(1u32); pub const UseForSingleSignIn: Self = Self(2u32); } impl ::core::marker::Copy for VpnChannelRequestCredentialsOptions {} impl ::core::clone::Clone for VpnChannelRequestCredentialsOptions { fn clone(&self) -> Self { *self } } pub type VpnCredential = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnCredentialType(pub i32); impl VpnCredentialType { pub const UsernamePassword: Self = Self(0i32); pub const UsernameOtpPin: Self = Self(1i32); pub const UsernamePasswordAndPin: Self = Self(2i32); pub const UsernamePasswordChange: Self = Self(3i32); pub const SmartCard: Self = Self(4i32); pub const ProtectedCertificate: Self = Self(5i32); pub const UnProtectedCertificate: Self = Self(6i32); } impl ::core::marker::Copy for VpnCredentialType {} impl ::core::clone::Clone for VpnCredentialType { fn clone(&self) -> Self { *self } } pub type VpnCustomCheckBox = *mut ::core::ffi::c_void; pub type VpnCustomComboBox = *mut ::core::ffi::c_void; pub type VpnCustomEditBox = *mut ::core::ffi::c_void; pub type VpnCustomErrorBox = *mut ::core::ffi::c_void; pub type VpnCustomPromptBooleanInput = *mut ::core::ffi::c_void; pub type VpnCustomPromptOptionSelector = *mut ::core::ffi::c_void; pub type VpnCustomPromptText = *mut ::core::ffi::c_void; pub type VpnCustomPromptTextInput = *mut ::core::ffi::c_void; pub type VpnCustomTextBox = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnDataPathType(pub i32); impl VpnDataPathType { pub const Send: Self = Self(0i32); pub const Receive: Self = Self(1i32); } impl ::core::marker::Copy for VpnDataPathType {} impl ::core::clone::Clone for VpnDataPathType { fn clone(&self) -> Self { *self } } pub type VpnDomainNameAssignment = *mut ::core::ffi::c_void; pub type VpnDomainNameInfo = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnDomainNameType(pub i32); impl VpnDomainNameType { pub const Suffix: Self = Self(0i32); pub const FullyQualified: Self = Self(1i32); pub const Reserved: Self = Self(65535i32); } impl ::core::marker::Copy for VpnDomainNameType {} impl ::core::clone::Clone for VpnDomainNameType { fn clone(&self) -> Self { *self } } pub type VpnForegroundActivatedEventArgs = *mut ::core::ffi::c_void; pub type VpnForegroundActivationOperation = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnIPProtocol(pub i32); impl VpnIPProtocol { pub const None: Self = Self(0i32); pub const Tcp: Self = Self(6i32); pub const Udp: Self = Self(17i32); pub const Icmp: Self = Self(1i32); pub const Ipv6Icmp: Self = Self(58i32); pub const Igmp: Self = Self(2i32); pub const Pgm: Self = Self(113i32); } impl ::core::marker::Copy for VpnIPProtocol {} impl ::core::clone::Clone for VpnIPProtocol { fn clone(&self) -> Self { *self } } pub type VpnInterfaceId = *mut ::core::ffi::c_void; pub type VpnManagementAgent = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnManagementConnectionStatus(pub i32); impl VpnManagementConnectionStatus { pub const Disconnected: Self = Self(0i32); pub const Disconnecting: Self = Self(1i32); pub const Connected: Self = Self(2i32); pub const Connecting: Self = Self(3i32); } impl ::core::marker::Copy for VpnManagementConnectionStatus {} impl ::core::clone::Clone for VpnManagementConnectionStatus { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnManagementErrorStatus(pub i32); impl VpnManagementErrorStatus { pub const Ok: Self = Self(0i32); pub const Other: Self = Self(1i32); pub const InvalidXmlSyntax: Self = Self(2i32); pub const ProfileNameTooLong: Self = Self(3i32); pub const ProfileInvalidAppId: Self = Self(4i32); pub const AccessDenied: Self = Self(5i32); pub const CannotFindProfile: Self = Self(6i32); pub const AlreadyDisconnecting: Self = Self(7i32); pub const AlreadyConnected: Self = Self(8i32); pub const GeneralAuthenticationFailure: Self = Self(9i32); pub const EapFailure: Self = Self(10i32); pub const SmartCardFailure: Self = Self(11i32); pub const CertificateFailure: Self = Self(12i32); pub const ServerConfiguration: Self = Self(13i32); pub const NoConnection: Self = Self(14i32); pub const ServerConnection: Self = Self(15i32); pub const UserNamePassword: Self = Self(16i32); pub const DnsNotResolvable: Self = Self(17i32); pub const InvalidIP: Self = Self(18i32); } impl ::core::marker::Copy for VpnManagementErrorStatus {} impl ::core::clone::Clone for VpnManagementErrorStatus { fn clone(&self) -> Self { *self } } pub type VpnNamespaceAssignment = *mut ::core::ffi::c_void; pub type VpnNamespaceInfo = *mut ::core::ffi::c_void; pub type VpnNativeProfile = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnNativeProtocolType(pub i32); impl VpnNativeProtocolType { pub const Pptp: Self = Self(0i32); pub const L2tp: Self = Self(1i32); pub const IpsecIkev2: Self = Self(2i32); } impl ::core::marker::Copy for VpnNativeProtocolType {} impl ::core::clone::Clone for VpnNativeProtocolType { fn clone(&self) -> Self { *self } } pub type VpnPacketBuffer = *mut ::core::ffi::c_void; pub type VpnPacketBufferList = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnPacketBufferStatus(pub i32); impl VpnPacketBufferStatus { pub const Ok: Self = Self(0i32); pub const InvalidBufferSize: Self = Self(1i32); } impl ::core::marker::Copy for VpnPacketBufferStatus {} impl ::core::clone::Clone for VpnPacketBufferStatus { fn clone(&self) -> Self { *self } } pub type VpnPickedCredential = *mut ::core::ffi::c_void; pub type VpnPlugInProfile = *mut ::core::ffi::c_void; pub type VpnRoute = *mut ::core::ffi::c_void; pub type VpnRouteAssignment = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Networking_Vpn\"`*"] #[repr(transparent)] pub struct VpnRoutingPolicyType(pub i32); impl VpnRoutingPolicyType { pub const SplitRouting: Self = Self(0i32); pub const ForceAllTrafficOverVpn: Self = Self(1i32); } impl ::core::marker::Copy for VpnRoutingPolicyType {} impl ::core::clone::Clone for VpnRoutingPolicyType { fn clone(&self) -> Self { *self } } pub type VpnSystemHealth = *mut ::core::ffi::c_void; pub type VpnTrafficFilter = *mut ::core::ffi::c_void; pub type VpnTrafficFilterAssignment = *mut ::core::ffi::c_void;