IVSSItem.Checkouts Property 

Gets a reference of the IVSSCheckouts type to an object that represents a IVSSCheckouts collection of a file.

Namespace: Microsoft.VisualStudio.SourceSafe.Interop
Assembly: Microsoft.VisualStudio.SourceSafe.Interop (in microsoft.visualstudio.sourcesafe.interop.dll)


ReadOnly Property Checkouts As IVSSCheckouts
Dim instance As IVSSItem
Dim value As IVSSCheckouts

value = instance.Checkouts
IVSSCheckouts Checkouts { get; }
property IVSSCheckouts^ Checkouts {
    IVSSCheckouts^ get ();
/** @property */
IVSSCheckouts get_Checkouts ()
function get Checkouts () : IVSSCheckouts

Property Value

A reference of the IVSSCheckouts type to an object that represents a IVSSCheckouts collection of a file.



HRESULT Checkouts ([out,retval]IVSSCheckouts **ppICheckouts);

If the file is not checked out, the Checkouts collection has no elements. If the file is checked out once, there is a single element in the collection. One file may have multiple checkouts by different users or by the same user to multiple machines.

When you iterate through the Checkouts collection, you move chronologically from the most recent checkout to the earliest one. You can verify whether a particular checkout is the one you want by validating one or more of its properties (Comment, Date, LocalSpec, Machine, Project, UserName, and VersionNumber).

The Checkouts property applies to file objects only, if you attempt to access the Checkouts property of a project object, a run-time error is generated.


The following example demonstrates how to use the Checkouts property by iterating through Checkouts collection.

To perform this test, the file $/A/a.txt must be checked out by two users. Multiple checkouts must be enabled by the VSS Administrator. To enable multiple checkouts, on the Tools menu, click Options, click the General tab, select the Allow Multiple Checkouts check box, and click OK.


using System;
using Microsoft.VisualStudio.SourceSafe.Interop;

public class IVSSTest
    public static void Main()
        // 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, ""); 
        // Get an IVSSItem reference to the file object.
        IVSSItem vssFile = vssDatabase.get_VSSItem("$/A/a.txt", false);

        foreach(IVSSCheckout vssCheckout in vssFile.Checkouts)
            Console.WriteLine("Checked out to : {0}", vssCheckout.Username);
            Console.WriteLine("Comment        : {0}", vssCheckout.Comment);
            Console.WriteLine("Date           : {0}", vssCheckout.Date);
            Console.WriteLine("LocalSpec      : {0}", vssCheckout.LocalSpec);
            Console.WriteLine("Machine        : {0}", vssCheckout.Machine);
            Console.WriteLine("Project        : {0}", vssCheckout.Project);
            Console.WriteLine("VersionNumber  : {0}", vssCheckout.VersionNumber);
        Console.WriteLine("Number of Checkouts: " + vssFile.Checkouts.Count);


Checked out to: Guest 1

Comment: Comment by Guest 1

Date: 10/9/2003 8:58:02 AM

LocalSpec: C:\1\3

Machine: C1480406-A

Project: $/A

VersionNumber: 48

Checked out to: Guest 2

Comment: Comment by Guest 2

Date: 10/9/2003 6:22:10 AM

LocalSpec: C:\1

Machine: C1480400-A

Project: $/A

VersionNumber: 48

Number of Checkouts: 2

See Also


IVSSItem Interface
IVSSItem Members
Microsoft.VisualStudio.SourceSafe.Interop Namespace