Share via


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