IVSSVersions.GetEnumerator MethodÂ
Gets an enumerator.
Namespace: Microsoft.VisualStudio.SourceSafe.Interop
Assembly: Microsoft.VisualStudio.SourceSafe.Interop (in microsoft.visualstudio.sourcesafe.interop.dll)
Syntax
'Declaration
Function GetEnumerator As IEnumerator
'Usage
Dim instance As IVSSVersions
Dim returnValue As IEnumerator
returnValue = instance.GetEnumerator
IEnumerator GetEnumerator ()
IEnumerator^ GetEnumerator ()
IEnumerator GetEnumerator ()
function GetEnumerator () : IEnumerator
Return Value
An enumerator.
Remarks
[IDL]
HRESULT _NewEnum ([out,retval]IUnknown **ppIEnum);
This method is used explicitly in Visual C++. Visual C# and Visual Basic use the foreach loop that uses the GetEnumerator method internally.
Example
The following example demonstrates how to iterate through the IVSSVersions collection of a file using a foreach loop that uses the GetEnumerator method internally.
using System;
using Microsoft.VisualStudio.SourceSafe.Interop;
public class IVSSTest
{
public static void Main()
{
string testFile = "$/A/test.txt";
// Create a VSSDatabase object.
IVSSDatabase vssDatabase = new VSSDatabase();
// Open a VSS database using network name
// for automatic user login.
vssDatabase.Open(@"C:\VSSTestDB\srcsafe.ini",
Environment.UserName, "");
// Test Version:
Console.WriteLine("\n$/A/test.txt versions: \n");
IVSSItem vssFile = vssDatabase.get_VSSItem(testFile, false);
Console.WriteLine("-------------------------------------------------");
Console.WriteLine("{0,-5}{1,-9}{2,-15}{3,-7}{4}", "Ver",
"Label", "Label Comment", "User", "Checked Out");
Console.WriteLine("-------------------------------------------------");
foreach(IVSSVersion vssVersion in vssFile.get_Versions(0))
{
string status;
if((VSSFileStatus)vssVersion.VSSItem.IsCheckedOut ==
VSSFileStatus.VSSFILE_NOTCHECKEDOUT)
status = "NO";
else
status = "YES";
Console.WriteLine("{0,-5}{1,-9}{2,-15}{3,-7}{4}",
vssVersion.VersionNumber, vssVersion.Label,
vssVersion.LabelComment, vssVersion.Username, status);
}
Console.WriteLine("-------------------------------------------------");
}
}
Output:
$/A/test.txt versions:
-------------------------------------------------
Ver Label Label Comment User Checked Out
-------------------------------------------------
3 Lbl2 Attaching Lbl2 Guest1 NO
2 Guest1 NO
1 Lbl1 Attaching Lbl1 Guest1 NO
See Also
Reference
IVSSVersions Interface
IVSSVersions Members
Microsoft.VisualStudio.SourceSafe.Interop Namespace