13#define IP_STRING_MIN_LENGTH 8
14#define IP_STRING_MAX_LENGTH 16
185 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
205 pAdapter =
This->pAdapterListHead;
211 pAdapter = pAdapter->
pNext;
246 if (pszIpAddress ==
NULL)
253 wcscpy(pszIpAddress,
L"0.0.0.0");
274 *ppszIpAddress = pszIpAddress;
309 if (pszSubnetMask ==
NULL)
316 wcscpy(pszSubnetMask,
L"0.0.0.0");
337 *ppszSubnetMask = pszSubnetMask;
360 if (ppszParameters ==
NULL)
363 *ppszParameters =
NULL;
374 TRACE(
"Gateway count: %lu\n", dwCount);
380 if (pszDefGateway ==
NULL)
405 TRACE(
"DefaultGateway %S\n", pszDefGateway);
411 if (pszGatewayMetric ==
NULL)
423 if (
pString != pszGatewayMetric)
436 TRACE(
"Gateway Metric %S\n", pszGatewayMetric);
447 TRACE(
"DNS count: %lu\n", dwCount);
452 if (pszNameServers ==
NULL)
477 TRACE(
"Name Servers %S\n", pszNameServers);
480 nLength =
_scwprintf(
L"DefGw=%s;GwMetric=%s;IfMetric=%lu;DNS=%s;DynamicUpdate=%lu;NameRegistration=%lu;",
481 pszDefGateway ? pszDefGateway :
L"",
482 pszGatewayMetric ? pszGatewayMetric :
L"",
484 pszNameServers ? pszNameServers :
L"",
497 if (pszParameters ==
NULL)
504 L"DefGw=%s;GwMetric=%s;IfMetric=%lu;DNS=%s;DynamicUpdate=%lu;NameRegistration=%lu;",
505 pszDefGateway ? pszDefGateway :
L"",
506 pszGatewayMetric ? pszGatewayMetric :
L"",
508 pszNameServers ? pszNameServers :
L"",
512 TRACE(
"Parameters %S\n", pszParameters);
514 *ppszParameters = pszParameters;
520 if (pszGatewayMetric)
539 TRACE(
"ExtractParameterValue(%S, %S)\n", pszParameters, pszParameter);
541 pToken =
wcsstr(pszParameters, pszParameter);
598 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
602 if (pPort->MaxNum == 65536)
618 if (Num > pPort->MaxNum || Num == 0)
620 if (pPort->MaxNum == 65536)
630 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
639 li.pszText = szBuffer;
718 for(iIndex = 0; iIndex < iCount; iIndex++)
723 li.pszText = szBuffer;
724 li.cchTextMax =
sizeof(szBuffer) /
sizeof(
WCHAR);
747 Port.MaxNum = MaxItem;
748 Port.hDlgCtrl = hDlgCtrl;
869 pContext->pTcpIpSettings->EnableSecurityFilters =
TRUE;
876 pContext->pTcpIpSettings->EnableSecurityFilters =
FALSE;
877 if (pContext->pCurrentAdapter->szTCPAllowedPorts)
880 pContext->pCurrentAdapter->szTCPAllowedPorts =
NULL;
881 pContext->pCurrentAdapter->TCPSize = 0;
883 if (pContext->pCurrentAdapter->szUDPAllowedPorts)
886 pContext->pCurrentAdapter->szUDPAllowedPorts =
NULL;
887 pContext->pCurrentAdapter->UDPSize = 0;
889 if (pContext->pCurrentAdapter->szRawIPAllowedProtocols)
891 CoTaskMemFree(pContext->pCurrentAdapter->szRawIPAllowedProtocols);
892 pContext->pCurrentAdapter->szRawIPAllowedProtocols =
NULL;
893 pContext->pCurrentAdapter->RawIPSize = 0;
966 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
973 szText[(
sizeof(szText)/
sizeof(
WCHAR))-1] =
L'\0';
1020 WCHAR szBuffer[200];
1029 lc.
fmt = LVCFMT_FIXED_WIDTH;
1052 li.iItem = itemCount;
1054 dwIpAddr =
pAddr->IpAddress;
1058 li.pszText = szBuffer;
1064 dwIpAddr =
pAddr->u.SubnetMask;
1070 if (
pAddr->u.Metric)
1078 li.pszText = szBuffer;
1093 WCHAR szBuffer[100];
1099 if (
This->pCurrentAdapter->NewDhcpEnabled)
1105 li.pszText = szBuffer;
1128 if (
This->pCurrentAdapter->NewMetric)
1166 if (pGwSettings->
bAdd)
1170 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1180 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1243 if (!pGwSettings->
bAdd)
1278 li.pszText = pGwSettings->
szIP;
1283 li.pszText = szBuffer;
1327 if (pIpSettings->
bAdd)
1331 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1340 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1384 else if (!pIpSettings->
bAdd)
1424 WCHAR szBuffer[100];
1432 if (!pSettings->
bAdd)
1437 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1447 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1466 if (pSettings->Suffix)
1473 pSettings->Suffix =
NULL;
1481 pSettings->Suffix =
NULL;
1498 UINT iItemCount, iIndex;
1504 for (iIndex = 0; iIndex < iItemCount; iIndex++)
1528 li.pszText = pIpSettings->
szIP;
1577 dwIpAddr |= (Val <<
Index * 8);
1582 dwIpAddr |=
_wtoi(pLast);
1625 li.pszText = szBuffer;
1627 li.iSubItem = SubIndex;
1650 for(iIndex = 0; iIndex < iCount; iIndex++)
1659 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1664 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1674 This->pCurrentAdapter->NewIp =
pCur;
1676 This->pCurrentAdapter->NewGw =
pCur;
1701 WCHAR szBuffer[200];
1728 (!
This->pCurrentAdapter->NewDhcpEnabled);
1754 if ((
val < 1) || (
val > 9999))
1766 This->pCurrentAdapter->NewGw =
NULL;
1768 This->pCurrentAdapter->NewIp =
NULL;
1773 This->pCurrentAdapter->NewMetric = 0;
1799 li.pszText = Ip.szIP;
1805 li.pszText = Ip.szMask;
1829 li.pszText = Ip.szIP;
1831 li.pszText = Ip.szMask;
1852 li.pszText =
Gw.szIP;
1860 li.pszText = szBuffer;
1867 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1869 li.pszText = szBuffer;
1896 li.pszText =
Gw.szIP;
1902 li.pszText = szBuffer;
1909 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1911 li.pszText = szBuffer;
1939 WCHAR szBuffer[100];
1948 if (!pSettings->
bAdd)
1952 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1962 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
1980 if (pSettings->
bAdd)
1985 if (!pSettings->
bAdd)
2016 WCHAR szBuffer[200];
2025 dwIpAddr =
pAddr->IpAddress;
2034 if (
This->pCurrentAdapter->NewRegisterAdapterName)
2039 if (
This->pCurrentAdapter->NewRegistrationEnabled)
2042 if (
This->pCurrentAdapter->szDomain[0])
2045 if (
This->pTcpIpSettings->UseDomainNameDevolution)
2048 if (!
This->pTcpIpSettings->szSearchList || (
wcslen(
This->pTcpIpSettings->szSearchList) == 0))
2056 pList =
This->pTcpIpSettings->szSearchList;
2097 if (lResult < lCount -1)
2122 WCHAR szBuffer[100];
2150 if (lResult + 1 < lCount)
2164 LPWSTR pszSearchList, pItem;
2167 if (!iCount || iCount ==
LB_ERR)
2172 for (iIndex = 0; iIndex < iCount; iIndex++)
2185 pItem = pszSearchList;
2186 for (iIndex = 0; iIndex < iCount; iIndex++)
2196 if (iIndex != iCount -1)
2203 return pszSearchList;
2216 This->pCurrentAdapter->NewNs =
NULL;
2219 if (!iCount || iCount ==
LB_ERR)
2225 for(iIndex = 0; iIndex < iCount; iIndex++)
2237 This->pCurrentAdapter->NewNs =
pCur;
2261 WCHAR szSuffix[100];
2262 WCHAR szFormat[200];
2263 WCHAR szBuffer[300];
2289 szSuffix[(
sizeof(szSuffix)/
sizeof(
WCHAR))-1] =
L'\0';
2294 szFormat[(
sizeof(szFormat)/
sizeof(
WCHAR))-1] =
L'\0';
2295 _swprintf(szBuffer, szFormat, szSuffix);
2297 szFormat[(
sizeof(szFormat)/
sizeof(
WCHAR))-1] =
L'\0';
2299 szFormat[0] =
L'\0';
2317 This->pTcpIpSettings->szSearchList =
NULL;
2319 This->pTcpIpSettings->UseDomainNameDevolution =
TRUE;
2321 This->pTcpIpSettings->UseDomainNameDevolution =
FALSE;
2326 This->pTcpIpSettings->szSearchList =
NULL;
2327 This->pTcpIpSettings->UseDomainNameDevolution =
FALSE;
2333 This->pCurrentAdapter->NewRegisterAdapterName =
TRUE;
2335 This->pCurrentAdapter->NewRegistrationEnabled =
TRUE;
2337 This->pCurrentAdapter->NewRegistrationEnabled =
FALSE;
2341 This->pCurrentAdapter->NewRegisterAdapterName =
FALSE;
2342 This->pCurrentAdapter->NewRegistrationEnabled =
FALSE;
2501 Suffix.
Suffix[lLength] =
L'\0';
2548 WCHAR szBuffer[100];
2556 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
2558 szBuffer[0] =
L'\0';
2564 pinfo.u3.
phpage = hppages;
2623 This->pCurrentAdapter->AltConfig.IpAddress = dwAddr;
2626 This->pCurrentAdapter->AltConfig.SubnetMask = dwAddr;
2629 This->pCurrentAdapter->AltConfig.DefaultGateway = dwAddr;
2632 This->pCurrentAdapter->AltConfig.DnsServer1 = dwAddr;
2635 This->pCurrentAdapter->AltConfig.DnsServer2 = dwAddr;
2677 if (
This->pCurrentAdapter->AltConfig.IpAddress == 0)
2691 if (
This->pCurrentAdapter->AltConfig.IpAddress)
2695 if (
This->pCurrentAdapter->AltConfig.SubnetMask)
2699 if (
This->pCurrentAdapter->AltConfig.DefaultGateway)
2703 if (
This->pCurrentAdapter->AltConfig.DnsServer1)
2707 if (
This->pCurrentAdapter->AltConfig.DnsServer2)
2830 This->pCurrentAdapter->NewDhcpEnabled =
FALSE;
2841 if (!
This->pCurrentAdapter->NewIp)
2844 if (!
This->pCurrentAdapter->NewIp)
2848 This->pCurrentAdapter->NewIp->IpAddress = dwIpAddr;
2872 This->pCurrentAdapter->NewIp->u.SubnetMask = dwIpAddr;
2876 if (!
This->pCurrentAdapter->NewGw)
2879 if (!
This->pCurrentAdapter->NewGw)
2885 This->pCurrentAdapter->NewGw->IpAddress = dwIpAddr;
2890 This->pCurrentAdapter->NewDhcpEnabled =
TRUE;
2893 if (
This->pCurrentAdapter->NewIp)
2895 IP_ADDR * pNextIp =
This->pCurrentAdapter->NewIp->Next;
2897 This->pCurrentAdapter->NewIp = pNextIp;
2901 if (
This->pCurrentAdapter->NewGw)
2903 IP_ADDR * pNextGw =
This->pCurrentAdapter->NewGw->Next;
2905 This->pCurrentAdapter->NewGw = pNextGw;
2911 This->pCurrentAdapter->DnsDhcpEnabled =
FALSE;
2916 if (!
This->pCurrentAdapter->NewNs)
2919 if (!
This->pCurrentAdapter->NewNs)
2923 This->pCurrentAdapter->NewNs->IpAddress = dwIpAddr;
2925 else if (
This->pCurrentAdapter->NewNs)
2927 IP_ADDR *pTemp =
This->pCurrentAdapter->NewNs->Next;
2930 This->pCurrentAdapter->NewNs = pTemp;
2936 if (!
This->pCurrentAdapter->NewNs || bSkip)
2938 if (!
This->pCurrentAdapter->NewNs)
2941 if (!
This->pCurrentAdapter->NewNs)
2945 This->pCurrentAdapter->NewNs->IpAddress = dwIpAddr;
2947 else if (!
This->pCurrentAdapter->NewNs->Next)
2950 if (!
This->pCurrentAdapter->NewNs->Next)
2953 This->pCurrentAdapter->NewNs->Next->IpAddress = dwIpAddr;
2957 This->pCurrentAdapter->NewNs->Next->IpAddress = dwIpAddr;
2962 if (
This->pCurrentAdapter->NewNs &&
This->pCurrentAdapter->NewNs->Next)
2964 if (
This->pCurrentAdapter->NewNs->Next->Next)
2966 IP_ADDR *pTemp =
This->pCurrentAdapter->NewNs->Next->Next;
2968 This->pCurrentAdapter->NewNs->Next = pTemp;
2973 This->pCurrentAdapter->NewNs->Next =
NULL;
2980 This->pCurrentAdapter->DnsDhcpEnabled =
TRUE;
2983 if (
This->pCurrentAdapter->NewNs)
2985 IP_ADDR * pNextNs =
This->pCurrentAdapter->NewNs->Next;
2987 This->pCurrentAdapter->NewNs = pNextNs;
3027 if (
This->pCurrentAdapter->NewDhcpEnabled)
3039 if (
This->pCurrentAdapter->NewIp)
3047 if (
This->pCurrentAdapter->NewGw &&
This->pCurrentAdapter->NewGw->IpAddress)
3054 if (
This->pCurrentAdapter->DnsDhcpEnabled)
3065 if (
This->pCurrentAdapter->NewNs)
3068 if (
This->pCurrentAdapter->NewNs->Next)
3108 if (
This->pCurrentAdapter)
3214 if (
This->pTcpIpSettings)
3216 if (
This->pTcpIpSettings->szSearchList)
3222 while (
This->pAdapterListHead)
3224 pAdapter =
This->pAdapterListHead;
3227 while (pAdapter->
NewIp)
3231 pAdapter->
NewIp = NextIp;
3234 while (pAdapter->
OldIp)
3238 pAdapter->
OldIp = NextIp;
3242 while (pAdapter->
NewGw)
3246 pAdapter->
NewGw = NextIp;
3249 while (pAdapter->
OldGw)
3253 pAdapter->
OldGw = NextIp;
3257 while (pAdapter->
NewNs)
3261 pAdapter->
NewNs = NextIp;
3264 while (pAdapter->
OldNs)
3268 pAdapter->
OldNs = NextIp;
3281 This->pAdapterListHead = pAdapter->
pNext;
3297 pNew = pAdapter->
NewIp;
3298 pOld = pAdapter->
OldIp;
3299 while (pNew && pOld)
3312 if (Changed ==
FALSE)
3314 if (((pNew ==
NULL) && (pOld !=
NULL)) ||
3315 ((pNew !=
NULL) && (pOld ==
NULL)))
3330 pNew = pAdapter->
NewGw;
3331 pOld = pAdapter->
OldGw;
3332 while (pNew && pOld)
3345 if (Changed ==
FALSE)
3347 if (((pNew ==
NULL) && (pOld !=
NULL)) ||
3348 ((pNew !=
NULL) && (pOld ==
NULL)))
3363 pNew = pAdapter->
NewNs;
3364 pOld = pAdapter->
OldNs;
3365 while (pNew && pOld)
3377 if (Changed ==
FALSE)
3379 if (((pNew ==
NULL) && (pOld !=
NULL)) ||
3380 ((pNew !=
NULL) && (pOld ==
NULL)))
3394 INetCfgComponentPropertyUi *iface,
3398 TRACE(
"INetCfgComponentPropertyUi_fnQueryInterface()\n");
3406 INetCfgComponentPropertyUi *iface)
3408 TRACE(
"INetCfgComponentPropertyUi_fnAddRef()\n");
3416 INetCfgComponentPropertyUi *iface)
3418 TRACE(
"INetCfgComponentPropertyUi_fnRelease()\n");
3426 INetCfgComponentPropertyUi * iface,
3429 TRACE(
"INetCfgComponentPropertyUi_fnQueryPropertyUi()\n");
3436 INetCfgComponentPropertyUi * iface,
3439 TRACE(
"INetCfgComponentPropertyUi_fnSetContext()\n");
3440 INetLanConnectionUiInfo * pLanInfo;
3442 LPOLESTR pAdapterName =
NULL;
3462 pAdapter =
This->pAdapterListHead;
3467 This->pCurrentAdapter = pAdapter;
3470 pAdapter = pAdapter->
pNext;
3556 This->pTcpIpSettings = pSettings;
3571 PWSTR pszBuffer1 =
NULL, pszBuffer2 =
NULL, pStart1, pStart2, pEnd1, pEnd2;
3574 IP_ADDR *pNewAddrEntry, *pOldAddrEntry, *pNewLast =
NULL, *pOldLast =
NULL;
3578 TRACE(
"LoadAddressSettings()\n");
3586 if (pszBuffer1 ==
NULL)
3604 if (pszBuffer2 ==
NULL)
3616 pStart1 = pszBuffer1;
3617 pStart2 = pszBuffer2;
3620 TRACE(
"Start1: %S\n", pStart1);
3621 TRACE(
"Start2: %S\n", pStart2);
3625 ERR(
"RtlIpv4StringToAddressW Status 0x%08lx\n",
Status);
3635 ERR(
"RtlIpv4StringToAddressW Status 0x%08lx\n",
Status);
3650 pAdapter->
NewIp = pNewAddrEntry;
3652 pNewLast->
Next = pNewAddrEntry;
3654 pNewLast = pNewAddrEntry;
3665 pAdapter->
OldIp = pOldAddrEntry;
3667 pOldLast->
Next = pOldAddrEntry;
3669 pOldLast = pOldAddrEntry;
3672 pStart1 = pEnd1 + 1;
3673 pStart2 = pEnd2 + 1;
3695 PWSTR pszBuffer1 =
NULL, pszBuffer2 =
NULL, pStart1, pStart2, pEnd1, pEnd2;
3698 IP_ADDR *pNewAddrEntry, *pOldAddrEntry, *pNewLast =
NULL, *pOldLast =
NULL;
3702 TRACE(
"LoadGatewaySettings()\n");
3710 if (pszBuffer1 ==
NULL)
3728 if (pszBuffer2 ==
NULL)
3740 pStart1 = pszBuffer1;
3741 pStart2 = pszBuffer2;
3744 TRACE(
"Start1: %S\n", pStart1);
3745 TRACE(
"Start2: %S\n", pStart2);
3749 ERR(
"RtlIpv4StringToAddressW Status 0x%08lx\n",
Status);
3756 dwMetric =
wcstoul(pStart2, &pEnd2, 10);
3757 if (dwMetric > 9999)
3760 TRACE(
"Metric: %lu\n", dwMetric);
3770 pAdapter->
NewGw = pNewAddrEntry;
3772 pNewLast->
Next = pNewAddrEntry;
3774 pNewLast = pNewAddrEntry;
3785 pAdapter->
OldGw = pOldAddrEntry;
3787 pOldLast->
Next = pOldAddrEntry;
3789 pOldLast = pOldAddrEntry;
3792 pStart1 = pEnd1 + 1;
3793 pStart2 = pEnd2 + 1;
3818 IP_ADDR *pNewAddrEntry, *pOldAddrEntry, *pNewLast =
NULL, *pOldLast =
NULL;
3828 if (pszBuffer ==
NULL)
3846 ERR(
"RtlIpv4StringToAddressW Status 0x%08lx\n",
Status);
3860 pAdapter->
NewNs = pNewAddrEntry;
3862 pNewLast->
Next = pNewAddrEntry;
3864 pNewLast = pNewAddrEntry;
3874 pAdapter->
OldNs = pOldAddrEntry;
3876 pOldLast->
Next = pOldAddrEntry;
3878 pOldLast = pOldAddrEntry;
3897 LPOLESTR pAdapterName,
3901 HKEY hAdapterKey =
NULL, hConfigKey;
3902 WCHAR szKeyName[200];
3906 TRACE(
"LoadAdapterSettings()\n");
3914 _swprintf(szKeyName,
L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\%s", pAdapterName);
3968 if (
This->pAdapterListHead ==
NULL)
3970 This->pAdapterListHead = pAdapter;
3971 This->pAdapterListTail = pAdapter;
3975 This->pAdapterListTail->pNext = pAdapter;
3976 pAdapter->
pPrev =
This->pAdapterListTail;
3977 This->pAdapterListTail = pAdapter;
3985 _swprintf(szKeyName,
L"SYSTEM\\CurrentControlSet\\Services\\DHCP\\Configurations\\Alternate_%s", pAdapterName);
4011 if (
This->pAdapterListHead)
4030 pCurrentAdapter = pInfo;
4031 while (pCurrentAdapter)
4033 szBuffer[0] =
L'\0';
4036 szBuffer[(
sizeof(szBuffer)/
sizeof(
WCHAR))-1] =
L'\0';
4039 TRACE(
"Adapter: %S\n", szBuffer);
4045 pCurrentAdapter = pCurrentAdapter->
Next;
4061 INetCfgComponentPropertyUi * iface,
4063 BYTE **pahpspPrivate,
4068 TRACE(
"INetCfgComponentPropertyUi_fnMergePropPages()\n");
4073 if (
This->pCurrentAdapter->NewDhcpEnabled)
4099 *pahpspPrivate = (
BYTE*)hppages;
4100 *pcPages = NumPages;
4108 INetCfgComponentPropertyUi * iface,
4111 TRACE(
"INetCfgComponentPropertyUi_fnValidateProperties()\n");
4118 INetCfgComponentPropertyUi * iface)
4120 TRACE(
"INetCfgComponentPropertyUi_fnApplyProperties()\n");
4127 INetCfgComponentPropertyUi * iface)
4129 TRACE(
"INetCfgComponentPropertyUi_fnCancelProperties()\n");
4153 INetCfgComponentControl *iface,
4157 TRACE(
"INetCfgComponentControl_fnQueryInterface()\n");
4171 *ppvObj = (
LPVOID*)&
This->lpVtblCompPropertyUi;
4183 *ppvObj = (
LPVOID*)&
This->lpVtblTcpipProperties;
4194 INetCfgComponentControl *iface)
4196 TRACE(
"INetCfgComponentControl_fnAddRef()\n");
4206 INetCfgComponentControl *iface)
4208 TRACE(
"INetCfgComponentControl_fnRelease()\n");
4223 INetCfgComponentControl *iface,
4224 INetCfgComponent *pIComp,
4228 TRACE(
"INetCfgComponentControl_fnInitialize()\n");
4232 This->pNCfg = pINetCfg;
4233 This->pNComp = pIComp;
4238 ERR(
"INetCfgComponentControl_fnInitialize failed\n");
4242 TRACE(
"INetCfgComponentControl_fnInitialize success\n");
4277 pTemp = pTemp->
Next;
4317 pStr +=
wcslen(pStr) + 1;
4319 pTemp = pTemp->
Next;
4330 INetCfgComponentControl * iface)
4333 WCHAR szBuffer[200];
4338 TRACE(
"INetCfgComponentControl_fnApplyRegistryChanges()\n");
4342 if (
This->pTcpIpSettings)
4356 pAdapter =
This->pAdapterListHead;
4359 _swprintf(szBuffer,
L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\%s", pAdapter->
AdapterName);
4409 if (pAdapter->
NewGw)
4434 if (!pAdapter->
NewNs)
4451 if (pCurrentConfig->pFilter)
4453 if (pCurrentConfig->pFilter->szTCPAllowedPorts)
4456 (
LPBYTE)pCurrentConfig->pFilter->szTCPAllowedPorts,
4457 pCurrentConfig->pFilter->TCPSize);
4459 if (pCurrentConfig->pFilter->szUDPAllowedPorts)
4462 (
LPBYTE)pCurrentConfig->pFilter->szUDPAllowedPorts,
4463 pCurrentConfig->pFilter->UDPSize);
4465 if (pCurrentConfig->pFilter->szRawIPAllowedProtocols)
4468 (
LPBYTE)pCurrentConfig->pFilter->szRawIPAllowedProtocols,
4469 pCurrentConfig->pFilter->IPSize);
4477 if (pCurrentConfig->AltConfig.IpAddress == 0)
4490 _swprintf(pStr,
L"Alternate_%s", pAdapterName);
4495 _swprintf(szBuffer,
L"SYSTEM\\CurrentControlSet\\Services\\DHCP\\Configurations\\Alternate_%s", pAdapterName);
4508 pAdapter = pAdapter->
pNext;
4517 INetCfgComponentControl *iface,
4518 INetCfgPnpReconfigCallback *pICallback)
4521 DWORD DhcpApiVersion;
4525 TRACE(
"INetCfgComponentControl_fnApplyPnpChanges()\n");
4529 pAdapter =
This->pAdapterListHead;
4586 if (pIpForwardTable)
4603 if (pAdapter->
NewGw)
4636 SC_HANDLE hManager, hService;
4639 TRACE(
"Notify the dnscache service!\n");
4655 pAdapter = pAdapter->
pNext;
4664 INetCfgComponentControl * iface)
4666 TRACE(
"INetCfgComponentControl_fnCancelChanges()\n");
4689 INetCfgComponentSetup *iface,
4693 TRACE(
"INetCfgComponentSetup_fnQueryInterface()\n");
4701 INetCfgComponentSetup *iface)
4703 TRACE(
"INetCfgComponentSetup_fnAddRef()\n");
4711 INetCfgComponentSetup *iface)
4713 TRACE(
"INetCfgComponentSetup_fnRelease()\n");
4721 INetCfgComponentSetup *iface,
4724 TRACE(
"INetCfgComponentSetup_fnInstall()\n");
4731 INetCfgComponentSetup *iface,
4733 DWORD dwUpgradeFromBuildNo)
4735 TRACE(
"INetCfgComponentSetup_fnUpgrade()\n");
4742 INetCfgComponentSetup *iface,
4746 TRACE(
"INetCfgComponentSetup_fnReadAnswerFile()\n");
4753 INetCfgComponentSetup *iface)
4755 TRACE(
"INetCfgComponentSetup_fnRemoving()\n");
4778 ITcpipProperties *iface,
4782 TRACE(
"ITcpipProperties_fnQueryInterface()\n");
4790 ITcpipProperties *iface)
4792 TRACE(
"ITcpipProperties_fnAddRef()\n");
4800 ITcpipProperties *iface)
4802 TRACE(
"ITcpipProperties_fnRelease()\n");
4810 ITcpipProperties *iface,
4827 if (pAdapter ==
NULL)
4836 TRACE(
"IpAddress string: %S\n", pszIpAddress);
4843 TRACE(
"SubnetMask string: %S\n", pszSubnetMask);
4850 TRACE(
"Parameters string: %S\n", pszParameters);
4858 if (pProperties ==
NULL)
4868 pPtr = (
PWSTR)(pProperties + 1);
4872 pPtr += (
wcslen(pszIpAddress) + 1);
4876 pPtr += (
wcslen(pszSubnetMask) + 1);
4881 *ppProperties = pProperties;
4899 ITcpipProperties *iface,
4904 IN_ADDR IpAddress, SubnetMask, Gateway, Dns;
4915 ERR(
"pProperties->dwDhcp %lu\n", pProperties->
dwDhcp);
4924 if (pAdapter ==
NULL)
4947 TRACE(
"IP Address: %u.%u.%u.%u\n",
4960 TRACE(
"Subnet Mask: %u.%u.%u.%u\n",
4963 TRACE(
"pAdapter->NewIp %p\n", pAdapter->
NewIp);
4983 if (pszGateway !=
NULL && pszMetric !=
NULL)
4985 TRACE(
"Gateway: %S\n", pszGateway);
4986 TRACE(
"Metric: %S\n", pszMetric);
4987 if ((
wcslen(pszGateway) == 0) && (
wcslen(pszMetric) == 0))
4989 FIXME(
"Delete Gateway and Metric!\n");
5003 TRACE(
"Gateway: %u.%u.%u.%u\n",
5006 TRACE(
"pAdapter->NewGw %p\n", pAdapter->
NewGw);
5022 if (dwMetric > 9999)
5031 TRACE(
"DNS: %S\n", pszDns);
5034 FIXME(
"Delete DNS!\n");
5048 TRACE(
"Dns: %u.%u.%u.%u\n",
5051 TRACE(
"pAdapter->NewNs %p\n", pAdapter->
NewNs);
#define InterlockedIncrement
#define InterlockedDecrement
static void AddButton(HWND hwndToolBar, int nImage, int nCommand)
static SERVICE_STATUS ServiceStatus
#define RegCloseKey(hKey)
#define ERROR_INSUFFICIENT_BUFFER
DWORD APIENTRY DhcpCApiInitialize(_Out_ LPDWORD Version)
DWORD APIENTRY DhcpStaticRefreshParams(DWORD AdapterIndex, DWORD Address, DWORD Netmask)
VOID APIENTRY DhcpCApiCleanup(VOID)
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)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HRESULT WINAPI StringFromCLSID(REFCLSID clsid, LPOLESTR *str)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
void WINAPI CoTaskMemFree(void *ptr)
HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage)
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hPropPage)
#define GetProcAddress(x, y)
#define MultiByteToWideChar
_ACRTIMP int __cdecl _scwprintf(const wchar_t *,...)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP int __cdecl _wtoi(const wchar_t *)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP wchar_t *__cdecl wcsstr(const wchar_t *, const wchar_t *)
HINSTANCE netcfgx_hInstance
#define IDS_TCPFILTERDESC
#define IDS_DISABLE_FILTER
#define IDD_TCPIP_ADVOPT_DLG
#define IDC_DNSSUFFIXLIST
#define IDD_TCPIPADDIP_DLG
#define IDC_DNSSUFFIXDOWN
#define IDD_TCPIP_ALTCF_DLG
#define IDD_TCPIP_FILTER_DLG
#define IDD_TCPIP_ADVIP_DLG
#define IDS_DOMAIN_SUFFIX
#define IDC_UDP_ALLOW_ALL
#define IDC_TCP_ALLOW_ALL
#define IDS_NO_SUBMASK_SET
#define IDD_TCPIP_BASIC_DLG
#define IDD_TCPIPSUFFIX_DLG
#define IDD_TCPIP_ADVDNS_DLG
#define IDC_ALTSUBNETMASK
#define IDS_NO_IPADDR_SET
#define IDC_TOPPRIMSUFFIX
#define IDD_TCPIP_PORT_DLG
#define IDC_ALTDEFGATEWAY
PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER pAddr
GLuint GLsizei GLsizei * length
DWORD WINAPI AddIPAddress(IPAddr Address, IPMask Netmask, DWORD IfIndex, PULONG NteContext, PULONG NteInstance)
DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable, PULONG pdwSize, BOOL bOrder)
DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute)
DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute)
DWORD WINAPI DeleteIPAddress(ULONG NTEContext)
struct _MIB_IPFORWARDTABLE * PMIB_IPFORWARDTABLE
#define RtlEqualMemory(dst, src, len)
TCHAR szTitle[MAX_LOADSTRING]
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define _swprintf(buf, format,...)
struct _PSP * HPROPSHEETPAGE
NTSYSAPI PWSTR NTAPI RtlIpv4AddressToStringW(_In_ const struct in_addr *Addr, _Out_writes_(16) PWCHAR S)
NTSYSAPI NTSTATUS NTAPI RtlIpv4StringToAddressW(_In_ PCWSTR String, _In_ BOOLEAN Strict, _Out_ PCWSTR *Terminator, _Out_ struct in_addr *Addr)
EXTERN_C const IID IID_INetCfgComponentPropertyUi
EXTERN_C const IID IID_INetCfgComponentControl
EXTERN_C const IID IID_INetLanConnectionUiInfo
#define INetCfgComponentControl_QueryInterface(p, a, b)
#define INetCfgComponentControl_Release(p)
EXTERN_C const IID IID_INetCfgComponentSetup
#define INetCfgComponentControl_AddRef(p)
#define INetLanConnectionUiInfo_GetDeviceGuid(p, a)
struct _TCPIP_PROPERTIES TCPIP_PROPERTIES
EXTERN_C const IID IID_ITcpipProperties
_In_ ULONG _In_ ULONG _In_ ULONG Length
static const WCHAR szName[]
#define PropSheet_Changed(d, w)
struct _PROPSHEETPAGEW PROPSHEETPAGEW
struct _PROPSHEETHEADERW PROPSHEETHEADERW
struct _PSHNOTIFY * LPPSHNOTIFY
#define FOURTH_IPADDRESS(x)
struct tagNMIPADDRESS * LPNMIPADDRESS
#define MAKEIPADDRESS(b1, b2, b3, b4)
#define FIRST_IPADDRESS(x)
#define MAKEIPRANGE(low, high)
#define ListView_GetItemCount(hwnd)
#define SECOND_IPADDRESS(x)
struct tagNMLISTVIEW * LPNMLISTVIEW
#define LVM_INSERTCOLUMNW
#define THIRD_IPADDRESS(x)
#define ListView_DeleteItem(hwnd, i)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define SERVICE_CONTROL_PARAMCHANGE
#define SC_MANAGER_CONNECT
#define SERVICE_PAUSE_CONTINUE
SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR lpMachineName, LPCWSTR lpDatabaseName, DWORD dwDesiredAccess)
BOOL WINAPI ControlService(SC_HANDLE hService, DWORD dwControl, LPSERVICE_STATUS lpServiceStatus)
SC_HANDLE WINAPI OpenServiceW(SC_HANDLE hSCManager, LPCWSTR lpServiceName, DWORD dwDesiredAccess)
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
static __inline const char * wine_dbgstr_guid(const GUID *id)
AdapterSettings * pAdapterListHead
TcpipSettings * pTcpIpSettings
INetCfgComponent * pNComp
const ITcpipProperties * lpVtblTcpipProperties
AdapterSettings * pCurrentAdapter
const INetCfgComponentControl * lpVtbl
const INetCfgComponentSetup * lpVtblCompSetup
const INetCfgComponentPropertyUi * lpVtblCompPropertyUi
AdapterSettings * pAdapterListTail
DWORD UseDomainNameDevolution
DWORD EnableSecurityFilters
DWORD NewRegisterAdapterName
DWORD OldRegistrationEnabled
DWORD OldRegisterAdapterName
DWORD NewRegistrationEnabled
AlternateConfiguration AltConfig
LPWSTR szRawIPAllowedProtocols
struct _AdapterSettings * pNext
struct _AdapterSettings * pPrev
struct _IP_ADAPTER_INFO * Next
char AdapterName[MAX_ADAPTER_NAME_LENGTH+4]
IF_INDEX dwForwardIfIndex
MIB_IPFORWARDROW table[1]
struct _SINGLE_LIST_ENTRY * Next
struct in_addr::@1123::@1124 S_un_b
union in_addr::@1123 S_un
INT_PTR CALLBACK TcpipFilterSettingsDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
HPROPSHEETPAGE InitializePropertySheetPage(LPWSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle)
HRESULT WINAPI INetCfgComponentPropertyUi_fnCancelProperties(INetCfgComponentPropertyUi *iface)
HRESULT WINAPI ITcpipProperties_fnQueryInterface(ITcpipProperties *iface, REFIID iid, LPVOID *ppvObj)
struct tagIP_ADDR IP_ADDR
HRESULT WINAPI INetCfgComponentPropertyUi_fnMergePropPages(INetCfgComponentPropertyUi *iface, DWORD *pdwDefPages, BYTE **pahpspPrivate, UINT *pcPages, HWND hwndParent, LPCWSTR *pszStartPage)
#define IP_STRING_MAX_LENGTH
UINT GetIpAddressFromStringW(WCHAR *szBuffer)
static HRESULT BuildIpAddressString(AdapterSettings *pAdapter, LPWSTR *ppszIpAddress)
VOID DisplayError(UINT ResTxt, UINT ResTitle, UINT Type)
static BOOL NameServersChanged(AdapterSettings *pAdapter)
VOID InitializeTcpipAdvancedIpDlg(HWND hwndDlg, TcpipConfNotifyImpl *This)
HRESULT WINAPI INetCfgComponentControl_fnQueryInterface(INetCfgComponentControl *iface, REFIID iid, LPVOID *ppvObj)
HRESULT LoadAdapterSettings(TcpipConfNotifyImpl *This, LPOLESTR pAdapterName, IP_ADAPTER_INFO *pAdapterInfo)
VOID FreeIPAddr(IP_ADDR *pAddr)
LPWSTR LoadTcpFilterSettingsFromRegistry(HKEY hKey, LPCWSTR szName, LPDWORD Size)
VOID InsertIpAddressToListView(HWND hDlgCtrl, IP_ADDR *pAddr, BOOL bSubMask)
VOID StoreIPSettings(HWND hDlgCtrl, TcpipConfNotifyImpl *This, BOOL bSubmask)
VOID LaunchAdvancedTcpipSettings(HWND hwndDlg, TcpipConfNotifyImpl *This)
LPWSTR CreateFilterList(HWND hDlgCtrl, LPDWORD Size)
VOID DeleteItemFromList(HWND hDlgCtrl)
BOOL GetGWListEntry(HWND hDlgCtrl, INT Index, TcpipGwSettings *pGwSettings)
struct _AdapterSettings AdapterSettings
ULONG WINAPI ITcpipProperties_fnAddRef(ITcpipProperties *iface)
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
VOID AddAlternativeDialog(HWND hDlg, TcpipConfNotifyImpl *This)
HRESULT WINAPI INetCfgComponentPropertyUi_fnQueryPropertyUi(INetCfgComponentPropertyUi *iface, IUnknown *pUnkReserved)
static VOID DelItem(HWND hDlgCtrl)
static __inline LPTcpipConfNotifyImpl impl_from_ITcpipProperties(ITcpipProperties *iface)
HRESULT InitializeTcpipAltDlgCtrls(HWND hwndDlg, TcpipConfNotifyImpl *This)
ULONG WINAPI INetCfgComponentSetup_fnAddRef(INetCfgComponentSetup *iface)
UINT GetIpAddressFromStringA(char *sBuffer)
INT_PTR CALLBACK TcpipAdvancedDnsDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT LoadTcpipSettings(TcpipConfNotifyImpl *This)
static BOOL IpAddressesChanged(AdapterSettings *pAdapter)
static const ITcpipPropertiesVtbl vt_TcpipProperties
HRESULT WINAPI INetCfgComponentControl_fnCancelChanges(INetCfgComponentControl *iface)
HRESULT WINAPI INetCfgComponentSetup_fnInstall(INetCfgComponentSetup *iface, DWORD dwSetupFlags)
HRESULT WINAPI INetCfgComponentControl_fnInitialize(INetCfgComponentControl *iface, INetCfgComponent *pIComp, INetCfg *pINetCfg, BOOL fInstalling)
BOOL VerifyDNSSuffix(LPWSTR szName)
static HRESULT BuildParametersString(AdapterSettings *pAdapter, LPWSTR *ppszParameters)
VOID InsertColumnToListView(HWND hDlgCtrl, UINT ResId, UINT SubItem, UINT Size)
VOID FreeSettings(TcpipConfNotifyImpl *This)
HRESULT InitializeTcpipBasicDlgCtrls(HWND hwndDlg, TcpipConfNotifyImpl *This)
VOID MoveItem(HWND hDlgCtrl, INT pos)
HRESULT WINAPI INetCfgComponentControl_fnApplyPnpChanges(INetCfgComponentControl *iface, INetCfgPnpReconfigCallback *pICallback)
#define IP_STRING_MIN_LENGTH
static PWSTR ExtractParameterValue(PWSTR pszParameters, PWSTR pszParameter)
INT GetSelectedItem(HWND hDlgCtrl)
HRESULT WINAPI INetCfgComponentSetup_fnUpgrade(INetCfgComponentSetup *iface, DWORD dwSetupFlags, DWORD dwUpgradeFromBuildNo)
HRESULT WINAPI INetCfgComponentSetup_fnRemoving(INetCfgComponentSetup *iface)
ULONG WINAPI INetCfgComponentPropertyUi_fnAddRef(INetCfgComponentPropertyUi *iface)
INT_PTR CALLBACK TcpipFilterPortDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
DWORD(WINAPI * PDHCPFALLBACKREFRESHPARAMS)(PWSTR pAdapterName)
ULONG WINAPI INetCfgComponentSetup_fnRelease(INetCfgComponentSetup *iface)
BOOL GetListViewItem(HWND hDlgCtrl, UINT Index, UINT SubIndex, WCHAR *szBuffer, UINT BufferSize)
HRESULT WINAPI INetCfgComponentPropertyUi_fnApplyProperties(INetCfgComponentPropertyUi *iface)
HRESULT WINAPI INetCfgComponentPropertyUi_fnSetContext(INetCfgComponentPropertyUi *iface, IUnknown *pUnkReserved)
VOID RemoveItem(HWND hDlgCtrl)
static BOOL GatewaysChanged(AdapterSettings *pAdapter)
static LPWSTR CreateMultiSzString(IP_ADDR *pAddr, COPY_TYPE Type, LPDWORD Size, BOOL bComma)
INT_PTR CALLBACK TcpipAddSuffixDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR CALLBACK TcpipAdvancedOptDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR StoreTcpipBasicSettings(HWND hwndDlg, TcpipConfNotifyImpl *This, BOOL bApply)
HRESULT WINAPI INetCfgComponentPropertyUi_fnValidateProperties(INetCfgComponentPropertyUi *iface, HWND hwndDlg)
HRESULT WINAPI INetCfgComponentPropertyUi_fnQueryInterface(INetCfgComponentPropertyUi *iface, REFIID iid, LPVOID *ppvObj)
static HRESULT BuildSubnetMaskString(AdapterSettings *pAdapter, LPWSTR *ppszSubnetMask)
ULONG WINAPI INetCfgComponentPropertyUi_fnRelease(INetCfgComponentPropertyUi *iface)
HRESULT WINAPI INetCfgComponentSetup_fnReadAnswerFile(INetCfgComponentSetup *iface, LPCWSTR pszwAnswerFile, LPCWSTR pszwAnswerSections)
HRESULT LoadGatewaySettings(HKEY hAdapterKey, AdapterSettings *pAdapter)
static AdapterSettings * GetAdapterByGuid(TcpipConfNotifyImpl *This, GUID *pAdapterGuid)
static const INetCfgComponentSetupVtbl vt_NetCfgComponentSetup
static const INetCfgComponentControlVtbl vt_NetCfgComponentControl
VOID InitializeTcpipAdvancedDNSDlg(HWND hwndDlg, TcpipConfNotifyImpl *This)
HRESULT WINAPI ITcpipProperties_fnUnknown1(ITcpipProperties *iface, GUID *pAdapterName, PTCPIP_PROPERTIES *ppProperties)
INT_PTR CALLBACK TcpipAdvancedIpDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR StoreTcpipAlternateSettings(HWND hwndDlg, TcpipConfNotifyImpl *This, BOOL bApply)
VOID InitFilterListBox(LPWSTR pData, HWND hwndDlg, HWND hDlgCtrl, UINT AllowButton, UINT RestrictButton, UINT AddButton, UINT DelButton)
VOID StoreDNSSettings(HWND hDlgCtrl, TcpipConfNotifyImpl *This)
INT_PTR CALLBACK TcpipAltConfDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
VOID ToggleUpDown(HWND hwndDlg, HWND hDlgCtrl, UINT UpButton, UINT DownButton, UINT ModButton, UINT DelButton)
HRESULT WINAPI INetCfgComponentSetup_fnQueryInterface(INetCfgComponentSetup *iface, REFIID iid, LPVOID *ppvObj)
INT_PTR CALLBACK TcpipAddDNSDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
VOID InitializeTcpipAdvancedOptDlg(HWND hwndDlg, TcpipConfNotifyImpl *This)
HRESULT LoadNameServerSettings(HKEY hAdapterKey, AdapterSettings *pAdapter)
static const INetCfgComponentPropertyUiVtbl vt_NetCfgComponentPropertyUi
ULONG WINAPI INetCfgComponentControl_fnRelease(INetCfgComponentControl *iface)
static __inline LPTcpipConfNotifyImpl impl_from_INetCfgComponentSetup(INetCfgComponentSetup *iface)
HRESULT LoadAddressSetings(HKEY hAdapterKey, AdapterSettings *pAdapter)
INT_PTR CALLBACK TcpipAddIpDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI TcpipConfigNotify_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
ULONG WINAPI INetCfgComponentControl_fnAddRef(INetCfgComponentControl *iface)
HRESULT WINAPI INetCfgComponentControl_fnApplyRegistryChanges(INetCfgComponentControl *iface)
LPWSTR GetListViewEntries(HWND hDlgCtrl)
BOOL GetIPListEntry(HWND hDlgCtrl, INT Index, TcpipIpSettings *pIpSettings)
INT_PTR CALLBACK TcpipAdvGwDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI ITcpipProperties_fnUnknown2(ITcpipProperties *iface, GUID *pAdapterName, PTCPIP_PROPERTIES pProperties)
INT_PTR CALLBACK TcpipBasicDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static __inline LPTcpipConfNotifyImpl impl_from_INetCfgComponentPropertyUi(INetCfgComponentPropertyUi *iface)
struct TcpipConfNotifyImpl * LPTcpipConfNotifyImpl
ULONG WINAPI ITcpipProperties_fnRelease(ITcpipProperties *iface)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define FIELD_OFFSET(t, f)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
WINBASEAPI _In_ DWORD nLength
#define ERROR_BUFFER_OVERFLOW
#define HKEY_LOCAL_MACHINE
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetDlgItemInt(_In_ HWND, _In_ int, _In_ UINT, _In_ BOOL)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
#define MB_ICONINFORMATION
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
#define SendDlgItemMessage
LRESULT WINAPI SendDlgItemMessageA(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)