home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / netds / adsi / sampprov / cenumobj.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-29  |  2.3 KB  |  125 lines

  1. /*++
  2.  
  3. Copyright (c) 1996 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     CEnumObj.h
  8.  
  9. Abstract:
  10.  
  11. Author:
  12.  
  13. Environment:
  14.  
  15.     User mode
  16.  
  17. Revision History :
  18.  
  19. --*/
  20. #ifndef _CENUMOBJ_H_
  21. #define _CENUMOBJ_H_
  22.  
  23. class FAR CSampleDSGenObjectEnum : public CSampleDSEnumVariant
  24. {
  25. public:
  26.     CSampleDSGenObjectEnum(ObjectTypeList ObjList);
  27.     CSampleDSGenObjectEnum();
  28.     ~CSampleDSGenObjectEnum();
  29.  
  30.     HRESULT
  31.     EnumObjects(
  32.         ULONG cElements,
  33.         VARIANT FAR * pvar,
  34.         ULONG FAR * pcElementFetched
  35.         );
  36.  
  37.     static
  38.     HRESULT
  39.     CSampleDSGenObjectEnum::Create(
  40.         CSampleDSGenObjectEnum FAR* FAR* ppenumvariant,
  41.         BSTR ADsPath,
  42.         VARIANT var
  43.         );
  44.  
  45. private:
  46.  
  47.         HRESULT
  48.         CSampleDSGenObjectEnum::FetchObjects(
  49.             ULONG cElements,
  50.                 VARIANT FAR* pvar,
  51.                 ULONG FAR* pcElementFetched
  52.                 );
  53.  
  54.         HRESULT
  55.         CSampleDSGenObjectEnum::FetchNextObject(
  56.                 IDispatch ** ppDispatch
  57.                 );
  58.         
  59.     ObjectTypeList FAR *_pObjList;
  60.     LPDS_FILTER_LIST _pDSFilterList;
  61.  
  62.     HANDLE      _hObject;
  63.     HANDLE      _hEnum;
  64.     LPDS_OBJECT_INFO _lpObjects;
  65.     DWORD       _dwObjectReturned;
  66.     DWORD       _dwObjectCurrentEntry;
  67.     DWORD       _dwObjectTotal;
  68.  
  69.     BSTR        _ADsPath;
  70.  
  71.     BOOL        _bNoMore;
  72.  
  73.     HRESULT
  74.     CSampleDSGenObjectEnum::GetGenObject(
  75.         IDispatch ** ppDispatch
  76.         );
  77.  
  78.     HRESULT
  79.     EnumGenericObjects(
  80.         ULONG cElements,
  81.         VARIANT FAR* pvar,
  82.         ULONG FAR* pcElementFetched
  83.         );
  84.  
  85.  
  86.     HRESULT
  87.     CSampleDSGenObjectEnum::EnumObjects(
  88.         DWORD ObjectType,
  89.         ULONG cElements,
  90.         VARIANT FAR * pvar,
  91.         ULONG FAR * pcElementFetched
  92.         );
  93.  
  94.     STDMETHOD(Next)(
  95.         ULONG cElements,
  96.         VARIANT FAR* pvar,
  97.         ULONG FAR* pcElementFetched
  98.         );
  99.  
  100.         HRESULT
  101.         CSampleDSGenObjectEnum::IsValidDSFilter(
  102.                 LPWSTR lpObjectClass
  103.                 );
  104.  
  105. };
  106.  
  107. HRESULT
  108. BuildDSFilterArray(
  109.     VARIANT var,
  110.     LPBYTE * ppContigFilter
  111.     );
  112.  
  113. void
  114. FreeFilterList(
  115.     LPBYTE lpContigFilter
  116.     );
  117.  
  118. LPBYTE
  119. CreateAndAppendFilterEntry(
  120.     LPBYTE pContigFilter,
  121.     LPWSTR lpObjectClass
  122.     );
  123. #endif
  124.  
  125.