Create your own VSS explorer using IVSS

As a percentage of the general population, I don't suspect too many of you will find this very helpful but you can download a Visual Studio .NET 2002 (upgradable to 2003) solution, 'IVSS Sample' (SourceSafe API) that demonstrates how to build a custom GUI for a Visual SourceSafe database.  The sample code is written in both Visual Basic and C#.  Note to self:  need to get this sample running, refactor interesting bits into more digestible chunks, document intro steps and beef up the inline comments.  For those of you who have already downloaded and used this sample, I'd really love to hear what you have to say about it.  Worthy?  Unworthy?  Did you encounter any issues and if so, what was the workaround?

In related news, Michael Carter recently reported the following in a post on the public VSNET.VSS newsgroup (where I have been lurking like an earthworm for one day too long): Has anyone else noticed that the MSSCCI documention is included in the VSIP 2003 SDK Extras kit? It even includes a sample project.

I didn't see any kind of non-disclosure in the documentation folder.

I signed the original NDA, but it seems like Microsoft has finally decided to open it up.

This will definitely be helpful for those people that want to create source control providers and make it open source.

Anyway, if you haven't already done so, sign up for the VSIP Extras Beta at

Michael, you're right.  It took us awhile to convince whoever it was we had to convince but Joy to the World, the separate MSSCCI non-disclosure agreement (NDA) is no longer required.  And Yes! You can even talk about MSSCCI in public now.  🙂 🙂  ...i think.

Just to be safe:   This posting is provided "AS IS" with no warranties, and confers no rights.

Comments (12)

  1. Karthik Jayaram says:


    This post caught my eyes when I was searching (without success) for VSS automation for my requirement.

    My requirement is that

    1> I need to provide links to the documents in the VSS server. This I was able to do using VSS API’s exposed method GET and assigning the file to the link using NAVIGATEURL property in ASP.NET.

    I had no problem with this.

    2> I got struck with problems when I wanted to provide a user friendly way to select the file in VSS. ( I need to store the path of the file in VSS in my database).

    My idea is to provide the Windows Explorer type File Open Dialog for VSS files. Can you help me in this regard?


  2. Lance says:

    I found this obscure project nearly a year ago when it was first posted, and when I was knee-deep in writing my own VSS.NET Automation libraries.

    I had been digging and clawing for months to understand the meager documentation on various flags and trying to eek-out clues to the obscure behavior of each method and property in the VSS components, when that sample project suddenly "appeared".

    As I was now 90% done with my class-libary, I was heartbroken to see that all my work had been superceded by this sample. 😐

    However, I finally shoved-aside my pride and started to dig into the code, and found much to like, and some that I didnt like.

    Here are a few things I recall: (my best recollection)


    Fairly full set of wrappers for everything you can do in the normal VSS Explorer.

    Both VB.NET and C# versions.

    Excellent visual remake of the original VSS Explorer.


    String return-value for all public methods so that the output can be rendered in output window. (I went the route of exposing an "OnCommand" event that each function used.)

    Class-library is Instance-type only. This is fine for the IVSS sample, but restrictive if you wanted to reuse the VSS Automation library in other tools. I exposed many duplicate functions as Static where it made sense.

    Self-coded recursion vs. Recursion flag. The IVSS Sample uses its own looping mechanisms (foreach mostly) to recurse into sub-projects. However, VSS Automation allows you to pass a flag that enables recursion for many of its method calls. I’m sure he was just compensating for the inconsistent behavior of the Recursion flag.

    Hope these coments help…


  3. Roelof Blom says:

    Hi Korby,

    Regarding your statement on the NDA for MSSCCI not being required anymore, is there someplace/someone@MSFT that can restate this somewhat more offically? Or do you known of any plans to include in a future release of the Platform SDK, which will make it very public. I have the VSIP Extras and thus access to it now, but can it be used freely now with signing the old NDA?


  4. Anonymous says:

    Why do developers still use VSS?

  5. If you are a member of the Visual Studio Integration Partner (VSIP program), you can download MSSCCI from the VSIP Extras site and use it per the terms of the VSIP program. Basically, we just bundled MSSCCI into the VSIP program.

  6. Terry Humphries says:


    Does that mean that people covered by the NDA are now free to talk about the interface and distribute thier source code?


  7. Brad Merrill says:

    Yes, you can now talk about the VSIP interfaces publicly. You are correct that until the VSIP SDK went to public download, that was not allowed, but part of that says once we make the information publicly available, you are free to do so as well.

    Note that actual bits are still governed by the VSIP license.


  8. Since the VSIP program makes things more publically available, does that mean I am no longer bound by the old SCC NDA (which I signed)?

    In particular can I now take code written to the SCC API and make it open source?

  9. Brad Merrill says:

    on licensing:

    The short answer is no. Software created using the VSIP SDK is governed by the VSIP license, and in this particular case Section 2(b)(x).

  10. mudigal says:

    The application was really good… but it didnot solve my purpose…

    I want to know as to how many lines have been added, deleted or edited to a file. So I want the method where in the differences are checked for and put in soem data type..

    If anybody gets to know it can you please mail to



Skip to main content