Source code
Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use shared::guiddef::GUID;
use shared::minwindef::ULONG;
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::winnt::{BOOLEAN, HRESULT, LONG, LPCWSTR, LPWSTR};
ENUM!{enum DOT11_ADHOC_CIPHER_ALGORITHM {
DOT11_ADHOC_CIPHER_ALGO_INVALID = -1i32 as u32,
DOT11_ADHOC_CIPHER_ALGO_NONE = 0,
DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x4,
DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101,
}}
ENUM!{enum DOT11_ADHOC_AUTH_ALGORITHM {
DOT11_ADHOC_AUTH_ALGO_INVALID = -1i32 as u32,
DOT11_ADHOC_AUTH_ALGO_80211_OPEN = 1,
DOT11_ADHOC_AUTH_ALGO_RSNA_PSK = 7,
}}
ENUM!{enum DOT11_ADHOC_NETWORK_CONNECTION_STATUS {
DOT11_ADHOC_NETWORK_CONNECTION_STATUS_INVALID = 0,
DOT11_ADHOC_NETWORK_CONNECTION_STATUS_DISCONNECTED = 11,
DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTING = 12,
DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTED = 13,
DOT11_ADHOC_NETWORK_CONNECTION_STATUS_FORMED = 14,
}}
ENUM!{enum DOT11_ADHOC_CONNECT_FAIL_REASON {
DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH = 0,
DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH = 1,
DOT11_ADHOC_CONNECT_FAIL_OTHER = 2,
}}
RIDL!{#[uuid(0x8f10cc26, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocManager(IDot11AdHocManagerVtbl): IUnknown(IUnknownVtbl) {
fn CreateNetwork(
Name: LPCWSTR,
Password: LPCWSTR,
GeographicalId: LONG,
pInterface: *mut IDot11AdHocInterface,
pSecurity: *mut IDot11AdHocSecuritySettings,
pContextGuid: *mut GUID,
pIAdHoc: *mut *mut IDot11AdHocNetwork,
) -> HRESULT,
fn CommitCreatedNetwork(
pIAdHoc: *mut IDot11AdHocNetwork,
fSaveProfile: BOOLEAN,
fMakeSavedProfileUserSpecific: BOOLEAN,
) -> HRESULT,
fn GetIEnumDot11AdHocNetworks(
pContextGuid: *mut GUID,
ppEnum: *mut *mut IEnumDot11AdHocNetworks,
) -> HRESULT,
fn GetIEnumDot11AdHocInterfaces(
ppEnum: *mut *mut IEnumDot11AdHocInterfaces,
) -> HRESULT,
fn GetNetwork(
NetworkSignature: *mut GUID,
pNetwork: *mut *mut IDot11AdHocNetwork,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc27, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocManagerNotificationSink(IDot11AdHocManagerNotificationSinkVtbl):
IUnknown(IUnknownVtbl) {
fn OnNetworkAdd(
pIAdHocNetwork: *mut IDot11AdHocNetwork,
) -> HRESULT,
fn OnNetworkRemove(
Signature: *mut GUID,
) -> HRESULT,
fn OnInterfaceAdd(
pIAdHocInterface: *mut IDot11AdHocInterface,
) -> HRESULT,
fn OnInterfaceRemove(
Signature: *mut GUID,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc28, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IEnumDot11AdHocNetworks(IEnumDot11AdHocNetworksVtbl): IUnknown(IUnknownVtbl) {
fn Next(
cElt: ULONG,
rgElt: *mut *mut IDot11AdHocNetwork,
pcEltFetched: *mut ULONG,
) -> HRESULT,
fn Skip(
cElt: ULONG,
) -> HRESULT,
fn Reset() -> HRESULT,
fn Clone(
ppEnum: *mut *mut IEnumDot11AdHocNetworks,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc29, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocNetwork(IDot11AdHocNetworkVtbl): IUnknown(IUnknownVtbl) {
fn GetStatus(
eStatus: *mut DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
) -> HRESULT,
fn GetSSID(
ppszwSSID: *mut LPWSTR,
) -> HRESULT,
fn HasProfile(
pf11d: *mut BOOLEAN,
) -> HRESULT,
fn GetProfileName(
ppszwProfileName: *mut LPWSTR,
) -> HRESULT,
fn DeleteProfile() -> HRESULT,
fn GetSignalQuality(
puStrengthValue: *mut ULONG,
puStrengthMax: *mut ULONG,
) -> HRESULT,
fn GetSecuritySetting(
pAdHocSecuritySetting: *mut *mut IDot11AdHocSecuritySettings,
) -> HRESULT,
fn GetContextGuid(
pContextGuid: *mut GUID,
) -> HRESULT,
fn GetSignature(
pSignature: *mut GUID,
) -> HRESULT,
fn GetInterface(
pAdHocInterface: *mut *mut IDot11AdHocInterface,
) -> HRESULT,
fn Connect(
Passphrase: LPCWSTR,
GeographicalId: LONG,
fSaveProfile: BOOLEAN,
fMakeSavedProfileUserSpecific: BOOLEAN,
) -> HRESULT,
fn Disconnect() -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2a, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocNetworkNotificationSink(IDot11AdHocNetworkNotificationSinkVtbl):
IUnknown(IUnknownVtbl) {
fn OnStatusChange(
eStatus: DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
) -> HRESULT,
fn OnConnectFail(
eFailReason: DOT11_ADHOC_CONNECT_FAIL_REASON,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2b, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocInterface(IDot11AdHocInterfaceVtbl): IUnknown(IUnknownVtbl) {
fn GetDeviceSignature(
pSignature: *mut GUID,
) -> HRESULT,
fn GetFriendlyName(
ppszName: *mut LPWSTR,
) -> HRESULT,
fn IsDot11d(
pf11d: *mut BOOLEAN,
) -> HRESULT,
fn IsAdHocCapable(
pfAdHocCapable: *mut BOOLEAN,
) -> HRESULT,
fn IsRadioOn(
pfIsRadioOn: *mut BOOLEAN,
) -> HRESULT,
fn GetActiveNetwork(
ppNetwork: *mut *mut IDot11AdHocNetwork,
) -> HRESULT,
fn GetIEnumSecuritySettings(
ppEnum: *mut *mut IEnumDot11AdHocSecuritySettings,
) -> HRESULT,
fn GetIEnumDot11AdHocNetworks(
pFilterGuid: *mut GUID,
ppEnum: *mut *mut IEnumDot11AdHocNetworks,
) -> HRESULT,
fn GetStatus(
pState: *mut DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2c, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IEnumDot11AdHocInterfaces(IEnumDot11AdHocInterfacesVtbl): IUnknown(IUnknownVtbl) {
fn Next(
cElt: ULONG,
rgElt: *mut *mut IDot11AdHocInterface,
pcEltFetched: *mut ULONG,
) -> HRESULT,
fn Skip(
cElt: ULONG,
) -> HRESULT,
fn Reset() -> HRESULT,
fn Clone(
ppEnum: *mut *mut IEnumDot11AdHocInterfaces,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2d, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IEnumDot11AdHocSecuritySettings(IEnumDot11AdHocSecuritySettingsVtbl):
IUnknown(IUnknownVtbl) {
fn Next(
cElt: ULONG,
rgElt: *mut *mut IDot11AdHocSecuritySettings,
pcEltFetched: *mut ULONG,
) -> HRESULT,
fn Skip(
cElt: ULONG,
) -> HRESULT,
fn Reset() -> HRESULT,
fn Clone(
ppEnum: *mut *mut IEnumDot11AdHocSecuritySettings,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2e, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocSecuritySettings(IDot11AdHocSecuritySettingsVtbl): IUnknown(IUnknownVtbl) {
fn GetDot11AuthAlgorithm(
pAuth: *mut DOT11_ADHOC_AUTH_ALGORITHM,
) -> HRESULT,
fn GetDot11CipherAlgorithm(
pCipher: *mut DOT11_ADHOC_CIPHER_ALGORITHM,
) -> HRESULT,
}}
RIDL!{#[uuid(0x8f10cc2f, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
interface IDot11AdHocInterfaceNotificationSink(IDot11AdHocInterfaceNotificationSinkVtbl):
IUnknown(IUnknownVtbl) {
fn OnConnectionStatusChange(
eStatus: DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
) -> HRESULT,
}}
RIDL!{#[uuid(0xdd06a84f, 0x83bd, 0x4d01, 0x8a, 0xb9, 0x23, 0x89, 0xfe, 0xa0, 0x86, 0x9e)]
class Dot11AdHocManager;}