Microsoft KB Archive/193939

= How To Use a Project and File Object's SCC PEMs =

Article ID: 193939

Article Last Modified on 3/10/2005

-

APPLIES TO


 * Microsoft Visual SourceSafe 6.0 Standard Edition
 * Microsoft Visual FoxPro 6.0 Professional Edition

-



This article was previously published under Q193939



SUMMARY
This article illustrates how you can use the various source code control related properties and methods of the project and the file object.



MORE INFORMATION
All of the source code control properties and methods are associated with the file object and only one property, read only, is associated with the project object. You can get access to all the source control functionality through the file object.

Presently, using the current set of project object properties, events, and methods (PEM's), a project cannot be added to SCC programmatically. This operation has to be done visually using the "Add project to source control" option from the project menu.

The source control property associated with the project object is SCCProvider, which contains an empty string if the project is not under source control. Otherwise, the source control property contains the name of the source control provider associated with the project. This property is read only at run and design time and is automatically updated by Visual FoxPro whenever a project is added to or removed from source control. The following is an example of using the SCCProvider property to find out whether or not a project is under source control:

curProj = _VFP.ActiveProject IF EMPTY(curProj.SCCProvider) MESSAGEBOX("Project is not under SourceCode Control"+;              chr(13)+space(18)+"Unable to proceed")

ELSE MESSAGEBOX("Project is under SourceCode Control")

ENDIF RETURN

Following are examples of how to use the file object SCC properties and methods.

SCCSTATUS
This property is read only at design and run time. It contains a numeric representation of the source control status of a file as follows:

  No.   Source Control Status

0    File is not Source Controlled (SCCFILE_NOTCONTROLLED) 1    File is Source Controlled and Checked In (SCCFILE_NOTCHECKEDOUT) 2    File Checked Out to Current User (SCCFILE_CHECKEDOUTCU) 3    File Checked Out to Other than Current User (SCCFILE_CHECKEDOUTOU) 4    File has Merge Conflict (SCCFILE_MERGECONFLICT) 5    File Merged without conflict (SCCFILE_MERGE) 6    File Checked Out to Multiple Users (SCCFILE_CHECKEDOUTMU) You can use the status property to make sure that a source control operation can or should be performed on a specific file. To check the contents of the property for a file, you can use the following sample code:

FUNCTION gSCCStat PARAMETERS fName CurProj = _VFP.ActiveProject FOR i = 1 to CurProj.Files.Count IF UPPER(fname) $ UPPER(CurProj.Files(i).Name) IF CurProj.Files(i).SCCStatus = 0 MESSAGEBOX("File "+fname+" Is not Source Controlled") fSCCStatus=0 ELSE fSCCStatus = CurProj.Files(i).SCCStatus ENDIF ENDIF ENDFOR RETURN fSCCStatus

Methods
When you invoke any of the following methods, the source control dialog box for the specific source control function comes up. The dialog box enables you to perform the function on a single or multiple files. The source control methods do not work if the project is not under source control.

  Function: Description -

AddToSCC: Adds file(s) to Source Control Example: _VFP.ActiveProject.Files(1).AddToSCC

RemoveFromSCC: Removes file(s) from Source Control Example: _VFP.ActiveProject.Files(1).RemoveFromSCC

CheckIn: Allows CheckIn of file(s) Example: _VFP.ActiveProject.Files(1).CheckIn

CheckOut: Allows CheckOut of file(s) Example: _VFP.ActiveProject.Files(1).CheckOut

UndoCheckOut: Allows Undo CheckOut for file(s) Example: _VFP.ActiveProject.Files(1).UndoCheckOut

GetLatestVersion: Gets the Latest version of file(s) Example: _VFP.ActiveProject.Files(1).GetLatestVersion In the examples above, the file represented by FILES(1) is selected in the source control dialog file list if the function can be performed on the file. Otherwise, the very first file in the list will be selected. In the dialog box, you can select to perform the function on one or multiple files.

