windows-nt/Source/XPSP1/NT/ds/adsi/oledsvw/objects.h
2020-09-26 16:20:57 +08:00

203 lines
7 KiB
C++

#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