winapi_ui_automation/um/
adhoc.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::guiddef::GUID;
7use shared::minwindef::ULONG;
8use um::unknwnbase::{IUnknown, IUnknownVtbl};
9use um::winnt::{BOOLEAN, HRESULT, LONG, LPCWSTR, LPWSTR};
10ENUM!{enum DOT11_ADHOC_CIPHER_ALGORITHM {
11    DOT11_ADHOC_CIPHER_ALGO_INVALID = -1i32 as u32,
12    DOT11_ADHOC_CIPHER_ALGO_NONE = 0,
13    DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x4,
14    DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101,
15}}
16ENUM!{enum DOT11_ADHOC_AUTH_ALGORITHM {
17    DOT11_ADHOC_AUTH_ALGO_INVALID = -1i32 as u32,
18    DOT11_ADHOC_AUTH_ALGO_80211_OPEN = 1,
19    DOT11_ADHOC_AUTH_ALGO_RSNA_PSK = 7,
20}}
21ENUM!{enum DOT11_ADHOC_NETWORK_CONNECTION_STATUS {
22    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_INVALID = 0,
23    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_DISCONNECTED = 11,
24    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTING = 12,
25    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTED = 13,
26    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_FORMED = 14,
27}}
28ENUM!{enum DOT11_ADHOC_CONNECT_FAIL_REASON {
29    DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH = 0,
30    DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH = 1,
31    DOT11_ADHOC_CONNECT_FAIL_OTHER = 2,
32}}
33RIDL!{#[uuid(0x8f10cc26, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
34interface IDot11AdHocManager(IDot11AdHocManagerVtbl): IUnknown(IUnknownVtbl) {
35    fn CreateNetwork(
36        Name: LPCWSTR,
37        Password: LPCWSTR,
38        GeographicalId: LONG,
39        pInterface: *mut IDot11AdHocInterface,
40        pSecurity: *mut IDot11AdHocSecuritySettings,
41        pContextGuid: *mut GUID,
42        pIAdHoc: *mut *mut IDot11AdHocNetwork,
43    ) -> HRESULT,
44    fn CommitCreatedNetwork(
45        pIAdHoc: *mut IDot11AdHocNetwork,
46        fSaveProfile: BOOLEAN,
47        fMakeSavedProfileUserSpecific: BOOLEAN,
48    ) -> HRESULT,
49    fn GetIEnumDot11AdHocNetworks(
50        pContextGuid: *mut GUID,
51        ppEnum: *mut *mut IEnumDot11AdHocNetworks,
52    ) -> HRESULT,
53    fn GetIEnumDot11AdHocInterfaces(
54        ppEnum: *mut *mut IEnumDot11AdHocInterfaces,
55    ) -> HRESULT,
56    fn GetNetwork(
57        NetworkSignature: *mut GUID,
58        pNetwork: *mut *mut IDot11AdHocNetwork,
59    ) -> HRESULT,
60}}
61RIDL!{#[uuid(0x8f10cc27, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
62interface IDot11AdHocManagerNotificationSink(IDot11AdHocManagerNotificationSinkVtbl):
63    IUnknown(IUnknownVtbl) {
64    fn OnNetworkAdd(
65        pIAdHocNetwork: *mut IDot11AdHocNetwork,
66    ) -> HRESULT,
67    fn OnNetworkRemove(
68        Signature: *mut GUID,
69    ) -> HRESULT,
70    fn OnInterfaceAdd(
71        pIAdHocInterface: *mut IDot11AdHocInterface,
72    ) -> HRESULT,
73    fn OnInterfaceRemove(
74        Signature: *mut GUID,
75    ) -> HRESULT,
76}}
77RIDL!{#[uuid(0x8f10cc28, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
78interface IEnumDot11AdHocNetworks(IEnumDot11AdHocNetworksVtbl): IUnknown(IUnknownVtbl) {
79    fn Next(
80        cElt: ULONG,
81        rgElt: *mut *mut IDot11AdHocNetwork,
82        pcEltFetched: *mut ULONG,
83    ) -> HRESULT,
84    fn Skip(
85        cElt: ULONG,
86    ) -> HRESULT,
87    fn Reset() -> HRESULT,
88    fn Clone(
89        ppEnum: *mut *mut IEnumDot11AdHocNetworks,
90    ) -> HRESULT,
91}}
92RIDL!{#[uuid(0x8f10cc29, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
93interface IDot11AdHocNetwork(IDot11AdHocNetworkVtbl): IUnknown(IUnknownVtbl) {
94    fn GetStatus(
95        eStatus: *mut DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
96    ) -> HRESULT,
97    fn GetSSID(
98        ppszwSSID: *mut LPWSTR,
99    ) -> HRESULT,
100    fn HasProfile(
101        pf11d: *mut BOOLEAN,
102    ) -> HRESULT,
103    fn GetProfileName(
104        ppszwProfileName: *mut LPWSTR,
105    ) -> HRESULT,
106    fn DeleteProfile() -> HRESULT,
107    fn GetSignalQuality(
108        puStrengthValue: *mut ULONG,
109        puStrengthMax: *mut ULONG,
110    ) -> HRESULT,
111    fn GetSecuritySetting(
112        pAdHocSecuritySetting: *mut *mut IDot11AdHocSecuritySettings,
113    ) -> HRESULT,
114    fn GetContextGuid(
115        pContextGuid: *mut GUID,
116    ) -> HRESULT,
117    fn GetSignature(
118        pSignature: *mut GUID,
119    ) -> HRESULT,
120    fn GetInterface(
121        pAdHocInterface: *mut *mut IDot11AdHocInterface,
122    ) -> HRESULT,
123    fn Connect(
124        Passphrase: LPCWSTR,
125        GeographicalId: LONG,
126        fSaveProfile: BOOLEAN,
127        fMakeSavedProfileUserSpecific: BOOLEAN,
128    ) -> HRESULT,
129    fn Disconnect() -> HRESULT,
130}}
131RIDL!{#[uuid(0x8f10cc2a, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
132interface IDot11AdHocNetworkNotificationSink(IDot11AdHocNetworkNotificationSinkVtbl):
133    IUnknown(IUnknownVtbl) {
134    fn OnStatusChange(
135        eStatus: DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
136    ) -> HRESULT,
137    fn OnConnectFail(
138        eFailReason: DOT11_ADHOC_CONNECT_FAIL_REASON,
139    ) -> HRESULT,
140}}
141RIDL!{#[uuid(0x8f10cc2b, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
142interface IDot11AdHocInterface(IDot11AdHocInterfaceVtbl): IUnknown(IUnknownVtbl) {
143    fn GetDeviceSignature(
144        pSignature: *mut GUID,
145    ) -> HRESULT,
146    fn GetFriendlyName(
147        ppszName: *mut LPWSTR,
148    ) -> HRESULT,
149    fn IsDot11d(
150        pf11d: *mut BOOLEAN,
151    ) -> HRESULT,
152    fn IsAdHocCapable(
153        pfAdHocCapable: *mut BOOLEAN,
154    ) -> HRESULT,
155    fn IsRadioOn(
156        pfIsRadioOn: *mut BOOLEAN,
157    ) -> HRESULT,
158    fn GetActiveNetwork(
159        ppNetwork: *mut *mut IDot11AdHocNetwork,
160    ) -> HRESULT,
161    fn GetIEnumSecuritySettings(
162        ppEnum: *mut *mut IEnumDot11AdHocSecuritySettings,
163    ) -> HRESULT,
164    fn GetIEnumDot11AdHocNetworks(
165        pFilterGuid: *mut GUID,
166        ppEnum: *mut *mut IEnumDot11AdHocNetworks,
167    ) -> HRESULT,
168    fn GetStatus(
169        pState: *mut DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
170    ) -> HRESULT,
171}}
172RIDL!{#[uuid(0x8f10cc2c, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
173interface IEnumDot11AdHocInterfaces(IEnumDot11AdHocInterfacesVtbl): IUnknown(IUnknownVtbl) {
174    fn Next(
175        cElt: ULONG,
176        rgElt: *mut *mut IDot11AdHocInterface,
177        pcEltFetched: *mut ULONG,
178    ) -> HRESULT,
179    fn Skip(
180        cElt: ULONG,
181    ) -> HRESULT,
182    fn Reset() -> HRESULT,
183    fn Clone(
184        ppEnum: *mut *mut IEnumDot11AdHocInterfaces,
185    ) -> HRESULT,
186}}
187RIDL!{#[uuid(0x8f10cc2d, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
188interface IEnumDot11AdHocSecuritySettings(IEnumDot11AdHocSecuritySettingsVtbl):
189    IUnknown(IUnknownVtbl) {
190    fn Next(
191        cElt: ULONG,
192        rgElt: *mut *mut IDot11AdHocSecuritySettings,
193        pcEltFetched: *mut ULONG,
194    ) -> HRESULT,
195    fn Skip(
196        cElt: ULONG,
197    ) -> HRESULT,
198    fn Reset() -> HRESULT,
199    fn Clone(
200        ppEnum: *mut *mut IEnumDot11AdHocSecuritySettings,
201    ) -> HRESULT,
202}}
203RIDL!{#[uuid(0x8f10cc2e, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
204interface IDot11AdHocSecuritySettings(IDot11AdHocSecuritySettingsVtbl): IUnknown(IUnknownVtbl) {
205    fn GetDot11AuthAlgorithm(
206        pAuth: *mut DOT11_ADHOC_AUTH_ALGORITHM,
207    ) -> HRESULT,
208    fn GetDot11CipherAlgorithm(
209        pCipher: *mut DOT11_ADHOC_CIPHER_ALGORITHM,
210    ) -> HRESULT,
211}}
212RIDL!{#[uuid(0x8f10cc2f, 0xcf0d, 0x42a0, 0xac, 0xbe, 0xe2, 0xde, 0x70, 0x07, 0x38, 0x4d)]
213interface IDot11AdHocInterfaceNotificationSink(IDot11AdHocInterfaceNotificationSinkVtbl):
214    IUnknown(IUnknownVtbl) {
215    fn OnConnectionStatusChange(
216        eStatus: DOT11_ADHOC_NETWORK_CONNECTION_STATUS,
217    ) -> HRESULT,
218}}
219RIDL!{#[uuid(0xdd06a84f, 0x83bd, 0x4d01, 0x8a, 0xb9, 0x23, 0x89, 0xfe, 0xa0, 0x86, 0x9e)]
220class Dot11AdHocManager;}