59 WCHAR szDetail[200] =
L"SYSTEM\\CurrentControlSet\\Control\\Class\\";
145 swprintf(
szPath,
L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection", pDisplayName);
173 swprintf(
szPath,
L"System\\CurrentControlSet\\Hardware Profiles\\Current\\System\\CurrentControlSet\\Enum\\%s", pPnp);
210 DWORD dwShowIcon, dwNotifyDisconnect, dwType,
dwSize;
231 *ppProps = pProperties;
245 wcscpy(
szName,
L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\");
251 dwSize =
sizeof(dwShowIcon);
260 dwSize =
sizeof(dwNotifyDisconnect);
263 if (dwNotifyDisconnect)
335 if (pszwDuplicateName ==
NULL ||
wcslen(pszwDuplicateName) == 0)
354 wcscpy(
szName,
L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\");
372 return ShellObjectCreatorInit<CNetConnection>(pItem,
riid,
ppv);
387 IEnumNetConnection **ppEnum)
389 TRACE(
"EnumConnections\n");
397 *ppEnum = static_cast<IEnumNetConnection*>(
this);
415 if (!pceltFetched || !rgelt)
465 pCurrentAdapter = pAdapterInfo;
466 while (pCurrentAdapter)
471 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
478 pCurrentAdapter = pCurrentAdapter->
Next;
516 DWORD dwSize, dwResult, dwIndex, dwAdapterIndex, dwShowIcon, dwNotifyDisconnect;
524 WCHAR szAdapterNetCfg[50];
525 WCHAR szDetail[200] =
L"SYSTEM\\CurrentControlSet\\Control\\Class\\";
526 WCHAR szName[130] =
L"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\";
580 DevInfo.
cbSize =
sizeof(DevInfo);
595 dwSize =
sizeof(szNetCfg);
609 IfEntry.
dwIndex = dwAdapterIndex;
642 dwSize =
sizeof(szAdapterNetCfg);
649 dwSize =
sizeof(dwShowIcon);
655 dwSize =
sizeof(dwNotifyDisconnect);
658 if (dwNotifyDisconnect)
675 pCurrent->
Next = pNew;
704 #if USE_CUSTOM_CONMGR 705 return ShellObjectCreatorInit<CNetConnectionManager>(
riid,
ppv);
BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO devinfo, DWORD index, PSP_DEVINFO_DATA info)
virtual HRESULT WINAPI EnumConnections(NETCONMGR_ENUM_FLAGS Flags, IEnumNetConnection **ppEnum)
BOOL GetAdapterIndexFromNetCfgInstanceId(PIP_ADAPTER_INFO pAdapterInfo, LPWSTR szNetCfg, PDWORD pIndex)
virtual HRESULT WINAPI Reset()
#define HRESULT_FROM_WIN32(x)
HRESULT EnumerateINetConnections()
VOID WINAPI CoTaskMemFree(LPVOID ptr)
BOOL FindNetworkAdapter(HDEVINFO hInfo, SP_DEVINFO_DATA *pDevInfo, LPWSTR pGuid)
HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID *class, LPCWSTR enumstr, HWND parent, DWORD flags)
#define ERROR_BUFFER_OVERFLOW
BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Property, PDWORD PropertyRegDataType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize)
BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction, HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
PINetConnectionItem m_pCurrent
#define DIF_PROPERTYCHANGE
HRESULT WINAPI Initialize(PINetConnectionItem pItem)
#define IID_PPV_ARG(Itype, ppType)
VOID WINAPI NcFreeNetconProperties(NETCON_PROPERTIES *pProps)
#define MIB_IF_OPER_STATUS_DISCONNECTED
PINetConnectionItem m_pHead
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
EXTERN_C const CLSID CLSID_ConnectionManager
char AdapterName[MAX_ADAPTER_NAME_LENGTH+4]
DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder)
#define MIB_IF_OPER_STATUS_NON_OPERATIONAL
LONG WINAPI RegCloseKey(HKEY hKey)
static BOOL IsUserAdmin(VOID)
#define NCCF_NOTIFY_DISCONNECTED
#define IF_TYPE_IEEE80211
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
SP_CLASSINSTALL_HEADER ClassInstallHeader
HRESULT WINAPI Rename(LPCWSTR pszwDuplicateName)
_Must_inspect_result_ _In_ ULONG Flags
#define MIB_IF_OPER_STATUS_UNREACHABLE
#define MIB_IF_OPER_STATUS_CONNECTING
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define DICS_FLAG_CONFIGSPECIFIC
HRESULT WINAPI Disconnect()
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
#define FAILED_UNEXPECTEDLY(hr)
VOID NormalizeOperStatus(MIB_IFROW *IfEntry, NETCON_PROPERTIES *Props)
HRESULT WINAPI GetUiObjectClassId(CLSID *pclsid)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define SetupDiGetClassDevs
virtual HRESULT WINAPI Clone(IEnumNetConnection **ppenum)
struct tagINetConnectionItem * Next
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
_Out_ PULONG _Out_ PULONG pIndex
#define IF_TYPE_ETHERNET_CSMACD
HRESULT WINAPI CNetConnectionManager_CreateInstance(REFIID riid, LPVOID *ppv)
HRESULT WINAPI CNetConnection_CreateInstance(PINetConnectionItem pItem, REFIID riid, LPVOID *ppv)
NETCON_MEDIATYPE MediaType
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow)
NETCON_MEDIATYPE MediaType
static ULONG WINAPI AddRef(IStream *iface)
#define MultiByteToWideChar
#define MIB_IF_OPER_STATUS_CONNECTED
struct _SP_CLASSINSTALL_HEADER SP_CLASSINSTALL_HEADER
DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
static const WCHAR szName[]
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
NETCON_PROPERTIES m_Props
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
virtual HRESULT WINAPI Next(ULONG celt, INetConnection **rgelt, ULONG *pceltFetched)
virtual HRESULT WINAPI Skip(ULONG celt)
#define SetupDiSetClassInstallParams
INTERNAL_IF_OPER_STATUS dwOperStatus
HRESULT WINAPI GetProperties(NETCON_PROPERTIES **ppProps)
HRESULT WINAPI Duplicate(LPCWSTR pszwDuplicateName, INetConnection **ppCon)
#define MIB_IF_OPER_STATUS_OPERATIONAL
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
struct _IP_ADAPTER_INFO * Next
#define HKEY_LOCAL_MACHINE
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
#define ERROR_INSUFFICIENT_BUFFER