text: //+---------------------------------------------------------------------------
  //
  //  Microsoft Windows
  //  Copyright (C) Microsoft Corporation, 1992 - 1998.
  //
  //  File:       cicontrl.hxx
  //
  //  Contents:   Contains the implementation of ICiControl interface.
  //
  //  History:    1-17-97   srikants   Created
  //
  //----------------------------------------------------------------------------
  
  #pragma once
  
  #include <ciintf.h>
  
  extern const GUID clsidCiControl;
  
  //+---------------------------------------------------------------------------
  //
  //  Class:      CCiControlObject 
  //
  //  Purpose:    Object of overall Ci control
  //
  //  History:    1-17-97   srikants   Created
  //
  //  Notes:      
  //
  //----------------------------------------------------------------------------
  
  class CCiControlObject : public ICiControl
  {
  
  public:
  
      CCiControlObject() : _refCount(1)
      {
          
      }
  
      //
      // IUnknown methods.
      //
      STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppiuk );
  
      STDMETHOD_(ULONG, AddRef) (THIS);
  
      STDMETHOD_(ULONG, Release) (THIS);
  
      STDMETHOD(CreateContentIndex) (
          ICiCDocStore  * pICiDocStore,
          ICiManager   ** ppICiManager);
      
      STDMETHOD(DestroyContentIndex)( 
          ICiManager   * pICiManager)
      {
          Win4Assert( !"Not Yet Implemented" );
          return E_NOTIMPL;
      }
      
  private:
  
      long        _refCount;
  
  };
  
  //+---------------------------------------------------------------------------
  //
  //  Class:      CCiControlObjectCF 
  //
  //  Purpose:    Class factory for ICiControl 
  //
  //  History:    1-17-97   srikants   Created
  //
  //----------------------------------------------------------------------------
  
  class CCiControlObjectCF : public IClassFactory
  {
  public:
  
  
      //
      //  IUnknown methods.
      //
      STDMETHOD( QueryInterface ) ( THIS_ REFIID riid,LPVOID *ppiuk );
  
      STDMETHOD_( ULONG, AddRef ) ( THIS );
  
      STDMETHOD_( ULONG, Release ) ( THIS );
  
      //
      //  IClassFactory methods.
      //
      STDMETHOD( CreateInstance ) ( THIS_
                                    IUnknown * pUnkOuter,
                                    REFIID riid,
                                    void  * * ppvObject );
  
      STDMETHOD( LockServer ) ( THIS_ BOOL fLock );
  
      CCiControlObjectCF( void );
  
  protected:
  
      //
      //  Hidden destructor so that only we can delete the instance
      //  based on IUnknown control
      //
  
      virtual ~CCiControlObjectCF();
  
  private:
  
      //
      //  IUnknown reference count.
      //
  
      LONG _RefCount;
  
  };
  
  