NetNode.h
上传用户:geanq888
上传日期:2007-01-03
资源大小:316k
文件大小:2k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // NetNode.h: interface for the CNetNode class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_NETNODE_H__8EEC9E13_05D5_11D2_BFE7_9E4404C3504A__INCLUDED_)
  5. #define AFX_NETNODE_H__8EEC9E13_05D5_11D2_BFE7_9E4404C3504A__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #include <winnetwk.h> // network APIs
  10. class CNetNode  
  11. {
  12. public:
  13.   // construction/destruction
  14.   CNetNode();
  15.   CNetNode(LPNETRESOURCE pNetResource);
  16.   ~CNetNode();
  17.   // network enumeration
  18.   DWORD EnumerateNetwork();
  19.   inline DWORD GetChildCount()
  20.     { return(m_nodeCount); }
  21.   inline CNetNode * GetChildNode(DWORD index)
  22.     { return(m_nodeArray[index]); }
  23.   // query network node details
  24.   inline BOOL IsContainer()
  25.     { return(m_pNetResource->dwUsage &
  26.       RESOURCEUSAGE_CONTAINER); }
  27.   inline const char * GetText()
  28.     { return(m_text); }
  29.   inline const char * GetLocalName()
  30.     { return(m_pNetResource->lpLocalName); }
  31.   inline const char * GetRemoteName()
  32.     { return(m_pNetResource->lpRemoteName); }
  33.   inline const char * GetComment()
  34.     { return(m_pNetResource->lpComment); }
  35.   inline const char * GetProvider()
  36.     { return(m_pNetResource->lpProvider); }
  37.   inline DWORD GetScope()
  38.     { return(m_pNetResource->dwScope); }
  39.   inline DWORD GetType()
  40.     { return(m_pNetResource->dwType); }
  41.   inline DWORD GetDisplayType()
  42.     { return(m_pNetResource->dwDisplayType); }
  43.   inline DWORD GetUsage()
  44.     { return(m_pNetResource->dwUsage); }
  45.   // platform utility
  46.   static inline int GetPlatformID()
  47.     { if (m_platformID >= 0) return(m_platformID);
  48.       else return(InitPlatformID()); }
  49.   static inline int PlatformIsWindows95()
  50.     { return(GetPlatformID() == 
  51.       VER_PLATFORM_WIN32_WINDOWS); }
  52.   static inline int PlatformIsWindowsNT()
  53.     { return(GetPlatformID() ==
  54.       VER_PLATFORM_WIN32_NT); }
  55. protected:
  56.   void EnumerateWin95NetProviders(char *
  57.     pNetProviders, DWORD * pNumNetProviders);
  58.   DWORD EnumerateNetworkWin95Root();
  59.   static int InitPlatformID();
  60.   static int      m_platformID;
  61.   BOOL            m_isRoot;
  62.   BOOL            m_haveEnumerated;
  63.   char *          m_text;
  64.   CNetNode **     m_nodeArray;
  65.   DWORD           m_nodeCount;
  66.   LPNETRESOURCE   m_pNetResource;
  67. };
  68. #endif // !defined(AFX_NETNODE_H__8EEC9E13_05D5_11D2_BFE7_9E4404C3504A__INCLUDED_)