netview.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 4k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #pragma pack(1)
  2. typedef struct _IDNETRESOURCE   // idn
  3. {
  4.     WORD    cb;
  5.     BYTE    bFlags;         // Display type in low nibble
  6.     BYTE    uType;
  7.     BYTE    uUsage;         // Usage in low nibble, More Flags in high nibble
  8.     CHAR    szNetResName[1];
  9.     // char szProvider[*] - If NET_HASPROVIDER bit is set
  10.     // char szComment[*]  - If NET_HASCOMMENT bit is set.
  11.     // WCHAR szNetResNameWide[*] - If NET_UNICODE bit it set.
  12.     // WCHAR szProviderWide[*]   - If NET_UNICODE and NET_HASPROVIDER
  13.     // WCHAR szCommentWide[*]    - If NET_UNICODE and NET_HASCOMMENT
  14. } IDNETRESOURCE, *LPIDNETRESOURCE;
  15. typedef const IDNETRESOURCE *LPCIDNETRESOURCE;
  16. #pragma pack()
  17. //===========================================================================
  18. // CNetwork: Some private macro - but probably needed in .cpp file.
  19. //===========================================================================
  20. #define NET_DISPLAYNAMEOFFSET           ((UINT)((LPIDNETRESOURCE)0)->szNetResName)
  21. #define NET_GetFlags(pidnRel)           ((pidnRel)->bFlags)
  22. #define NET_GetDisplayType(pidnRel)     ((pidnRel)->bFlags & 0x0f)
  23. #define NET_GetType(pidnRel)            ((pidnRel)->uType)
  24. #define NET_GetUsage(pidnRel)           ((pidnRel)->uUsage & 0x0f)
  25. #define NET_IsReg(pidnRel)              ((pidnRel)->bFlags == SHID_NET_REGITEM)
  26. #define NET_IsJunction(pidnRel)         ((pidnRel)->bFlags & SHID_JUNCTION)
  27. #define NET_IsRootReg(pidnRel)          ((pidnRel)->bFlags == SHID_NET_ROOTREGITEM)
  28. #define NET_IsFake(pidnRel)             ((pidnRel)->szNetResName[0] == '')
  29. // Define some Flags that are on high nibble of uUsage byte
  30. #define NET_HASPROVIDER                 0x80    // Has own copy of provider
  31. #define NET_HASCOMMENT                  0x40    // Has comment field in pidl
  32. #define NET_REMOTEFLD                   0x20    // Is remote folder
  33. #define NET_UNICODE                     0x10    // Has unicode names
  34. #define NET_FHasComment(pidnRel)        ((pidnRel)->uUsage & NET_HASCOMMENT)
  35. #define NET_FHasProvider(pidnRel)       ((pidnRel)->uUsage & NET_HASPROVIDER)
  36. #define NET_IsRemoteFld(pidnRel)        ((pidnRel)->uUsage & NET_REMOTEFLD)
  37. #define NET_IsUnicode(pidnRel)          ((pidnRel)->uUsage & NET_UNICODE)
  38. STDMETHODIMP CNetwork_EnumSearches(IShellFolder2 *psf2, LPENUMEXTRASEARCH *ppenum);
  39. STDAPI_(IShellFolderViewCB*) Net_CreateSFVCB(IShellFolder* psf, UINT uDisplayType, LPCITEMIDLIST pidlMonitor, LONG lEvents);
  40. STDAPI CNetwork_DFMCallBackBG(LPSHELLFOLDER psf, HWND hwndOwner,
  41.                 IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam);
  42. STDAPI_(BOOL) NET_GetProviderKeyName(IShellFolder *psf, LPTSTR pszName, UINT uNameLen);
  43. STDAPI_(BOOL) NET_IsRemoteRegItem(LPCITEMIDLIST pidl, REFCLSID rclsid, LPITEMIDLIST* ppidlRemainder);
  44. // These are exported form netviewx.c they are wrappers around the same WNet
  45. // APIs, but play with the parameters to make it easier to call.  They accept
  46. // full paths rather than just drive letters.
  47. STDAPI_(DWORD) SHWNetDisconnectDialog1 (LPDISCDLGSTRUCT lpConnDlgStruct);
  48. STDAPI_(DWORD) SHWNetGetConnection (LPCTSTR lpLocalName, LPTSTR lpRemoteName, LPDWORD lpnLength);
  49. typedef struct
  50. {
  51.     LPCTSTR lpName;
  52.     WORD    wNetType;
  53. } NETPROVIDERS;
  54. extern const NETPROVIDERS c_rgProviderMap[];
  55. extern const int c_cProviders;
  56. LPTSTR NET_CopyResName(LPCIDNETRESOURCE pidn, LPTSTR pszBuff, UINT cchBuff);
  57. LPTSTR NET_CopyComment(LPCIDNETRESOURCE pidn, LPTSTR pszBuff, UINT cchBuff);
  58. LPTSTR NET_CopyProviderName(LPCIDNETRESOURCE pidn, LPTSTR pszBuff, UINT cchBuff);