#ifndef _OBJECTS_H_ #define _OBJECTS_H_ #include "schclss.h" #define MEMBERS IADsMembers class CMainDoc; class CClass; class CDeleteStatus; class COleDsObject: public CObject { public: COleDsObject( IUnknown* ); COleDsObject( ); ~COleDsObject( ); public: BOOL HasChildren ( ); CString GetClass ( ); DWORD GetType ( ); CString GetOleDsPath ( ); CString GetItemName ( ); CString* PtrGetItemName ( ); CString GetSchemaPath ( ); HRESULT SetInfo ( void ); HRESULT GetInfo ( void ); HRESULT SetInfoVB ( void ); HRESULT GetInfoVB ( void ); HRESULT SetInfoCPP ( void ); HRESULT GetInfoCPP ( void ); virtual HRESULT PutProperty ( int, CString&, long Code = ADS_PROPERTY_UPDATE ); virtual HRESULT PutProperty ( CString&, CString& ); virtual HRESULT GetProperty ( int, CString&, BOOL* pbIsDescriptor = NULL ); virtual HRESULT GetProperty ( CString&, CString& ); HRESULT PutProperty ( CString& strName, CString& strVal, BOOL bMultiValued, ADSTYPE eType ); HRESULT GetProperty ( CString& strName, CString& strVal, BOOL bMultiValued, ADSTYPE eType ); HRESULT PutPropertyVB ( int, CString&, long Code = ADS_PROPERTY_UPDATE ); HRESULT PutPropertyVB ( CString&, CString& ); HRESULT GetPropertyVB ( int, CString&, BOOL* pbIsDescriptor = NULL ); HRESULT GetPropertyVB ( CString&, CString& ); HRESULT PutPropertyCPP ( int, CString&, long Code = ADS_PROPERTY_UPDATE ); HRESULT PutPropertyCPP ( CString&, CString& ); HRESULT GetPropertyCPP ( int, CString&, BOOL* pbIsDescriptor = NULL ); HRESULT GetPropertyCPP ( CString&, CString& ); virtual void SetDocument ( CMainDoc* ); BOOL CreateTheObject ( ); BOOL HasMandatoryProperties( ); void UseSchemaInformation ( BOOL ); COleDsObject* GetParent ( ); void SetParent ( COleDsObject* ); virtual BOOL AddItemSuported ( ); virtual BOOL DeleteItemSuported ( ); virtual BOOL MoveItemSupported ( ); virtual BOOL CopyItemSupported ( ); virtual HRESULT AddItem ( ); virtual HRESULT DeleteItem ( ); virtual HRESULT DeleteItem ( COleDsObject* ); virtual HRESULT MoveItem ( ); virtual HRESULT CopyItem ( ); virtual CString GetDeleteName ( ); virtual DWORD GetChildren( DWORD* pTokens, DWORD dwMaxChildren, CDialog* pQueryStatus, BOOL* pFilters, DWORD dwFilters ); HRESULT CallMethod ( int nMethod ); //HRESULT CallMethod ( CString& strFuncSet, int nMethod ); virtual DWORD GetChildren( IADsContainer* ); virtual DWORD GetChildren( IADsCollection* ); virtual DWORD GetChildren( MEMBERS* ); virtual HRESULT ReleaseIfNotTransient( void ); void AddNamesFromEnum ( IUnknown* pIEnum ); HRESULT ContainerAddItem ( void ); HRESULT ContainerDeleteItem ( COleDsObject* ); HRESULT ContainerMoveItem ( void ); HRESULT ContainerCopyItem ( ); virtual HRESULT GetInterface ( IUnknown** ); /*****************************************/ virtual int GetPropertyCount ( ); virtual CString VarToDisplayString ( int, VARIANT&, BOOL ); virtual BOOL DisplayStringToDispParams ( int, CString&, DISPPARAMS&, BOOL ); virtual BOOL SupportContainer( void ); virtual CString GetAttribute( CLASSATTR ); virtual HRESULT PutAttribute( CLASSATTR, CString& ); virtual CString GetAttribute( int, PROPATTR ); virtual HRESULT PutAttribute( int, PROPATTR, CString& ); virtual CString GetAttribute( int, METHODATTR ); virtual HRESULT PutAttribute( int, METHODATTR, CString& ); protected: HRESULT GetIDispatchForFuncSet( int, IDispatch** ); HRESULT CopyAttributeValue ( ADS_ATTR_INFO* , int nAttribute = -1 ); HRESULT CreateAttributeValue ( ADS_ATTR_INFO* , int nAttribute = -1 ); void CreateClassInfo ( void ); HRESULT GetDirtyAttributes ( PADS_ATTR_INFO* ppAttrDef, DWORD* pdwCount ); void FreeDirtyAttributes ( PADS_ATTR_INFO pAttrDef, DWORD dwCount ); HRESULT CreatePropertiesList ( ); HRESULT ClearPropertiesList ( ); HRESULT GetPropertyFromList ( int nProp, CString& strPropValue ); BOOL IsClassObject ( ); BOOL IsSecurityDescriptor ( VARIANT& rValue, BOOL bUseGetEx ); HRESULT PurgeObject ( IADsContainer* pParent, IUnknown* pIUnknown, LPWSTR pszPrefix = NULL ); protected: IUnknown* m_pIUnk; CString m_strOleDsPath; CString m_strClassName; CString m_strItemName; CString m_strSchemaPath; DWORD m_dwType; BOOL m_bHasChildren; BOOL m_bUseSchemaInformation; BOOL m_bSupportAdd; BOOL m_bSupportDelete; BOOL m_bSupportMove; BOOL m_bSupportCopy; // members for enumerating children DWORD* m_pTokens; DWORD m_dwMaxCount; DWORD m_dwCount; DWORD m_dwFilters; BOOL* m_pFilters; CDialog* m_pQueryStatus; BOOL m_bAbort; CClass* m_pClass; COleDsObject* m_pParent; CMainDoc* m_pDoc; CDWordArray* m_pChildren; CDeleteStatus* m_pDeleteStatus; // operations information; int m_nOperationsCount; CStringArray* m_pOperationNames; REFIID m_refOperations; // extended syntax values CString* m_pCachedValues; BOOL* m_pfReadValues; BOOL* m_pfDirty; DWORD* m_pdwUpdateType; // IPropertyList stuff int m_nPropertiesCount; IUnknown** m_ppPropertiesEntries; }; #include "cdomain.h" #include "cgeneric.h" #include "ccomp.h" #include "cuser.h" #include "cgroup.h" #include "cservice.h" #include "cfserv.h" #include "cpqueue.h" #include "cpjob.h" #include "cpdevice.h" #include "cfshare.h" #include "csession.h" #include "cresourc.h" #include "cnmsp.h" #include "cnmsps.h" #endif