|
|
typedef struct _PropertyInfo { LPTSTR szPropertyName; BSTR bstrOID; BSTR bstrSyntax; long lMaxRange; long lMinRange; BOOL fMultiValued; DWORD dwFlags; DWORD dwInfoLevel; DWORD dwSyntaxId; }PROPERTYINFO, *PPROPERTYINFO, *LPPROPERTYINFO;
typedef struct _ClassInfo { BSTR bstrName; const GUID *pCLSID; const GUID *pPrimaryInterfaceGUID; BSTR bstrOID; BOOL fAbstract; BSTR bstrMandatoryProperties; BSTR bstrOptionalProperties; BSTR bstrPossSuperiors; BSTR bstrContainment; BOOL fContainer; BSTR bstrHelpFileName; long lHelpFileContext;
PROPERTYINFO *aPropertyInfo; DWORD cPropertyInfo;
} CLASSINFO;
typedef struct _SyntaxInfo { BSTR bstrName; long lOleAutoDataType; } SYNTAXINFO;
extern DWORD g_cNWCOMPATClasses; extern CLASSINFO g_aNWCOMPATClasses[];
extern DWORD g_cNWCOMPATSyntax; extern SYNTAXINFO g_aNWCOMPATSyntax[];
HRESULT MakeVariantFromStringList( BSTR bstrList, VARIANT *pvVariant );
class CNWCOMPATSchema;
class CNWCOMPATSchema : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADs, public IADsContainer { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
NW_DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsContainer_METHODS
/* Constructors, Destructors .... */ CNWCOMPATSchema::CNWCOMPATSchema();
CNWCOMPATSchema::~CNWCOMPATSchema();
static HRESULT CNWCOMPATSchema::CreateSchema( BSTR bstrParent, BSTR bstrName, CCredentials &Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CNWCOMPATSchema::AllocateSchemaObject( CNWCOMPATSchema **ppSchema );
protected:
CDispatchMgr FAR * _pDispMgr;
VARIANT _vFilter;
CCredentials _Credentials;
};
class CNWCOMPATClass : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsClass { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
NW_DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsClass_METHODS
/* Constructors, Destructors, .... */ CNWCOMPATClass::CNWCOMPATClass();
CNWCOMPATClass::~CNWCOMPATClass();
static HRESULT CNWCOMPATClass::CreateClass( BSTR bstrParent, CLASSINFO *pClassInfo, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CNWCOMPATClass::AllocateClassObject( CNWCOMPATClass **ppClass );
protected:
CDispatchMgr FAR * _pDispMgr;
VARIANT _vFilter;
DWORD _cPropertyInfo; PROPERTYINFO *_aPropertyInfo;
/* Properties */ BSTR _bstrCLSID; BSTR _bstrOID; BSTR _bstrPrimaryInterface;
VARIANT_BOOL _fAbstract; VARIANT _vMandatoryProperties; VARIANT _vOptionalProperties;
VARIANT _vPossSuperiors; VARIANT _vContainment; VARIANT_BOOL _fContainer;
BSTR _bstrHelpFileName; long _lHelpFileContext;
};
class CNWCOMPATProperty : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsProperty { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
NW_DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsProperty_METHODS
/* Constructors, Destructors, ... */ CNWCOMPATProperty::CNWCOMPATProperty();
CNWCOMPATProperty::~CNWCOMPATProperty();
static HRESULT CNWCOMPATProperty::CreateProperty( BSTR bstrParent, PROPERTYINFO *pPropertyInfo, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CNWCOMPATProperty::AllocatePropertyObject( CNWCOMPATProperty **ppProperty );
protected:
CDispatchMgr FAR * _pDispMgr;
/* Properties */
BSTR _bstrOID; BSTR _bstrSyntax;
long _lMaxRange; long _lMinRange; VARIANT_BOOL _fMultiValued; };
class CNWCOMPATSyntax : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsSyntax { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
NW_DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsSyntax_METHODS
/* Constructors, Destructors, ... */ CNWCOMPATSyntax::CNWCOMPATSyntax();
CNWCOMPATSyntax::~CNWCOMPATSyntax();
static HRESULT CNWCOMPATSyntax::CreateSyntax( BSTR bstrParent, SYNTAXINFO *pSyntaxInfo, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CNWCOMPATSyntax::AllocateSyntaxObject( CNWCOMPATSyntax **ppSyntax );
protected:
CDispatchMgr FAR * _pDispMgr;
/* Properties */ long _lOleAutoDataType; };
|