//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997 - 2000 // // File: H N C U T I L . H // // Contents: Home Networking Configuration Utility Routines // // Notes: // // Author: jonburs 13 June 2000 // //---------------------------------------------------------------------------- #define HTONS(s) ((UCHAR)((s) >> 8) | ((UCHAR)(s) << 8)) #define HTONL(l) ((HTONS(l) << 16) | HTONS((l) >> 16)) #define NTOHS(s) HTONS(s) #define NTOHL(l) HTONL(l) BOOLEAN ApplicationProtocolExists( IWbemServices *piwsNamespace, BSTR bstrWQL, USHORT usOutgoingPort, UCHAR ucOutgoingIPProtocol ); HRESULT HrFromLastWin32Error(); HRESULT BuildAndString( LPWSTR *ppwsz, LPCWSTR pwszLeft, LPCWSTR pwszRight ); HRESULT BuildAssociatorsQueryBstr( BSTR *pBstr, LPCWSTR pwszObjectPath, LPCWSTR pwszAssocClass ); HRESULT BuildEqualsString( LPWSTR *ppwsz, LPCWSTR pwszLeft, LPCWSTR pwszRight ); HRESULT BuildEscapedQuotedEqualsString( LPWSTR *ppwsz, LPCWSTR pwszLeft, LPCWSTR pwszRight ); HRESULT BuildQuotedEqualsString( LPWSTR *ppwsz, LPCWSTR pwszLeft, LPCWSTR pwszRight ); HRESULT BuildReferencesQueryBstr( BSTR *pBstr, LPCWSTR pwszObjectPath, LPCWSTR pwszTargetClass ); HRESULT BuildSelectQueryBstr( BSTR *pBstr, LPCWSTR pwszProperties, LPCWSTR pwszFromClause, LPCWSTR pwszWhereClause ); BOOLEAN ConnectionIsBoundToTcp( PIP_INTERFACE_INFO pIpInfoTable, GUID *pConnectionGuid ); HRESULT ConvertResponseRangeArrayToInstanceSafearray( IWbemServices *piwsNamespace, USHORT uscResponses, HNET_RESPONSE_RANGE rgResponses[], SAFEARRAY **ppsa ); HRESULT CopyResponseInstanceToStruct( IWbemClassObject *pwcoInstance, HNET_RESPONSE_RANGE *pResponse ); HRESULT CopyStructToResponseInstance( HNET_RESPONSE_RANGE *pResponse, IWbemClassObject *pwcoInstance ); HRESULT DeleteWmiInstance( IWbemServices *piwsNamespace, IWbemClassObject *pwcoInstance ); LPWSTR EscapeString( LPCWSTR wsz ); HRESULT InitializeNetCfgForWrite( OUT INetCfg **ppnetcfg, OUT INetCfgLock **ppncfglock ); void UninitializeNetCfgForWrite( IN INetCfg *pnetcfg, IN INetCfgLock *pncfglock ); HRESULT FindAdapterByGUID( IN INetCfg *pnetcfg, IN GUID *pguid, OUT INetCfgComponent **ppncfgcomp ); HRESULT BindOnlyToBridge( IN INetCfgComponent *pnetcfgcomp ); HRESULT FindINetConnectionByGuid( GUID *pGuid, INetConnection **ppNetCon ); HRESULT GetBridgeConnection( IN IWbemServices *piwsHomenet, OUT IHNetBridge **pphnetBridge ); HRESULT GetIHNetConnectionForNetCfgComponent( IN IWbemServices *piwsHomenet, IN INetCfgComponent *pnetcfgcomp, IN BOOLEAN fLanConnection, IN REFIID iid, OUT PVOID *ppv ); HRESULT GetBooleanValue( IWbemClassObject *pwcoInstance, LPCWSTR pwszProperty, BOOLEAN *pfBoolean ); HRESULT GetConnectionInstanceByGuid( IWbemServices *piwsNamespace, BSTR bstrWQL, GUID *pGuid, IWbemClassObject **ppwcoConnection ); HRESULT GetConnAndPropInstancesByGuid( IWbemServices *piwsNamespace, GUID *pGuid, IWbemClassObject **ppwcoConnection, IWbemClassObject **ppwcoProperties ); HRESULT GetConnAndPropInstancesForHNC( IWbemServices *piwsNamespace, IHNetConnection *pConn, IWbemClassObject **ppwcoConnection, IWbemClassObject **ppwcoProperties ); HRESULT GetPhonebookPathFromRasNetcon( INetConnection *pConn, LPWSTR *ppwstr ); HRESULT GetPortMappingBindingInstance( IWbemServices *piwsNamespace, BSTR bstrWQL, BSTR bstrConnectionPath, BSTR bstrProtocolPath, USHORT usPublicPort, IWbemClassObject **ppInstance ); HRESULT GetPropInstanceFromConnInstance( IWbemServices *piwsNamespace, IWbemClassObject *pwcoConnection, IWbemClassObject **ppwcoProperties ); HRESULT GetWmiObjectFromPath( IWbemServices *piwsNamespace, BSTR bstrPath, IWbemClassObject **pwcoInstance ); HRESULT GetWmiPathFromObject( IWbemClassObject *pwcoInstance, BSTR *pbstrPath ); HRESULT MapGuidStringToAdapterIndex( LPCWSTR pwszGuid, ULONG *pulIndex ); HRESULT HostAddrToIpPsz( DWORD dwIPAddress, LPWSTR* ppszwNewStr ); DWORD IpPszToHostAddr( LPCWSTR cp ); BOOLEAN IsRoutingProtocolInstalled( ULONG ulProtocolId ); BOOLEAN IsServiceRunning( LPCWSTR pwszServiceName ); HRESULT OpenRegKey( PHANDLE Key, ACCESS_MASK DesiredAccess, PCWSTR Name ); BOOLEAN PortMappingProtocolExists( IWbemServices *piwsNamespace, BSTR bstrWQL, USHORT usPort, UCHAR ucIPProtocol ); HRESULT QueryRegValueKey( HANDLE Key, const WCHAR ValueName[], PKEY_VALUE_PARTIAL_INFORMATION* Information ); HRESULT ReadDhcpScopeSettings( DWORD *pdwScopeAddress, DWORD *pdwScopeMask ); HRESULT RetrieveSingleInstance( IWbemServices *piwsNamespace, const OLECHAR *pwszClass, BOOLEAN fCreate, IWbemClassObject **ppwcoInstance ); HRESULT SetBooleanValue( IWbemClassObject *pwcoInstance, LPCWSTR pwszProperty, BOOLEAN fBoolean ); VOID SetProxyBlanket( IUnknown *pUnk ); HRESULT SpawnNewInstance( IWbemServices *piwsNamespace, LPCWSTR wszClass, IWbemClassObject **ppwcoInstance ); DWORD StartOrUpdateService( VOID ); VOID StopService( VOID ); HRESULT UpdateOrStopService( IWbemServices *piwsNamespace, BSTR bstrWQL, DWORD dwControlCode ); VOID UpdateService( DWORD dwControlCode ); VOID ValidateFinishedWCOEnum( IWbemServices *piwsNamespace, IEnumWbemClassObject *pwcoEnum ); HRESULT SendPortMappingListChangeNotification(); HRESULT SignalModifiedConnection( GUID *pGUID ); HRESULT SignalNewConnection( GUID *pGUID ); HRESULT SignalDeletedConnection( GUID *pGUID );