1 // VSSItem.cpp : Implementation of CVSSItem
6 #include "VSSVersions.h"
8 /////////////////////////////////////////////////////////////////////////////
11 STDMETHODIMP
CVSSItem::get_Spec (BSTR
* pSpec
)
16 ATLASSERT (m_pSSItem
);
17 *pSpec
= _bstr_t (m_pSSItem
->GetSpec().c_str ()).copy ();
21 STDMETHODIMP
CVSSItem::get_Binary (VARIANT_BOOL
* pbBinary
)
26 ATLASSERT (m_pSSItem
);
27 *pbBinary
= _variant_t (m_pSSItem
->GetBinary());
31 STDMETHODIMP
CVSSItem::put_Binary (VARIANT_BOOL pbBinary
)
35 STDMETHODIMP
CVSSItem::get_Deleted (VARIANT_BOOL
* pbDeleted
)
37 if (pbDeleted
== NULL
)
40 ATLASSERT (m_pSSItem
);
41 *pbDeleted
= _variant_t (m_pSSItem
->GetDeleted());
45 STDMETHODIMP
CVSSItem::put_Deleted (VARIANT_BOOL pbDeleted
)
49 STDMETHODIMP
CVSSItem::get_Type (INT
* piType
)
54 ATLASSERT (m_pSSItem
);
55 *piType
= m_pSSItem
->GetType() == SSITEM_FILE
? VSSITEM_FILE
: VSSITEM_PROJECT
;
59 STDMETHODIMP
CVSSItem::get_LocalSpec (BSTR
* pLocal
)
64 ATLASSERT (m_pSSItem
);
65 *pLocal
= _bstr_t (m_pSSItem
->GetLocalSpec().c_str()).copy ();
69 STDMETHODIMP
CVSSItem::put_LocalSpec (BSTR pLocal
)
73 STDMETHODIMP
CVSSItem::get_Name (BSTR
* pName
)
78 ATLASSERT (m_pSSItem
);
79 *pName
= _bstr_t (m_pSSItem
->GetName().c_str()).copy ();
83 STDMETHODIMP
CVSSItem::put_Name (BSTR pName
)
87 STDMETHODIMP
CVSSItem::get_Parent (IVSSItem
* * ppIParent
)
89 if (ppIParent
== NULL
)
94 STDMETHODIMP
CVSSItem::get_VersionNumber (LONG
* piVersion
)
96 if (piVersion
== NULL
)
99 ATLASSERT (m_pSSItem
);
100 *piVersion
= _variant_t (m_pSSItem
->GetVersionNumber());
104 STDMETHODIMP
CVSSItem::get_Items (VARIANT_BOOL IncludeDeleted
, IVSSItems
* * ppIItems
)
106 if (ppIItems
== NULL
)
109 ATLASSERT (m_pSSItem
);
110 SSItems
* pItems
= m_pSSItem
->GetItems (IncludeDeleted
);
112 CComObject
<CVSSItems
>* pVssItems
;
113 HRESULT hRes
= CComObject
<CVSSItems
>::CreateInstance(&pVssItems
);
118 pVssItems
->Init (pItems
);
120 *ppIItems
= pVssItems
;
124 STDMETHODIMP
CVSSItem::Get (BSTR
* Local
, LONG iFlags
)
131 STDMETHODIMP
CVSSItem::Checkout (BSTR Comment
, BSTR Local
, LONG iFlags
)
135 STDMETHODIMP
CVSSItem::Checkin (BSTR Comment
, BSTR Local
, LONG iFlags
)
139 STDMETHODIMP
CVSSItem::UndoCheckout (BSTR Local
, LONG iFlags
)
143 STDMETHODIMP
CVSSItem::get_IsCheckedOut (LONG
* piStatus
)
145 if (piStatus
== NULL
)
148 ATLASSERT (m_pSSItem
);
149 *piStatus
= _variant_t (m_pSSItem
->GetIsCheckedOut());
153 STDMETHODIMP
CVSSItem::get_Checkouts (IVSSCheckouts
* * ppICheckouts
)
155 if (ppICheckouts
== NULL
)
160 STDMETHODIMP
CVSSItem::get_IsDifferent (BSTR Local
, VARIANT_BOOL
* pbDifferent
)
162 if (pbDifferent
== NULL
)
167 STDMETHODIMP
CVSSItem::Add (BSTR Local
, BSTR Comment
, LONG iFlags
, IVSSItem
* * ppIItem
)
174 STDMETHODIMP
CVSSItem::NewSubproject (BSTR Name
, BSTR Comment
, IVSSItem
* * ppIItem
)
181 STDMETHODIMP
CVSSItem::Share (IVSSItem
* pIItem
, BSTR Comment
, LONG iFlags
)
185 STDMETHODIMP
CVSSItem::Destroy ()
189 STDMETHODIMP
CVSSItem::Move (IVSSItem
* pINewParent
)
193 STDMETHODIMP
CVSSItem::Label (BSTR Label
, BSTR Comment
)
197 STDMETHODIMP
CVSSItem::get_Versions (LONG iFlags
, IVSSVersions
* * pIVersions
)
199 if (pIVersions
== NULL
)
202 CComObject
<CVSSVersions
>* pVssVersions
;
203 HRESULT hRes
= CComObject
<CVSSVersions
>::CreateInstance(&pVssVersions
);
207 pVssVersions
->AddRef();
209 *pIVersions
= pVssVersions
;
213 STDMETHODIMP
CVSSItem::get_Version (VARIANT Version
, IVSSItem
* * ppIItem
)
221 STDMETHODIMP
CVSSItem::get_Links (IVSSItems
* * ppIItems
)
223 if (ppIItems
== NULL
)
228 STDMETHODIMP
CVSSItem::Branch (BSTR Comment
, LONG iFlags
, IVSSItem
* * ppIItem
)