mirror of https://github.com/UMSKT/xpmgr.git
540 lines
14 KiB
Plaintext
540 lines
14 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: AdHoc.idl
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "oaidl.idl";
|
|
import "unknwn.idl";
|
|
import "wtypes.idl";
|
|
#endif
|
|
|
|
|
|
cpp_quote("EXTERN_C const CLSID CLSID_AdHocManager;")
|
|
|
|
|
|
// Reserved GUIDS for our use
|
|
//
|
|
// 8F10CC20-CF0D-42a0-ACBE-E2DE7007384D IID_IAdHocManager
|
|
// 8F10CC21-CF0D-42a0-ACBE-E2DE7007384D IID_IEnumAdHocMediums
|
|
// 8F10CC22-CF0D-42a0-ACBE-E2DE7007384D IID_IAdHocMediumManager
|
|
// 8F10CC23-CF0D-42a0-ACBE-E2DE7007384D IID_IEnumAdHocConnections
|
|
// 8F10CC24-CF0D-42a0-ACBE-E2DE7007384D IID_IAdHocConnection
|
|
// 8F10CC25-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC26-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocManager
|
|
// 8F10CC27-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocManagerNotificationSink
|
|
// 8F10CC28-CF0D-42a0-ACBE-E2DE7007384D IID_IEnumDot11AdHocNetworks
|
|
// 8F10CC29-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocNetwork
|
|
// 8F10CC2A-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocNetworkNotificationSink
|
|
//
|
|
// 8F10CC2B-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocInterface
|
|
// 8F10CC2C-CF0D-42a0-ACBE-E2DE7007384D IID_IEnumDot11AdHocInterfaces
|
|
// 8F10CC2D-CF0D-42a0-ACBE-E2DE7007384D IID_IEnumDot11AdHocSecuritySettings
|
|
// 8F10CC2E-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocSecuritySettings
|
|
// 8F10CC2F-CF0D-42a0-ACBE-E2DE7007384D IID_IDot11AdHocInterfaceNotificationSink
|
|
// 8F10CC30-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC31-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC32-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC33-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC34-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC35-CF0D-42a0-ACBE-E2DE7007384D
|
|
// 8F10CC36-CF0D-42a0-ACBE-E2DE7007384D
|
|
//
|
|
interface IDot11AdHocManager;
|
|
interface IDot11AdHocManagerNotificationSink;
|
|
interface IEnumDot11AdHocNetworks;
|
|
interface IDot11AdHocNetwork;
|
|
interface IDot11AdHocNetworkNotificationSink;
|
|
|
|
interface IDot11AdHocInterface;
|
|
interface IEnumDot11AdHocInterfaces;
|
|
interface IEnumDot11AdHocSecuritySettings;
|
|
interface IDot11AdHocSecuritySettings;
|
|
interface IDot11AdHocInterfaceNotificationSink;
|
|
|
|
typedef [v1_enum] enum tagDOT11_ADHOC_CIPHER_ALGORITHM
|
|
{
|
|
DOT11_ADHOC_CIPHER_ALGO_INVALID = -1,
|
|
DOT11_ADHOC_CIPHER_ALGO_NONE = 0x00,
|
|
DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x04,
|
|
DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101,
|
|
} DOT11_ADHOC_CIPHER_ALGORITHM;
|
|
|
|
typedef [v1_enum] enum tagDOT11_ADHOC_AUTH_ALGORITHM
|
|
{
|
|
DOT11_ADHOC_AUTH_ALGO_INVALID = -1,
|
|
DOT11_ADHOC_AUTH_ALGO_80211_OPEN = 1,
|
|
DOT11_ADHOC_AUTH_ALGO_RSNA_PSK = 7
|
|
} DOT11_ADHOC_AUTH_ALGORITHM;
|
|
|
|
//
|
|
// Valid Cipher - Auth pairs are as following:
|
|
// 1) OPEN - NONE
|
|
// AUTH_ALGO_80211_OPEN : CIPHER_ALGO_NONE
|
|
//
|
|
// 2) OPEN - WEP
|
|
// AUTH_ALGO_80211_OPEN : CIPHER_ALGO_WEP
|
|
//
|
|
// 3) WPA2PSK
|
|
// AUTH_ALGO_RSNA_PSK : CIPHER_ALGO_CCMP
|
|
//
|
|
|
|
/*
|
|
typedef struct tagADHOC_SECURITY_SETTING
|
|
{
|
|
DOT11_ADHOC_AUTH_ALGORITHM AdHocAuth;
|
|
DOT11_ADHOC_CIPHER_ALGORITHM AdHocCipher;
|
|
} ADHOC_SECURITY_SETTING;
|
|
|
|
*/
|
|
|
|
typedef [v1_enum] enum tagDOT11_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
|
|
} DOT11_ADHOC_NETWORK_CONNECTION_STATUS;
|
|
|
|
typedef [v1_enum] enum tagDOT11_ADHOC_CONNECT_FAIL_REASON
|
|
{
|
|
DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH = 0,
|
|
DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH = 1,
|
|
DOT11_ADHOC_CONNECT_FAIL_OTHER = 2
|
|
} DOT11_ADHOC_CONNECT_FAIL_REASON;
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IDot11AdHocManager -- root interface for the home networking configuration
|
|
// manager.
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC26-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocManager : IUnknown
|
|
{
|
|
|
|
//
|
|
// Just returns if this system is even capable of creating
|
|
// Ad-Hoc connections OR Whether NICs exists
|
|
/*
|
|
HRESULT GetMediumCapability(
|
|
[out] ADHOC_MEDIA_CAPABILITIES* MediumPresence
|
|
);
|
|
*/
|
|
|
|
HRESULT CreateNetwork(
|
|
[in, string] LPCWSTR Name,
|
|
[in, string] LPCWSTR Password,
|
|
[in] LONG GeographicalId,
|
|
[in] IDot11AdHocInterface* pInterface,
|
|
[in] IDot11AdHocSecuritySettings* pSecurity,
|
|
[in] GUID* pContextGuid,
|
|
[out] IDot11AdHocNetwork** pIAdHoc
|
|
);
|
|
|
|
HRESULT CommitCreatedNetwork(
|
|
[in] IDot11AdHocNetwork* pIAdHoc,
|
|
[in] BOOLEAN fSaveProfile,
|
|
[in] BOOLEAN fMakeSavedProfileUserSpecific
|
|
);
|
|
|
|
//
|
|
// Scan's and returns what Ad-Hoc connections are available around,
|
|
// if a Guid filter is provided we try to filter off that key (by checking IE on the beacons)
|
|
//
|
|
HRESULT GetIEnumDot11AdHocNetworks(
|
|
[in] GUID* pContextGuid, // Optional Guid for filtering
|
|
[out] IEnumDot11AdHocNetworks** ppEnum // Enumerator
|
|
);
|
|
|
|
HRESULT GetIEnumDot11AdHocInterfaces(
|
|
[out] IEnumDot11AdHocInterfaces** ppEnum
|
|
);
|
|
|
|
HRESULT GetNetwork(
|
|
[in] GUID* NetworkSignature,
|
|
[out] IDot11AdHocNetwork** pNetwork
|
|
);
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IDot11AdHocManager -- root interface for the home networking configuration
|
|
// manager.
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC27-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocManagerNotificationSink : IUnknown
|
|
{
|
|
HRESULT OnNetworkAdd(
|
|
[in] IDot11AdHocNetwork* pIAdHocNetwork
|
|
);
|
|
|
|
HRESULT OnNetworkRemove(
|
|
[in] GUID* Signature
|
|
);
|
|
|
|
HRESULT OnInterfaceAdd(
|
|
[in] IDot11AdHocInterface* pIAdHocInterface
|
|
);
|
|
HRESULT OnInterfaceRemove(
|
|
[in] GUID* Signature
|
|
);
|
|
/*
|
|
HRESULT OnChangeCapability(
|
|
[in] ADHOC_MEDIA_CAPABILITIES NewCapability
|
|
);
|
|
*/
|
|
}
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IEnumDot11AdHocNetworks -- Is used to enumerate the scanned Ad-Hoc Connections,
|
|
// which optionally just matches the provided Guid Filter
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC28-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumDot11AdHocNetworks : IUnknown
|
|
{
|
|
HRESULT Next (
|
|
[in] ULONG cElt,
|
|
[out, size_is(cElt), length_is(*pcEltFetched)]
|
|
IDot11AdHocNetwork** rgElt,
|
|
[out] ULONG* pcEltFetched
|
|
);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG cElt
|
|
);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumDot11AdHocNetworks** ppEnum
|
|
);
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IDot11AdHocNetwork --
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC29-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocNetwork : IUnknown
|
|
{
|
|
//
|
|
// Gets The State
|
|
//
|
|
HRESULT GetStatus(
|
|
[in, out] DOT11_ADHOC_NETWORK_CONNECTION_STATUS* eStatus
|
|
);
|
|
|
|
//
|
|
// Gets the SSID of the connection
|
|
//
|
|
HRESULT GetSSID(
|
|
[out, string] LPWSTR* ppszwSSID
|
|
);
|
|
|
|
//
|
|
// Returns TRUE if this network object has a profile associated w/ it.
|
|
//
|
|
HRESULT HasProfile(
|
|
[in, out] BOOLEAN* pf11d
|
|
);
|
|
|
|
//
|
|
// Gets the Profile Name of the connection if there is any
|
|
//
|
|
HRESULT GetProfileName(
|
|
[out, string] LPWSTR* ppszwProfileName
|
|
);
|
|
|
|
//
|
|
// Deletes any associated profile w/ the network object
|
|
//
|
|
HRESULT DeleteProfile();
|
|
|
|
|
|
//
|
|
// Returns the Signal Quality level and its maximum possible value.
|
|
//
|
|
HRESULT GetSignalQuality(
|
|
[out] ULONG* puStrengthValue,
|
|
[out] ULONG* puStrengthMax
|
|
);
|
|
|
|
//
|
|
// Is this adhoc network secure or not?
|
|
//
|
|
HRESULT GetSecuritySetting(
|
|
[out] IDot11AdHocSecuritySettings** pAdHocSecuritySetting
|
|
);
|
|
|
|
//
|
|
// Return any Filter Guid Associated with this ad-hoc Connection (if-any)
|
|
//
|
|
HRESULT GetContextGuid(
|
|
[in, out] GUID* pContextGuid
|
|
);
|
|
|
|
|
|
//
|
|
// Gets the L2 Signature of the connection
|
|
//
|
|
HRESULT GetSignature(
|
|
[in, out] GUID* pSignature
|
|
);
|
|
|
|
//
|
|
// Gets the SSID of the connection
|
|
//
|
|
HRESULT GetInterface(
|
|
[out] IDot11AdHocInterface** pAdHocInterface
|
|
);
|
|
|
|
|
|
//
|
|
// Triggers 802.11 Actions to be part of the ad-hoc connectioon
|
|
//
|
|
HRESULT Connect(
|
|
[in, string] LPCWSTR Passphrase, // Passphrase, which may get converted to WPA-2 or WEP key
|
|
[in] LONG GeographicalId, // ...
|
|
[in] BOOLEAN fSaveProfile,
|
|
[in] BOOLEAN fMakeSavedProfileUserSpecific
|
|
);
|
|
|
|
HRESULT Disconnect();
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IDot11AdHocNetworkNotificationSink --
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2A-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocNetworkNotificationSink : IUnknown
|
|
{
|
|
HRESULT OnStatusChange(
|
|
DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus
|
|
);
|
|
|
|
HRESULT OnConnectFail(
|
|
DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason
|
|
);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// IDot11AdHocInterface
|
|
//
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2B-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocInterface : IUnknown
|
|
{
|
|
HRESULT GetDeviceSignature(
|
|
[in, out] GUID* pSignature
|
|
);
|
|
|
|
HRESULT GetFriendlyName(
|
|
[out, string] LPWSTR* ppszName
|
|
);
|
|
|
|
HRESULT IsDot11d(
|
|
[in, out] BOOLEAN* pf11d
|
|
);
|
|
|
|
HRESULT IsAdHocCapable(
|
|
[in, out] BOOLEAN* pfAdHocCapable
|
|
);
|
|
|
|
HRESULT IsRadioOn(
|
|
[in, out] BOOLEAN* pfIsRadioOn
|
|
);
|
|
|
|
HRESULT GetActiveNetwork(
|
|
[out] IDot11AdHocNetwork** ppNetwork
|
|
);
|
|
|
|
HRESULT GetIEnumSecuritySettings(
|
|
[out] IEnumDot11AdHocSecuritySettings** ppEnum
|
|
);
|
|
|
|
HRESULT GetIEnumDot11AdHocNetworks(
|
|
[in] GUID* pFilterGuid, // Optional Guid for filtering
|
|
[out] IEnumDot11AdHocNetworks** ppEnum // Enumerator
|
|
);
|
|
|
|
HRESULT GetStatus(
|
|
[in, out] DOT11_ADHOC_NETWORK_CONNECTION_STATUS* pState
|
|
);
|
|
|
|
// HRESULT GetEnumCountriesSupported();
|
|
|
|
} // IDot11AdHocInterface
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// IEnumDot11AdHocInterfaces
|
|
//
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2C-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumDot11AdHocInterfaces : IUnknown
|
|
{
|
|
HRESULT Next (
|
|
[in] ULONG cElt,
|
|
[out, size_is(cElt), length_is(*pcEltFetched)]
|
|
IDot11AdHocInterface** rgElt,
|
|
[out] ULONG* pcEltFetched
|
|
);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG cElt
|
|
);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumDot11AdHocInterfaces** ppEnum
|
|
);
|
|
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// IEnumDot11InterfaceSecuritySettings
|
|
//
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2D-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface
|
|
IEnumDot11AdHocSecuritySettings : IUnknown
|
|
{
|
|
HRESULT Next (
|
|
[in] ULONG cElt,
|
|
[out, size_is(cElt), length_is(*pcEltFetched)]
|
|
IDot11AdHocSecuritySettings** rgElt,
|
|
[out] ULONG* pcEltFetched
|
|
);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG cElt
|
|
);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumDot11AdHocSecuritySettings** ppEnum
|
|
);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// IDot11AdHocSecuritySettings
|
|
//
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2E-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocSecuritySettings : IUnknown
|
|
{
|
|
HRESULT GetDot11AuthAlgorithm(
|
|
[in, out] DOT11_ADHOC_AUTH_ALGORITHM* pAuth
|
|
);
|
|
|
|
HRESULT GetDot11CipherAlgorithm(
|
|
[in, out] DOT11_ADHOC_CIPHER_ALGORITHM* pCipher
|
|
);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// IDot11AdHocInterfaceNotificationSink
|
|
//
|
|
//
|
|
[
|
|
local,
|
|
object,
|
|
uuid(8F10CC2F-CF0D-42a0-ACBE-E2DE7007384D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDot11AdHocInterfaceNotificationSink : IUnknown
|
|
{
|
|
HRESULT OnConnectionStatusChange(
|
|
DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus
|
|
);
|
|
}
|
|
|
|
|
|
|
|
//----------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
[
|
|
uuid(45357166-FF38-4302-8F5C-DF5B703A6E3D),
|
|
version(1.0),
|
|
helpstring("AdHoc 1.0 Type Library")
|
|
]
|
|
library ADHOCLib
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(DD06A84F-83BD-4d01-8AB9-2389FEA0869E),
|
|
helpstring("Dot11AdHocManager Class")
|
|
]
|
|
coclass Dot11AdHocManager
|
|
{
|
|
[default] interface IDot11AdHocManager;
|
|
};
|
|
};
|
|
|
|
|