/****************************************************************** DFSJnPt.H -- WMI provider class definition Copyright (c) 2000-2001 Microsoft Corporation, All Rights Reserved Description: Class definition of DFS Junction Point/Links provider Class *******************************************************************/ #ifndef _CDFSJNPT_H_ #define _CDFSJNPT_H_ // Bitmaps for the properties #define DFSJNPT_ALL_PROPS 0xFFFFFFFF #define DFSJNPT_PROP_DfsEntryPath 0x00000001 //#define DFSJNPT_PROP_NoOfStorages 0x00000002 //#define DFSJNPT_PROP_ServerName 0x00000004 //#define DFSJNPT_PROP_ShareName 0x00000008 #define DFSJNPT_PROP_State 0x00000010 #define DFSJNPT_PROP_Comment 0x00000020 #define DFSJNPT_PROP_Timeout 0x00000040 #define DFSJNPT_PROP_Caption 0x00000080 // #defines for the property names #define DFSNAME L"Name" #define DFSENTRYPATH L"DFSENTRYPATH" #define SERVERNAME L"SERVERNAME" #define SHARENAME L"SHARENAME" #define STATE L"STATE" #define COMMENT L"Description" #define TIMEOUT L"TIMEOUT" #define LINKNAME L"LinkName" #define CAPTION L"Caption" class CDfsJnPt : public Provider { private: HRESULT EnumerateAllJnPts ( MethodContext *pMethodContext, DWORD dwPropertiesReq ); HRESULT FindAndSetDfsEntry ( LPCWSTR a_Key, DWORD dwPropertiesReq, CInstance *pInstance, DWORD eOperation ); HRESULT DeleteDfsJnPt ( PDFS_INFO_4 pJnPtBuf ); HRESULT UpdateDfsJnPt ( const CInstance &Instance, DWORD dwOperation ); NET_API_STATUS AddDfsJnPt ( LPWSTR a_DfsEntry, LPWSTR a_ServerName, LPWSTR a_ShareName, LPWSTR a_Comment ); HRESULT LoadDfsJnPt ( DWORD dwPropertiesReq, CInstance *pInstance, PDFS_INFO_4 pJnPtBuf, bool bRoot ); void SetRequiredProperties ( CFrameworkQuery &Query, DWORD &dwPropertiesReq ); HRESULT CheckParameters ( const CInstance &a_Instance ,int iStatus ) ; BOOL IsDfsRoot ( LPCWSTR lpKey ); protected: HRESULT EnumerateInstances ( MethodContext *pMethodContext, long lFlags = 0L ) ; HRESULT GetObject ( CInstance *pInstance, long lFlags, CFrameworkQuery &Query ) ; HRESULT PutInstance ( const CInstance& Instance, long lFlags = 0L ) ; HRESULT DeleteInstance ( const CInstance& Instance, long lFlags = 0L) ; HRESULT ExecMethod ( const CInstance& a_Instance, const BSTR a_MethodName , CInstance *a_InParams , CInstance *a_OutParams , long a_Flags ); public: CDfsJnPt ( LPCWSTR lpwszClassName, LPCWSTR lpwszNameSpace ) ; virtual ~CDfsJnPt () ; private: CHString m_ComputerName; enum { eGet, eDelete, eModify, eAdd, eUpdate }; } ; #endif