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.

114 lines
3.8 KiB

  1. //****************************************************************************
  2. //
  3. // Module: ULS.DLL
  4. // File: ulsuser.h
  5. // Content: This file contains the User object definition.
  6. // History:
  7. // Wed 17-Apr-1996 11:18:47 -by- Viroon Touranachun [viroont]
  8. //
  9. // Copyright (c) Microsoft Corporation 1996-1997
  10. //
  11. //****************************************************************************
  12. #ifndef _ULSUSER_H_
  13. #define _ULSUSER_H_
  14. #include "connpt.h"
  15. //****************************************************************************
  16. // CUlsUser definition
  17. //****************************************************************************
  18. //
  19. class CUlsUser : public IULSUser,
  20. public IConnectionPointContainer
  21. {
  22. private:
  23. ULONG cRef;
  24. LPTSTR szServer;
  25. LPTSTR szID;
  26. LPTSTR szFirstName;
  27. LPTSTR szLastName;
  28. LPTSTR szEMailName;
  29. LPTSTR szCityName;
  30. LPTSTR szCountryName;
  31. LPTSTR szComment;
  32. LPTSTR szIPAddr;
  33. DWORD m_dwFlags;
  34. CConnectionPoint *pConnPt;
  35. // Private method
  36. //
  37. STDMETHODIMP NotifySink (void *pv, CONN_NOTIFYPROC pfn);
  38. public:
  39. // Constructor and destructor
  40. CUlsUser (void);
  41. ~CUlsUser (void);
  42. STDMETHODIMP Init (LPTSTR szServerName,
  43. PLDAP_USERINFO pui);
  44. // Asynchronous response
  45. //
  46. STDMETHODIMP GetApplicationResult (ULONG uReqID,
  47. PLDAP_APPINFO_RES plar);
  48. STDMETHODIMP EnumApplicationsResult (ULONG uReqID,
  49. PLDAP_ENUM ple);
  50. // IUnknown
  51. STDMETHODIMP QueryInterface (REFIID iid, void **ppv);
  52. STDMETHODIMP_(ULONG) AddRef (void);
  53. STDMETHODIMP_(ULONG) Release (void);
  54. // IULSUser
  55. STDMETHODIMP GetID (BSTR *pbstrID);
  56. STDMETHODIMP GetFirstName (BSTR *pbstrName);
  57. STDMETHODIMP GetLastName (BSTR *pbstrName);
  58. STDMETHODIMP GetEMailName (BSTR *pbstrName);
  59. STDMETHODIMP GetCityName (BSTR *pbstrName);
  60. STDMETHODIMP GetCountryName (BSTR *pbstrName);
  61. STDMETHODIMP GetComment (BSTR *pbstrComment);
  62. STDMETHODIMP GetFlags (DWORD *pdwFlags);
  63. STDMETHODIMP GetIPAddress (BSTR *pbstrIPAddress);
  64. STDMETHODIMP GetApplication (BSTR bstrAppName,
  65. IULSAttributes *pAttributes,
  66. ULONG *puReqID);
  67. STDMETHODIMP EnumApplications (ULONG *puReqID);
  68. // IConnectionPointContainer
  69. STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum);
  70. STDMETHODIMP FindConnectionPoint(REFIID riid,
  71. IConnectionPoint **ppcp);
  72. };
  73. //****************************************************************************
  74. // CEnumUsers definition
  75. //****************************************************************************
  76. //
  77. class CEnumUsers : public IEnumULSUsers
  78. {
  79. private:
  80. ULONG cRef;
  81. CUlsUser **ppu;
  82. ULONG cUsers;
  83. ULONG iNext;
  84. public:
  85. // Constructor and Initialization
  86. CEnumUsers (void);
  87. ~CEnumUsers (void);
  88. STDMETHODIMP Init (CUlsUser **ppuList, ULONG cUsers);
  89. // IUnknown
  90. STDMETHODIMP QueryInterface (REFIID iid, void **ppv);
  91. STDMETHODIMP_(ULONG) AddRef (void);
  92. STDMETHODIMP_(ULONG) Release (void);
  93. // IEnumULSAttributes
  94. STDMETHODIMP Next(ULONG cUsers, IULSUser **rgpu,
  95. ULONG *pcFetched);
  96. STDMETHODIMP Skip(ULONG cUsers);
  97. STDMETHODIMP Reset();
  98. STDMETHODIMP Clone(IEnumULSUsers **ppEnum);
  99. };
  100. #endif //_ULSUSER_H_