Add Dirk Luetjen's ssphys libraries and command-line tool
[vss2svn.git] / ssphys / SSAPI / VSSItem.h
blob11da827013b572bcb34484e301a1337bf773cf92
1 // VSSItem.h : Declaration of the CVSSItem
3 #ifndef __VSSITEM_H_
4 #define __VSSITEM_H_
6 #include "resource.h" // main symbols
7 #include <SSPhysLib\SSItem.h>
9 /////////////////////////////////////////////////////////////////////////////
10 // CVSSItem
11 class ATL_NO_VTABLE CVSSItem :
12 public CComObjectRootEx<CComSingleThreadModel>,
13 public CComCoClass<CVSSItem, &CLSID_VSSItem>,
14 public IDispatchImpl<IVSSItem, &IID_IVSSItem, &LIBID_SourceSafeTypeLib>
16 public:
17 CVSSItem()
18 : m_pSSItem (NULL)
22 void Init (SSItem* pItem)
24 m_pSSItem = pItem;
27 private:
28 SSItem* m_pSSItem;
30 public:
31 DECLARE_REGISTRY_RESOURCEID(IDR_VSSITEM)
33 DECLARE_PROTECT_FINAL_CONSTRUCT()
35 BEGIN_COM_MAP(CVSSItem)
36 //DEL COM_INTERFACE_ENTRY(IDispatch)
37 COM_INTERFACE_ENTRY2(IDispatch, IVSSItem)
38 COM_INTERFACE_ENTRY(IVSSItem)
39 END_COM_MAP()
41 // IVSSItem
42 public:
43 // IVSSItemOld
44 STDMETHOD(get_Spec)(BSTR * pSpec);
45 STDMETHOD(get_Binary)(VARIANT_BOOL * pbBinary);
46 STDMETHOD(put_Binary)(VARIANT_BOOL pbBinary);
47 STDMETHOD(get_Deleted)(VARIANT_BOOL * pbDeleted);
48 STDMETHOD(put_Deleted)(VARIANT_BOOL pbDeleted);
49 STDMETHOD(get_Type)(INT * piType);
50 STDMETHOD(get_LocalSpec)(BSTR * pLocal);
51 STDMETHOD(put_LocalSpec)(BSTR pLocal);
52 STDMETHOD(get_Name)(BSTR * pName);
53 STDMETHOD(put_Name)(BSTR pName);
54 STDMETHOD(get_Parent)(IVSSItem * * ppIParent);
55 STDMETHOD(get_VersionNumber)(LONG * piVersion);
56 STDMETHOD(get_Items)(VARIANT_BOOL IncludeDeleted, IVSSItems * * ppIItems);
57 STDMETHOD(Get)(BSTR * Local, LONG iFlags);
58 STDMETHOD(Checkout)(BSTR Comment, BSTR Local, LONG iFlags);
59 STDMETHOD(Checkin)(BSTR Comment, BSTR Local, LONG iFlags);
60 STDMETHOD(UndoCheckout)(BSTR Local, LONG iFlags);
61 STDMETHOD(get_IsCheckedOut)(LONG * piStatus);
62 STDMETHOD(get_Checkouts)(IVSSCheckouts * * ppICheckouts);
63 STDMETHOD(get_IsDifferent)(BSTR Local, VARIANT_BOOL * pbDifferent);
64 STDMETHOD(Add)(BSTR Local, BSTR Comment, LONG iFlags, IVSSItem * * ppIItem);
65 STDMETHOD(NewSubproject)(BSTR Name, BSTR Comment, IVSSItem * * ppIItem);
66 STDMETHOD(Share)(IVSSItem * pIItem, BSTR Comment, LONG iFlags);
67 STDMETHOD(Destroy)();
68 STDMETHOD(Move)(IVSSItem * pINewParent);
69 STDMETHOD(Label)(BSTR Label, BSTR Comment);
70 STDMETHOD(get_Versions)(LONG iFlags, IVSSVersions * * pIVersions);
71 STDMETHOD(get_Version)(VARIANT Version, IVSSItem * * ppIItem);
73 // IVSSItem
74 STDMETHOD(get_Links)(IVSSItems * * ppIItems);
75 STDMETHOD(Branch)(BSTR Comment, LONG iFlags, IVSSItem * * ppIItem);
79 #endif //__VSSITEM_H_