CGENOBJ.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

CGenObj.h

Abstract:

Author:

Environment:

User mode

Revision History :

--*/
#ifndef _CGENOBJ_H_
#define _CGENOBJ_H_

class CSampleDSGenObject;


class CSampleDSGenObject : INHERIT_TRACKING,
public CCoreADsObject,
public IADs,
public IADsContainer
{
public:

/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;

DECLARE_STD_REFCOUNTING

DECLARE_IDispatch_METHODS

DECLARE_IADs_METHODS

DECLARE_IADsContainer_METHODS

CSampleDSGenObject::CSampleDSGenObject();

CSampleDSGenObject::~CSampleDSGenObject();

static
HRESULT
CSampleDSGenObject::CreateGenericObject(
BSTR bstrADsPath,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);

static
HRESULT
CSampleDSGenObject::CreateGenericObject(
BSTR Parent,
BSTR CommonName,
BSTR ClassName,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);

static
HRESULT
CSampleDSGenObject::AllocateGenObject(
CSampleDSGenObject ** ppGenObject
);

STDMETHOD(GetInfo)(
BOOL fExplicit
);


HRESULT
CSampleDSGenObject::SampleDSSetObject();

HRESULT
CSampleDSGenObject::SampleDSCreateObject();

protected:

VARIANT _vFilter;
CPropertyCache FAR * _pPropertyCache;
CDispatchMgr FAR * _pDispMgr;
};

HRESULT
ConvertSafeArrayToVariantArray(
VARIANT varSafeArray,
VARIANT ** ppVarArray,
PDWORD pdwNumVariants
);
#endif