////////////////////////////////////////////////////////////////////////////// // // Copyright(C) 2000 Microsoft Corporation all rights reserved. // // Module: Objects.H // // Project: Windows 2000 IAS // // Description: Declaration of the CObjects class // // Author: tperraut // // Revision 02/24/2000 created // ////////////////////////////////////////////////////////////////////////////// #ifndef _OBJECT_H_3A179338_CF1E_4932_8663_9F6AE0F03AA5 #define _OBJECT_H_3A179338_CF1E_4932_8663_9F6AE0F03AA5 #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "nocopy.h" #include "basecommand.h" class CObjects : private NonCopyable { public: ////////////////////////////////////////////////////////////////////////// // Constructor ////////////////////////////////////////////////////////////////////////// explicit CObjects(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////////// // Destructor ////////////////////////////////////////////////////////////////////////// virtual ~CObjects() throw(); ////////////////////////////////////////////////////////////////////////// // GetObject ////////////////////////////////////////////////////////////////////////// HRESULT GetObject(_bstr_t& Name, LONG& Identity, LONG Parent); ////////////////////////////////////////////////////////////////////////// // GetNextObject ////////////////////////////////////////////////////////////////////////// HRESULT GetNextObject( _bstr_t& Name, LONG& Identity, LONG Parent, LONG Index ) throw(); ////////////////////////////////////////////////////////////////////////// // WalkPath ////////////////////////////////////////////////////////////////////////// void WalkPath(LPCWSTR Path, LONG& Identity, LONG Parent = 1); ////////////////////////////////////////////////////////////////////////// // GetObjectIdentity ////////////////////////////////////////////////////////////////////////// HRESULT GetObjectIdentity( _bstr_t& Name, LONG& Parent, LONG Identity ) throw(); ////////////////////////////////////////////////////////////////////////// // GetObjectNameParent ////////////////////////////////////////////////////////////////////////// HRESULT GetObjectNameParent( const _bstr_t& Name, LONG Parent, LONG& Identity ) throw(); ////////////////////////////////////////////////////////////////////////// // DeleteObject ////////////////////////////////////////////////////////////////////////// HRESULT DeleteObject(LONG Identity); ////////////////////////////////////////////////////////////////////////// // InsertObject ////////////////////////////////////////////////////////////////////////// BOOL InsertObject( const _bstr_t& Name, LONG Parent, LONG& Identity ); private: ////////////////////////////////////////////////////////////////////////// // OBJECTS COMMAND CLASSES START ////////////////////////////////////////////////////////////////////////// struct CBaseObjectConst { static const int NAME_SIZE = 256; }; ////////////////////////////////////////////////////////////////////////// // class CObjectsAccSelectParent ////////////////////////////////////////////////////////////////////////// class CObjectsAccSelectParent : public CBaseObjectConst { protected: LONG m_Identity; WCHAR m_Name[NAME_SIZE]; LONG m_Parent; BEGIN_COLUMN_MAP(CObjectsAccSelectParent) COLUMN_ENTRY(1, m_Identity) COLUMN_ENTRY(2, m_Name) COLUMN_ENTRY(3, m_Parent) END_COLUMN_MAP() WCHAR m_NameParam[NAME_SIZE]; LONG m_ParentParam; BEGIN_PARAM_MAP(CObjectsAccSelectParent) COLUMN_ENTRY(1, m_ParentParam) END_PARAM_MAP() DEFINE_COMMAND(CObjectsAccSelectParent, L" \ SELECT * \ FROM Objects \ WHERE Parent = ?"); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandGet ////////////////////////////////////////////////////////////////////////// class CObjectsCommandGet : public CBaseCommand > { public: explicit CObjectsCommandGet(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // GetObject ////////////////////////////////////////////////////////////////////// HRESULT GetObject(_bstr_t& Name, LONG& Identity, LONG Parent); ////////////////////////////////////////////////////////////////////// // GetObject overloaded ////////////////////////////////////////////////////////////////////// HRESULT GetObject( _bstr_t& Name, LONG& Identity, LONG Parent, LONG Index); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsAccSelectIdentity ////////////////////////////////////////////////////////////////////////// class CObjectsAccSelectIdentity : public CBaseObjectConst { protected: LONG m_Identity; WCHAR m_Name[NAME_SIZE]; LONG m_Parent; BEGIN_COLUMN_MAP(CObjectsAccSelectIdentity) COLUMN_ENTRY(1, m_Identity) COLUMN_ENTRY(2, m_Name) COLUMN_ENTRY(3, m_Parent) END_COLUMN_MAP() LONG m_IdentityParam; BEGIN_PARAM_MAP(CObjectsAccSelectIdentity) COLUMN_ENTRY(1, m_IdentityParam) END_PARAM_MAP() DEFINE_COMMAND(CObjectsAccSelectIdentity, L" \ SELECT * \ FROM Objects \ WHERE Identity = ?"); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandIdentity ////////////////////////////////////////////////////////////////////////// class CObjectsCommandIdentity : public CBaseCommand > { public: explicit CObjectsCommandIdentity(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // GetObjectIdentity ////////////////////////////////////////////////////////////////////// HRESULT GetObjectIdentity( _bstr_t& Name, LONG& Parent, LONG Identity ); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsAccSelectNameParent ////////////////////////////////////////////////////////////////////////// class CObjectsAccSelectNameParent : public CBaseObjectConst { protected: LONG m_Identity; WCHAR m_Name[NAME_SIZE]; LONG m_Parent; BEGIN_COLUMN_MAP(CObjectsAccSelectNameParent) COLUMN_ENTRY(1, m_Identity) COLUMN_ENTRY(2, m_Name) COLUMN_ENTRY(3, m_Parent) END_COLUMN_MAP() WCHAR m_NameParam[NAME_SIZE]; LONG m_ParentParam; BEGIN_PARAM_MAP(CObjectsAccSelectNameParent) COLUMN_ENTRY(1, m_NameParam) COLUMN_ENTRY(2, m_ParentParam) END_PARAM_MAP() DEFINE_COMMAND(CObjectsAccSelectNameParent, L" \ SELECT * \ FROM Objects \ WHERE Name = ? AND Parent = ?"); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandNameParent ////////////////////////////////////////////////////////////////////////// class CObjectsCommandNameParent : public CBaseCommand > { public: explicit CObjectsCommandNameParent(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // GetObjectNameParent // // works on CObjectsAccSelectNameParent ////////////////////////////////////////////////////////////////////// HRESULT GetObjectNameParent( const _bstr_t& Name, LONG Parent, LONG& Identity ); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandPath ////////////////////////////////////////////////////////////////////////// class CObjectsCommandPath : public CBaseCommand > { public: explicit CObjectsCommandPath(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // WalkPath ////////////////////////////////////////////////////////////////////// void WalkPath(LPCWSTR Path, LONG& Identity, LONG Parent = 1); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsAccDelete ////////////////////////////////////////////////////////////////////////// class CObjectsAccDelete : public CBaseObjectConst { protected: LONG m_IdentityParam; BEGIN_PARAM_MAP(CObjectsAccDelete) COLUMN_ENTRY(1, m_IdentityParam) END_PARAM_MAP() DEFINE_COMMAND(CObjectsAccDelete, L" \ DELETE \ FROM Objects \ WHERE Identity = ?"); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandDelete ////////////////////////////////////////////////////////////////////////// class CObjectsCommandDelete : public CBaseCommand > { public: explicit CObjectsCommandDelete(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // DeleteObject // // works on CObjectsAccDelete ////////////////////////////////////////////////////////////////////// HRESULT DeleteObject(LONG Identity); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsAccInsert ////////////////////////////////////////////////////////////////////////// class CObjectsAccInsert : public CBaseObjectConst { protected: // You may wish to call this function if you are inserting a record // and wish to // initialize all the fields, if you are not going to explicitly // set all of them. void ClearRecord() { memset(this, 0, sizeof(*this)); } WCHAR m_NameParam[NAME_SIZE]; LONG m_ParentParam; BEGIN_PARAM_MAP(CObjectsAccInsert) COLUMN_ENTRY(1, m_NameParam) COLUMN_ENTRY(2, m_ParentParam) END_PARAM_MAP() DEFINE_COMMAND(CObjectsAccInsert, L" \ INSERT INTO Objects \ (Name, Parent) \ VALUES (?, ?)"); }; ////////////////////////////////////////////////////////////////////////// // class CObjectsCommandInsert ////////////////////////////////////////////////////////////////////////// class CObjectsCommandInsert : public CBaseCommand > { public: explicit CObjectsCommandInsert(CSession& CurrentSession); ////////////////////////////////////////////////////////////////////// // InsertObject // // works on CObjectsAccInsert ////////////////////////////////////////////////////////////////////// BOOL InsertObject( const _bstr_t& Name, LONG Parent, LONG& Identity ); private: CSession& m_Session; }; CObjectsCommandPath m_ObjectsCommandPath; CObjectsCommandIdentity m_ObjectsCommandIdentity; CObjectsCommandDelete m_ObjectsCommandDelete; CObjectsCommandNameParent m_ObjectsCommandNameParent; CObjectsCommandGet m_ObjectsCommandGet; CObjectsCommandInsert m_ObjectsCommandInsert; }; #endif // _OBJECT_H_3A179338_CF1E_4932_8663_9F6AE0F03AA5