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.

125 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 1997-2000 Microsoft Corporation
  3. Module Name:
  4. rndrend.h
  5. Abstract:
  6. Definitions for CRendezvous class.
  7. --*/
  8. #ifndef __RNDREND_H
  9. #define __RNDREND_H
  10. #pragma once
  11. #include "RndObjSf.h"
  12. #include "rndutil.h"
  13. #define RENDWINSOCKVERSION (MAKEWORD(1, 1))
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CRendezvous
  16. /////////////////////////////////////////////////////////////////////////////
  17. class CRendezvous :
  18. public CComDualImpl<ITRendezvous, &IID_ITRendezvous, &LIBID_RENDLib>,
  19. public CComObjectRootEx<CComObjectThreadModel>,
  20. public CComCoClass<CRendezvous, &CLSID_Rendezvous>,
  21. public CRendObjectSafety
  22. {
  23. DECLARE_GET_CONTROLLING_UNKNOWN()
  24. public:
  25. CRendezvous() : m_fWinsockReady(FALSE), m_dwSafety(0), m_pFTM(NULL) {}
  26. HRESULT FinalConstruct(void);
  27. virtual ~CRendezvous();
  28. BEGIN_COM_MAP(CRendezvous)
  29. COM_INTERFACE_ENTRY(IDispatch)
  30. COM_INTERFACE_ENTRY(ITRendezvous)
  31. COM_INTERFACE_ENTRY(IObjectSafety)
  32. COM_INTERFACE_ENTRY(IObjectWithSite)
  33. COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM)
  34. END_COM_MAP()
  35. //DECLARE_NOT_AGGREGATABLE(CRendezvous)
  36. // Remove the comment from the line above if you don't want your object to
  37. // support aggregation.
  38. DECLARE_REGISTRY_RESOURCEID(IDR_Rendezvous)
  39. //
  40. // ITRendezvous
  41. //
  42. STDMETHOD (get_DefaultDirectories) (
  43. OUT VARIANT * pVariant
  44. );
  45. STDMETHOD (EnumerateDefaultDirectories) (
  46. OUT IEnumDirectory ** ppEnumDirectory
  47. );
  48. STDMETHOD (CreateDirectory) (
  49. IN DIRECTORY_TYPE DirectoryType,
  50. IN BSTR pName,
  51. OUT ITDirectory ** ppDir
  52. );
  53. STDMETHOD (CreateDirectoryObject) (
  54. IN DIRECTORY_OBJECT_TYPE DirectoryObjectType,
  55. IN BSTR pName,
  56. OUT ITDirectoryObject ** ppDirectoryObject
  57. );
  58. protected:
  59. HRESULT InitWinsock();
  60. HRESULT CreateDirectoryEnumerator(
  61. IN ITDirectory ** begin,
  62. IN ITDirectory ** end,
  63. OUT IEnumDirectory ** ppIEnum
  64. );
  65. HRESULT CreateNTDirectory(
  66. OUT ITDirectory **ppDirectory
  67. );
  68. HRESULT CreateILSDirectory(
  69. IN const WCHAR * const wstrName,
  70. IN const WORD wPort,
  71. OUT ITDirectory ** ppDirectory
  72. );
  73. HRESULT CreateNDNCDirectory(
  74. IN const WCHAR * const wstrName,
  75. IN const WORD wPort,
  76. OUT ITDirectory ** ppDirectory
  77. );
  78. HRESULT CreateDirectories(
  79. SimpleVector <ITDirectory *> &VDirectory
  80. );
  81. HRESULT CreateConference(
  82. OUT ITDirectoryObject **ppDirectoryObject
  83. );
  84. HRESULT CreateUser(
  85. OUT ITDirectoryObject **ppDirectoryObject
  86. );
  87. private:
  88. BOOL m_fWinsockReady;
  89. DWORD m_dwSafety;
  90. IUnknown * m_pFTM; // pointer to the free threaded marshaler
  91. };
  92. #endif