mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
7.0 KiB
202 lines
7.0 KiB
|
|
|
|
#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
|