Add Dirk Luetjen's ssphys libraries and command-line tool
[vss2svn.git] / ssphys / SSAPI / VSSDatabase.h
blob49f8ebd26a21019439173317de7c460228ed8dcd
1 // VSSDatabase.h : Declaration of the CVSSDatabase
3 #ifndef __VSSDATABASE_H_
4 #define __VSSDATABASE_H_
6 #include "resource.h" // main symbols
7 #include <SSPhysLib\SSDatabase.h>
9 /////////////////////////////////////////////////////////////////////////////
10 // CVSSDatabase
11 class ATL_NO_VTABLE CVSSDatabase :
12 public CComObjectRootEx<CComSingleThreadModel>,
13 public CComCoClass<CVSSDatabase, &CLSID_VSSDatabase>,
14 public IDispatchImpl<IVSSDatabase, &IID_IVSSDatabase, &LIBID_SourceSafeTypeLib>
16 public:
17 CVSSDatabase()
21 DECLARE_REGISTRY_RESOURCEID(IDR_VSSDATABASE)
23 DECLARE_PROTECT_FINAL_CONSTRUCT()
25 BEGIN_COM_MAP(CVSSDatabase)
26 //DEL COM_INTERFACE_ENTRY(IDispatch)
27 COM_INTERFACE_ENTRY2(IDispatch, IVSSDatabase)
28 COM_INTERFACE_ENTRY(IVSSDatabase)
29 END_COM_MAP()
31 public:
32 // IVSSDatabase
33 STDMETHOD(get_ProjectRightsEnabled)(VARIANT_BOOL * pEnabled);
34 STDMETHOD(put_ProjectRightsEnabled)(VARIANT_BOOL pEnabled);
35 STDMETHOD(get_DefaultProjectRights)(LONG * pRights);
36 STDMETHOD(put_DefaultProjectRights)(LONG pRights);
37 STDMETHOD(AddUser)(BSTR User, BSTR Password, VARIANT_BOOL ReadOnly, IVSSUser * * ppIUser);
38 STDMETHOD(get_User)(BSTR Name, IVSSUser * * ppIUser);
39 STDMETHOD(get_Users)(IVSSUsers * * ppIUsers);
41 // IVSSDatabaseOld
42 STDMETHOD(Open)(BSTR SrcSafeIni, BSTR Username, BSTR Password);
43 STDMETHOD(get_SrcSafeIni)(BSTR * pSrcSafeIni);
44 STDMETHOD(get_DatabaseName)(BSTR * pDatabaseName);
45 STDMETHOD(get_Username)(BSTR * pUsername);
46 STDMETHOD(get_CurrentProject)(BSTR * pPrj);
47 STDMETHOD(put_CurrentProject)(BSTR pPrj);
48 STDMETHOD(get_VSSItem)(BSTR Spec, VARIANT_BOOL Deleted, IVSSItem * * ppIVSSItem);
50 private:
51 SSDatabase m_Database;
54 #endif //__VSSDATABASE_H_