windows-nt/Source/XPSP1/NT/inetsrv/query/fsci/indexing/classf.hxx
2020-09-26 16:20:57 +08:00

154 lines
3.7 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1998.
//
// File: classf.hxx
//
// Contents: Class factory description
//
// History: 1-7-97 markz Created
//
//----------------------------------------------------------------------------
#pragma once
//
// Standard Ole exports
//
extern "C" SCODE STDMETHODCALLTYPE FsciDllGetClassObject( REFCLSID cid,
REFIID iid,
void ** ppvObj );
extern "C" const GUID guidStorageFilterObject;
extern "C" const GUID guidStorageDocStoreLocatorObject;
//+---------------------------------------------------------------------------
//
// Class: CStorageFilterObjectCF
//
// Purpose: Class factory to generate file system filter objects
//
// History: 1-7-97 markz Created
//
// Notes: This class is NOT multi-thread safe. The user must make sure
// that only one thread is using it at a time.
//
//----------------------------------------------------------------------------
class CStorageFilterObjectCF : public IClassFactory
{
public:
//
// Constructor and Destructor
//
CStorageFilterObjectCF( void );
//
// 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 );
protected:
//
// Hidden destructor so that only we can delete the instance
// based on IUnknown control
//
virtual ~CStorageFilterObjectCF();
private:
friend SCODE STDMETHODCALLTYPE FsciDllGetClassObject( REFCLSID cid,
REFIID iid,
void** ppvObj );
//
// IUnknown reference count.
//
LONG _RefCount;
};
//+---------------------------------------------------------------------------
//
// Class: CStorageDocStoreLocatorObjectCF
//
// Purpose: Class Factory to generate File System DocStore Locator object
//
// History: 1-16-97 srikants Created
//
//----------------------------------------------------------------------------
class CStorageDocStoreLocatorObjectCF : 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 );
protected:
//
// Constructor and Destructor
//
CStorageDocStoreLocatorObjectCF( void );
//
// Hidden destructor so that only we can delete the instance
// based on IUnknown control
//
virtual ~CStorageDocStoreLocatorObjectCF();
private:
friend SCODE STDMETHODCALLTYPE FsciDllGetClassObject( REFCLSID cid,
REFIID iid,
void** ppvObj );
//
// IUnknown reference count.
//
LONG _RefCount;
};