Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996.
//
// File: mach.hxx
//
// Contents:
// Net helper functions.
//
// History:
//--------------------------------------------------------------------------
#ifndef __MACH_HXX__
#define __MACH_HXX__
#include <rpc.h>
#ifndef _CHICAGO_
#include <netevent.h>
#endif
#include <winsock.h>
const UINT IPMaximumPrettyName = 256; // DNS limit
const UINT IPMaximumRawName = 16; // xxx.xxx.xxx.xxx
typedef struct { UINT Count; WCHAR **NetworkAddresses; } NetworkAddressVector;
//
// This class is basically just a ref-counted wrapper around
// the NetworkAddressVector struct above.
//
class CIPAddrs { public: CIPAddrs(); ~CIPAddrs();
void IncRefCount(); void DecRefCount(); // These members are read-only by users:
NetworkAddressVector* _pIPAddresses;
private: LONG _lRefs; };
class CMachineName { public: CMachineName();
DWORD Initialize();
inline WCHAR * Name() { ASSERT(_bInitialized); return _wszMachineName; }
BOOL Compare( IN WCHAR * pwszName ); void IPAddrsChanged() { ASSERT(_bInitialized); _bIPAddrsChanged = TRUE; };
CIPAddrs *GetIPAddrs();
private: void SetName();
void SetDNSName(); void SetHostAliases(HOSTENT*);
NetworkAddressVector* COMMON_IP_BuildAddressVector();
SOCKET _socket; BYTE* _pAddrQueryBuf; DWORD _dwAddrQueryBufSize; CIPAddrs* _pIPAddresses; BOOL _bIPAddrsChanged; DWORD _dwcResets; // counts how many times we've queried for new IP addresses
BOOL _bInitialized; // True after we've successfully initialized
WCHAR * _pwszDNSName; WCHAR ** _pAliases; WCHAR _wszMachineName[MAX_COMPUTERNAME_LENGTH+1]; CRITICAL_SECTION _csMachineNameLock; };
extern CMachineName * gpMachineName;
#endif \\__MACH_HXX__
|