mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.9 KiB
104 lines
2.9 KiB
//
|
|
// T C P U T I L . H
|
|
//
|
|
// Header of utility functions
|
|
//
|
|
|
|
#pragma once
|
|
#include "netcfgx.h"
|
|
#include "tcpip.h"
|
|
#include "ipctrl.h"
|
|
|
|
inline BOOL FHrFailed(HRESULT hr)
|
|
{
|
|
return FAILED(hr);
|
|
}
|
|
|
|
#define CORg(hResult) \
|
|
do\
|
|
{\
|
|
hr = (hResult);\
|
|
if (FHrFailed(hr))\
|
|
{\
|
|
goto Error;\
|
|
}\
|
|
}\
|
|
while (FALSE)
|
|
|
|
HRESULT HrLoadSubkeysFromRegistry(const HKEY hkeyParam,
|
|
OUT VSTR * const pvstrAdapters);
|
|
|
|
HRESULT HrIsComponentInstalled(INetCfg * pnc,
|
|
const GUID& rguidClass,
|
|
PCWSTR szInfId,
|
|
OUT BOOL * const pfInstalled);
|
|
|
|
// Get the four numbers from an Ip Address
|
|
VOID GetNodeNum(PCWSTR szIpAddress, DWORD ardw[4]);
|
|
|
|
BOOL IsContiguousSubnet(PCWSTR pszSubnet);
|
|
|
|
VOID ReplaceFirstAddress(VSTR * pvstr, PCWSTR szIpAddress);
|
|
VOID ReplaceSecondAddress(VSTR * pvstr, PCWSTR szIpAddress);
|
|
|
|
BOOL GenerateSubnetMask(IpControl & ipAddress,
|
|
tstring * pstrSubnetMask);
|
|
|
|
BOOL FRegQueryBool(const HKEY hkey, PCWSTR szName, BOOL fDefaultValue);
|
|
|
|
VOID ResetLmhostsFile();
|
|
|
|
int IPAlertPrintf(HWND hwndParent, UINT ids,
|
|
int iCurrent, int iLow, int iHigh);
|
|
|
|
VOID IpCheckRange(LPNMIPADDRESS lpnmipa, HWND hWnd,
|
|
int iLow, int iHigh, BOOL fCheckLoopback = FALSE);
|
|
|
|
VOID SetButtons(HANDLES& h, const int nNumLimit = -1);
|
|
|
|
BOOL ListBoxRemoveAt(HWND hListBox, int idx, tstring * pstrRemovedItem);
|
|
BOOL ListBoxInsertAfter(HWND hListBox, int idx, PCWSTR szItem);
|
|
|
|
HRESULT HrRegRenameTree(HKEY hkeyRoot, PCWSTR szOldName, PCWSTR szNewName);
|
|
HRESULT HrRegCopyKeyTree(HKEY hkeyDest, HKEY hkeySrc );
|
|
|
|
BOOL fQueryFirstAddress(const VSTR & vstr, tstring * const pstr);
|
|
BOOL fQuerySecondAddress(const VSTR & vstr, tstring * const pstr);
|
|
|
|
BOOL FIsIpInRange(PCWSTR szIp);
|
|
|
|
VOID ShowContextHelp(HWND hDlg, UINT uCommand, const DWORD* pdwHelpIDs);
|
|
|
|
VOID AddInterfacesToAdapterInfo(
|
|
ADAPTER_INFO* pAdapter,
|
|
DWORD dwNumInterfaces);
|
|
|
|
HRESULT GetGuidArrayFromIfaceColWithCoTaskMemAlloc(
|
|
const IFACECOL& IfaceIds,
|
|
GUID** ppdw,
|
|
DWORD* pdwSize);
|
|
|
|
VOID GetInterfaceName(
|
|
PCWSTR pszAdapterName,
|
|
const GUID& guidIfaceId,
|
|
tstring* pstrIfaceName);
|
|
|
|
HRESULT RetrieveStringFromOptionList(PCWSTR pszOption,
|
|
PCWSTR szIdentifier,
|
|
tstring & str);
|
|
|
|
VOID ConstructOptionListString(ADAPTER_INFO* pAdapter,
|
|
tstring & strOptionList);
|
|
|
|
HRESULT HrParseOptionList(PCWSTR pszOption,
|
|
ADAPTER_INFO* pAdapter);
|
|
|
|
HRESULT HrGetPrimaryDnsDomain(tstring *pstr);
|
|
|
|
VOID WriteTcpSetupErrorLog(UINT nIdErrorFormat, ...);
|
|
|
|
DWORD IPStringToDword(LPCTSTR strIP);
|
|
|
|
void DwordToIPString(DWORD dwIP, tstring & strIP);
|
|
|
|
int SearchListViewItem(HWND hListView, int iSubItem, LPCWSTR psz);
|