unit SourceSafeTypeLib_TLB;

// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// PASTLWTR : 1.2
// File generated on 6/28/2004 4:56:42 PM from Type Library described below.

// ************************************************************************  //
// Type Lib: D:\Users\ZylVSS\SSAPI.DLL (1)
// LIBID: {783CD4E0-9D54-11CF-B8EE-00608CC9A71F}
// LCID: 0
// Helpfile: D:\Users\ZylVSS\ssauto.hlp
// HelpString: Microsoft SourceSafe 6.0 Type Library
// DepndLst: 
//   (1) v2.0 stdole, (E:\WINDOWS\System32\stdole2.tlb)
// Errors:
//   Hint: Symbol 'Type' renamed to 'type_'
//   Hint: Member 'Label' of 'IVSSItemOld' changed to 'Label_'
//   Hint: Parameter 'Label' of IVSSItemOld.Label changed to 'Label_'
//   Hint: Member 'Label' of 'IVSSVersionOld' changed to 'Label_'
//   Hint: Parameter 'var' of IVSSEventsOld.BeforeEvent changed to 'var_'
//   Hint: Parameter 'var' of IVSSEventsOld.AfterEvent changed to 'var_'
//   Hint: Parameter 'var' of IVSSEvents.BeforeEvent changed to 'var_'
//   Hint: Parameter 'var' of IVSSEvents.AfterEvent changed to 'var_'
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface

uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;
  

// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLASS_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
const
  // TypeLibrary Major and minor versions
  SourceSafeTypeLibMajorVersion = 5;
  SourceSafeTypeLibMinorVersion = 1;

  LIBID_SourceSafeTypeLib: TGUID = '{783CD4E0-9D54-11CF-B8EE-00608CC9A71F}';

  IID_IVSSItemOld: TGUID = '{783CD4E1-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSItem: TGUID = '{2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSSItems: TGUID = '{783CD4E5-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSCheckouts: TGUID = '{8903A770-F55F-11CF-9227-00AA00A1EB95}';
  IID_IVSSCheckout: TGUID = '{783CD4E6-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSVersions: TGUID = '{783CD4E7-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSVersionOld: TGUID = '{783CD4E8-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSVersion: TGUID = '{2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSSUsers: TGUID = '{2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSSUser: TGUID = '{2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSSDatabaseOld: TGUID = '{783CD4E2-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSDatabase: TGUID = '{2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95}';
  CLASS_VSSItem: TGUID = '{783CD4E3-9D54-11CF-B8EE-00608CC9A71F}';
  CLASS_VSSVersion: TGUID = '{783CD4EC-9D54-11CF-B8EE-00608CC9A71F}';
  CLASS_VSSCheckout: TGUID = '{2A0DE0E0-2E9F-11D0-9236-00AA00A1EB95}';
  CLASS_VSSDatabase: TGUID = '{783CD4E4-9D54-11CF-B8EE-00608CC9A71F}';
  CLASS_VSSUser: TGUID = '{2A0DE0E5-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSSEventsOld: TGUID = '{783CD4E9-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSEvents: TGUID = '{2A0DE0E8-2E9F-11D0-9236-00AA00A1EB95}';
  IID_IVSS: TGUID = '{783CD4EB-9D54-11CF-B8EE-00608CC9A71F}';
  IID_IVSSEventHandler: TGUID = '{783CD4EA-9D54-11CF-B8EE-00608CC9A71F}';
  CLASS_VSSApp: TGUID = '{2A0DE0E1-2E9F-11D0-9236-00AA00A1EB95}';

// *********************************************************************//
// Declaration of Enumerations defined in Type Library                    
// *********************************************************************//
// Constants for enum VSSFlags
type
  VSSFlags = TOleEnum;
const
  VSSFLAG_USERRONO = $00000001;
  VSSFLAG_USERROYES = $00000002;
  VSSFLAG_TIMENOW = $00000004;
  VSSFLAG_TIMEMOD = $00000008;
  VSSFLAG_TIMEUPD = $0000000C;
  VSSFLAG_EOLCR = $00000010;
  VSSFLAG_EOLLF = $00000020;
  VSSFLAG_EOLCRLF = $00000030;
  VSSFLAG_REPASK = $00000040;
  VSSFLAG_REPREPLACE = $00000080;
  VSSFLAG_REPSKIP = $000000C0;
  VSSFLAG_REPMERGE = $00000100;
  VSSFLAG_CMPFULL = $00000200;
  VSSFLAG_CMPTIME = $00000400;
  VSSFLAG_CMPCHKSUM = $00000600;
  VSSFLAG_CMPFAIL = $00000800;
  VSSFLAG_RECURSNO = $00001000;
  VSSFLAG_RECURSYES = $00002000;
  VSSFLAG_FORCEDIRNO = $00004000;
  VSSFLAG_FORCEDIRYES = $00008000;
  VSSFLAG_KEEPNO = $00010000;
  VSSFLAG_KEEPYES = $00020000;
  VSSFLAG_DELNO = $00040000;
  VSSFLAG_DELYES = $00080000;
  VSSFLAG_DELNOREPLACE = $000C0000;
  VSSFLAG_BINTEST = $00100000;
  VSSFLAG_BINBINARY = $00200000;
  VSSFLAG_BINTEXT = $00300000;
  VSSFLAG_DELTAYES = $00400000;
  VSSFLAG_DELTANO = $00800000;
  VSSFLAG_UPDASK = $01000000;
  VSSFLAG_UPDUPDATE = $02000000;
  VSSFLAG_UPDUNCH = $03000000;
  VSSFLAG_GETYES = $04000000;
  VSSFLAG_GETNO = $08000000;
  VSSFLAG_CHKEXCLUSIVEYES = $10000000;
  VSSFLAG_CHKEXCLUSIVENO = $20000000;
  VSSFLAG_HISTIGNOREFILES = $40000000;

// Constants for enum VSSFileStatus
type
  VSSFileStatus = TOleEnum;
const
  VSSFILE_NOTCHECKEDOUT = $00000000;
  VSSFILE_CHECKEDOUT = $00000001;
  VSSFILE_CHECKEDOUT_ME = $00000002;

// Constants for enum VSSItemType
type
  VSSItemType = TOleEnum;
const
  VSSITEM_PROJECT = $00000000;
  VSSITEM_FILE = $00000001;

// Constants for enum VSSRights
type
  VSSRights = TOleEnum;
const
  VSSRIGHTS_READ = $00000001;
  VSSRIGHTS_CHKUPD = $00000002;
  VSSRIGHTS_ADDRENREM = $00000004;
  VSSRIGHTS_DESTROY = $00000008;
  VSSRIGHTS_ALL = $0000000F;
  VSSRIGHTS_INHERITED = $00000010;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
  IVSSItemOld = interface;
  IVSSItemOldDisp = dispinterface;
  IVSSItem = interface;
  IVSSItemDisp = dispinterface;
  IVSSItems = interface;
  IVSSItemsDisp = dispinterface;
  IVSSCheckouts = interface;
  IVSSCheckoutsDisp = dispinterface;
  IVSSCheckout = interface;
  IVSSCheckoutDisp = dispinterface;
  IVSSVersions = interface;
  IVSSVersionsDisp = dispinterface;
  IVSSVersionOld = interface;
  IVSSVersionOldDisp = dispinterface;
  IVSSVersion = interface;
  IVSSVersionDisp = dispinterface;
  IVSSUsers = interface;
  IVSSUsersDisp = dispinterface;
  IVSSUser = interface;
  IVSSUserDisp = dispinterface;
  IVSSDatabaseOld = interface;
  IVSSDatabaseOldDisp = dispinterface;
  IVSSDatabase = interface;
  IVSSDatabaseDisp = dispinterface;
  IVSSEventsOld = interface;
  IVSSEvents = interface;
  IVSS = interface;
  IVSSDisp = dispinterface;
  IVSSEventHandler = interface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
// *********************************************************************//
  VSSItem = IVSSItem;
  VSSVersion = IVSSVersion;
  VSSCheckout = IVSSCheckout;
  VSSDatabase = IVSSDatabase;
  VSSUser = IVSSUser;
  VSSApp = IVSS;


// *********************************************************************//
// Interface: IVSSItemOld
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E1-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSItemOld = interface(IDispatch)
    ['{783CD4E1-9D54-11CF-B8EE-00608CC9A71F}']
    function Get_Spec: WideString; safecall;
    function Get_Binary: WordBool; safecall;
    procedure Set_Binary(pbBinary: WordBool); safecall;
    function Get_Deleted: WordBool; safecall;
    procedure Set_Deleted(pbDeleted: WordBool); safecall;
    function Get_type_: SYSINT; safecall;
    function Get_LocalSpec: WideString; safecall;
    procedure Set_LocalSpec(const pLocal: WideString); safecall;
    function Get_Name: WideString; safecall;
    procedure Set_Name(const pName: WideString); safecall;
    function Get_Parent: IVSSItem; safecall;
    function Get_VersionNumber: Integer; safecall;
    function Get_Items(IncludeDeleted: WordBool): IVSSItems; safecall;
    procedure Get(var Local: WideString; iFlags: Integer); safecall;
    procedure Checkout(const Comment: WideString; const Local: WideString; iFlags: Integer); safecall;
    procedure Checkin(const Comment: WideString; const Local: WideString; iFlags: Integer); safecall;
    procedure UndoCheckout(const Local: WideString; iFlags: Integer); safecall;
    function Get_IsCheckedOut: Integer; safecall;
    function Get_Checkouts: IVSSCheckouts; safecall;
    function Get_IsDifferent(const Local: WideString): WordBool; safecall;
    function Add(const Local: WideString; const Comment: WideString; iFlags: Integer): IVSSItem; safecall;
    function NewSubproject(const Name: WideString; const Comment: WideString): IVSSItem; safecall;
    procedure Share(const pIItem: IVSSItem; const Comment: WideString; iFlags: Integer); safecall;
    procedure Destroy; safecall;
    procedure Move(const pINewParent: IVSSItem); safecall;
    procedure Label_(const Label_: WideString; const Comment: WideString); safecall;
    function Get_Versions(iFlags: Integer): IVSSVersions; safecall;
    function Get_Version(Version: OleVariant): IVSSItem; safecall;
    property Spec: WideString read Get_Spec;
    property Binary: WordBool read Get_Binary write Set_Binary;
    property Deleted: WordBool read Get_Deleted write Set_Deleted;
    property type_: SYSINT read Get_type_;
    property LocalSpec: WideString read Get_LocalSpec write Set_LocalSpec;
    property Name: WideString read Get_Name write Set_Name;
    property Parent: IVSSItem read Get_Parent;
    property VersionNumber: Integer read Get_VersionNumber;
    property Items[IncludeDeleted: WordBool]: IVSSItems read Get_Items;
    property IsCheckedOut: Integer read Get_IsCheckedOut;
    property Checkouts: IVSSCheckouts read Get_Checkouts;
    property IsDifferent[const Local: WideString]: WordBool read Get_IsDifferent;
    property Versions[iFlags: Integer]: IVSSVersions read Get_Versions;
    property Version[Version: OleVariant]: IVSSItem read Get_Version;
  end;

// *********************************************************************//
// DispIntf:  IVSSItemOldDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E1-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSItemOldDisp = dispinterface
    ['{783CD4E1-9D54-11CF-B8EE-00608CC9A71F}']
    property Spec: WideString readonly dispid 1;
    property Binary: WordBool dispid 2;
    property Deleted: WordBool dispid 3;
    property type_: SYSINT readonly dispid 4;
    property LocalSpec: WideString dispid 5;
    property Name: WideString dispid 6;
    property Parent: IVSSItem readonly dispid 7;
    property VersionNumber: Integer readonly dispid 8;
    property Items[IncludeDeleted: WordBool]: IVSSItems readonly dispid 9;
    procedure Get(var Local: WideString; iFlags: Integer); dispid 10;
    procedure Checkout(const Comment: WideString; const Local: WideString; iFlags: Integer); dispid 11;
    procedure Checkin(const Comment: WideString; const Local: WideString; iFlags: Integer); dispid 12;
    procedure UndoCheckout(const Local: WideString; iFlags: Integer); dispid 13;
    property IsCheckedOut: Integer readonly dispid 14;
    property Checkouts: IVSSCheckouts readonly dispid 15;
    property IsDifferent[const Local: WideString]: WordBool readonly dispid 16;
    function Add(const Local: WideString; const Comment: WideString; iFlags: Integer): IVSSItem; dispid 17;
    function NewSubproject(const Name: WideString; const Comment: WideString): IVSSItem; dispid 18;
    procedure Share(const pIItem: IVSSItem; const Comment: WideString; iFlags: Integer); dispid 19;
    procedure Destroy; dispid 20;
    procedure Move(const pINewParent: IVSSItem); dispid 21;
    procedure Label_(const Label_: WideString; const Comment: WideString); dispid 22;
    property Versions[iFlags: Integer]: IVSSVersions readonly dispid 23;
    property Version[Version: OleVariant]: IVSSItem readonly dispid 24;
  end;

// *********************************************************************//
// Interface: IVSSItem
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSItem = interface(IVSSItemOld)
    ['{2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95}']
    function Get_Links: IVSSItems; safecall;
    function Branch(const Comment: WideString; iFlags: Integer): IVSSItem; safecall;
    property Links: IVSSItems read Get_Links;
  end;

// *********************************************************************//
// DispIntf:  IVSSItemDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSItemDisp = dispinterface
    ['{2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95}']
    property Links: IVSSItems readonly dispid 25;
    function Branch(const Comment: WideString; iFlags: Integer): IVSSItem; dispid 26;
    property Spec: WideString readonly dispid 1;
    property Binary: WordBool dispid 2;
    property Deleted: WordBool dispid 3;
    property type_: SYSINT readonly dispid 4;
    property LocalSpec: WideString dispid 5;
    property Name: WideString dispid 6;
    property Parent: IVSSItem readonly dispid 7;
    property VersionNumber: Integer readonly dispid 8;
    property Items[IncludeDeleted: WordBool]: IVSSItems readonly dispid 9;
    procedure Get(var Local: WideString; iFlags: Integer); dispid 10;
    procedure Checkout(const Comment: WideString; const Local: WideString; iFlags: Integer); dispid 11;
    procedure Checkin(const Comment: WideString; const Local: WideString; iFlags: Integer); dispid 12;
    procedure UndoCheckout(const Local: WideString; iFlags: Integer); dispid 13;
    property IsCheckedOut: Integer readonly dispid 14;
    property Checkouts: IVSSCheckouts readonly dispid 15;
    property IsDifferent[const Local: WideString]: WordBool readonly dispid 16;
    function Add(const Local: WideString; const Comment: WideString; iFlags: Integer): IVSSItem; dispid 17;
    function NewSubproject(const Name: WideString; const Comment: WideString): IVSSItem; dispid 18;
    procedure Share(const pIItem: IVSSItem; const Comment: WideString; iFlags: Integer); dispid 19;
    procedure Destroy; dispid 20;
    procedure Move(const pINewParent: IVSSItem); dispid 21;
    procedure Label_(const Label_: WideString; const Comment: WideString); dispid 22;
    property Versions[iFlags: Integer]: IVSSVersions readonly dispid 23;
    property Version[Version: OleVariant]: IVSSItem readonly dispid 24;
  end;

// *********************************************************************//
// Interface: IVSSItems
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E5-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSItems = interface(IDispatch)
    ['{783CD4E5-9D54-11CF-B8EE-00608CC9A71F}']
    function Get_Count: Integer; safecall;
    function Get_Item(sItem: OleVariant): IVSSItem; safecall;
    function _NewEnum: IUnknown; safecall;
    property Count: Integer read Get_Count;
    property Item[sItem: OleVariant]: IVSSItem read Get_Item; default;
  end;

// *********************************************************************//
// DispIntf:  IVSSItemsDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E5-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSItemsDisp = dispinterface
    ['{783CD4E5-9D54-11CF-B8EE-00608CC9A71F}']
    property Count: Integer readonly dispid 1;
    property Item[sItem: OleVariant]: IVSSItem readonly dispid 0; default;
    function _NewEnum: IUnknown; dispid -4;
  end;

// *********************************************************************//
// Interface: IVSSCheckouts
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {8903A770-F55F-11CF-9227-00AA00A1EB95}
// *********************************************************************//
  IVSSCheckouts = interface(IDispatch)
    ['{8903A770-F55F-11CF-9227-00AA00A1EB95}']
    function Get_Count: Integer; safecall;
    function Get_Item(sItem: OleVariant): IVSSCheckout; safecall;
    function _NewEnum: IUnknown; safecall;
    property Count: Integer read Get_Count;
    property Item[sItem: OleVariant]: IVSSCheckout read Get_Item; default;
  end;

// *********************************************************************//
// DispIntf:  IVSSCheckoutsDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {8903A770-F55F-11CF-9227-00AA00A1EB95}
// *********************************************************************//
  IVSSCheckoutsDisp = dispinterface
    ['{8903A770-F55F-11CF-9227-00AA00A1EB95}']
    property Count: Integer readonly dispid 1;
    property Item[sItem: OleVariant]: IVSSCheckout readonly dispid 0; default;
    function _NewEnum: IUnknown; dispid -4;
  end;

// *********************************************************************//
// Interface: IVSSCheckout
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E6-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSCheckout = interface(IDispatch)
    ['{783CD4E6-9D54-11CF-B8EE-00608CC9A71F}']
    function Get_Username: WideString; safecall;
    function Get_Date: TDateTime; safecall;
    function Get_LocalSpec: WideString; safecall;
    function Get_Machine: WideString; safecall;
    function Get_Project: WideString; safecall;
    function Get_Comment: WideString; safecall;
    function Get_VersionNumber: Integer; safecall;
    property Username: WideString read Get_Username;
    property Date: TDateTime read Get_Date;
    property LocalSpec: WideString read Get_LocalSpec;
    property Machine: WideString read Get_Machine;
    property Project: WideString read Get_Project;
    property Comment: WideString read Get_Comment;
    property VersionNumber: Integer read Get_VersionNumber;
  end;

// *********************************************************************//
// DispIntf:  IVSSCheckoutDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E6-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSCheckoutDisp = dispinterface
    ['{783CD4E6-9D54-11CF-B8EE-00608CC9A71F}']
    property Username: WideString readonly dispid 1;
    property Date: TDateTime readonly dispid 2;
    property LocalSpec: WideString readonly dispid 3;
    property Machine: WideString readonly dispid 4;
    property Project: WideString readonly dispid 5;
    property Comment: WideString readonly dispid 6;
    property VersionNumber: Integer readonly dispid 7;
  end;

// *********************************************************************//
// Interface: IVSSVersions
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E7-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSVersions = interface(IDispatch)
    ['{783CD4E7-9D54-11CF-B8EE-00608CC9A71F}']
    function _NewEnum: IUnknown; safecall;
  end;

// *********************************************************************//
// DispIntf:  IVSSVersionsDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E7-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSVersionsDisp = dispinterface
    ['{783CD4E7-9D54-11CF-B8EE-00608CC9A71F}']
    function _NewEnum: IUnknown; dispid -4;
  end;

// *********************************************************************//
// Interface: IVSSVersionOld
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E8-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSVersionOld = interface(IDispatch)
    ['{783CD4E8-9D54-11CF-B8EE-00608CC9A71F}']
    function Get_Username: WideString; safecall;
    function Get_VersionNumber: Integer; safecall;
    function Get_Action: WideString; safecall;
    function Get_Date: TDateTime; safecall;
    function Get_Comment: WideString; safecall;
    function Get_Label_: WideString; safecall;
    function Get_VSSItem: IVSSItem; safecall;
    property Username: WideString read Get_Username;
    property VersionNumber: Integer read Get_VersionNumber;
    property Action: WideString read Get_Action;
    property Date: TDateTime read Get_Date;
    property Comment: WideString read Get_Comment;
    property Label_: WideString read Get_Label_;
    property VSSItem: IVSSItem read Get_VSSItem;
  end;

// *********************************************************************//
// DispIntf:  IVSSVersionOldDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E8-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSVersionOldDisp = dispinterface
    ['{783CD4E8-9D54-11CF-B8EE-00608CC9A71F}']
    property Username: WideString readonly dispid 1;
    property VersionNumber: Integer readonly dispid 2;
    property Action: WideString readonly dispid 3;
    property Date: TDateTime readonly dispid 4;
    property Comment: WideString readonly dispid 5;
    property Label_: WideString readonly dispid 6;
    property VSSItem: IVSSItem readonly dispid 7;
  end;

// *********************************************************************//
// Interface: IVSSVersion
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSVersion = interface(IVSSVersionOld)
    ['{2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95}']
    function Get_LabelComment: WideString; safecall;
    property LabelComment: WideString read Get_LabelComment;
  end;

// *********************************************************************//
// DispIntf:  IVSSVersionDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSVersionDisp = dispinterface
    ['{2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95}']
    property LabelComment: WideString readonly dispid 8;
    property Username: WideString readonly dispid 1;
    property VersionNumber: Integer readonly dispid 2;
    property Action: WideString readonly dispid 3;
    property Date: TDateTime readonly dispid 4;
    property Comment: WideString readonly dispid 5;
    property Label_: WideString readonly dispid 6;
    property VSSItem: IVSSItem readonly dispid 7;
  end;

// *********************************************************************//
// Interface: IVSSUsers
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSUsers = interface(IDispatch)
    ['{2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95}']
    function Get_Count: Integer; safecall;
    function Get_Item(sItem: OleVariant): IVSSUser; safecall;
    function _NewEnum: IUnknown; safecall;
    property Count: Integer read Get_Count;
    property Item[sItem: OleVariant]: IVSSUser read Get_Item; default;
  end;

// *********************************************************************//
// DispIntf:  IVSSUsersDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSUsersDisp = dispinterface
    ['{2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95}']
    property Count: Integer readonly dispid 1;
    property Item[sItem: OleVariant]: IVSSUser readonly dispid 0; default;
    function _NewEnum: IUnknown; dispid -4;
  end;

// *********************************************************************//
// Interface: IVSSUser
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSUser = interface(IDispatch)
    ['{2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95}']
    procedure Delete; safecall;
    function Get_Name: WideString; safecall;
    procedure Set_Name(const pName: WideString); safecall;
    procedure Set_Password(const Param1: WideString); safecall;
    function Get_ReadOnly: WordBool; safecall;
    procedure Set_ReadOnly(pReadOnly: WordBool); safecall;
    function Get_ProjectRights(const Project: WideString): Integer; safecall;
    procedure Set_ProjectRights(const Project: WideString; piRightsOut: Integer); safecall;
    procedure RemoveProjectRights(const Project: WideString); safecall;
    property Name: WideString read Get_Name write Set_Name;
    property Password: WideString write Set_Password;
    property ReadOnly: WordBool read Get_ReadOnly write Set_ReadOnly;
    property ProjectRights[const Project: WideString]: Integer read Get_ProjectRights write Set_ProjectRights;
  end;

// *********************************************************************//
// DispIntf:  IVSSUserDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSUserDisp = dispinterface
    ['{2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95}']
    procedure Delete; dispid 1;
    property Name: WideString dispid 2;
    property Password: WideString writeonly dispid 3;
    property ReadOnly: WordBool dispid 4;
    property ProjectRights[const Project: WideString]: Integer dispid 5;
    procedure RemoveProjectRights(const Project: WideString); dispid 6;
  end;

// *********************************************************************//
// Interface: IVSSDatabaseOld
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E2-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSDatabaseOld = interface(IDispatch)
    ['{783CD4E2-9D54-11CF-B8EE-00608CC9A71F}']
    procedure Open(const SrcSafeIni: WideString; const Username: WideString; 
                   const Password: WideString); safecall;
    function Get_SrcSafeIni: WideString; safecall;
    function Get_DatabaseName: WideString; safecall;
    function Get_Username: WideString; safecall;
    function Get_CurrentProject: WideString; safecall;
    procedure Set_CurrentProject(const pPrj: WideString); safecall;
    function Get_VSSItem(const Spec: WideString; Deleted: WordBool): IVSSItem; safecall;
    property SrcSafeIni: WideString read Get_SrcSafeIni;
    property DatabaseName: WideString read Get_DatabaseName;
    property Username: WideString read Get_Username;
    property CurrentProject: WideString read Get_CurrentProject write Set_CurrentProject;
    property VSSItem[const Spec: WideString; Deleted: WordBool]: IVSSItem read Get_VSSItem;
  end;

// *********************************************************************//
// DispIntf:  IVSSDatabaseOldDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4E2-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSDatabaseOldDisp = dispinterface
    ['{783CD4E2-9D54-11CF-B8EE-00608CC9A71F}']
    procedure Open(const SrcSafeIni: WideString; const Username: WideString; 
                   const Password: WideString); dispid 1;
    property SrcSafeIni: WideString readonly dispid 2;
    property DatabaseName: WideString readonly dispid 3;
    property Username: WideString readonly dispid 4;
    property CurrentProject: WideString dispid 5;
    property VSSItem[const Spec: WideString; Deleted: WordBool]: IVSSItem readonly dispid 6;
  end;

// *********************************************************************//
// Interface: IVSSDatabase
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSDatabase = interface(IVSSDatabaseOld)
    ['{2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95}']
    function AddUser(const User: WideString; const Password: WideString; ReadOnly: WordBool): IVSSUser; safecall;
    function Get_User(const Name: WideString): IVSSUser; safecall;
    function Get_Users: IVSSUsers; safecall;
    function Get_ProjectRightsEnabled: WordBool; safecall;
    procedure Set_ProjectRightsEnabled(pEnabled: WordBool); safecall;
    function Get_DefaultProjectRights: Integer; safecall;
    procedure Set_DefaultProjectRights(pRights: Integer); safecall;
    property User[const Name: WideString]: IVSSUser read Get_User;
    property Users: IVSSUsers read Get_Users;
    property ProjectRightsEnabled: WordBool read Get_ProjectRightsEnabled write Set_ProjectRightsEnabled;
    property DefaultProjectRights: Integer read Get_DefaultProjectRights write Set_DefaultProjectRights;
  end;

// *********************************************************************//
// DispIntf:  IVSSDatabaseDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSDatabaseDisp = dispinterface
    ['{2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95}']
    function AddUser(const User: WideString; const Password: WideString; ReadOnly: WordBool): IVSSUser; dispid 7;
    property User[const Name: WideString]: IVSSUser readonly dispid 8;
    property Users: IVSSUsers readonly dispid 9;
    property ProjectRightsEnabled: WordBool dispid 10;
    property DefaultProjectRights: Integer dispid 11;
    procedure Open(const SrcSafeIni: WideString; const Username: WideString; 
                   const Password: WideString); dispid 1;
    property SrcSafeIni: WideString readonly dispid 2;
    property DatabaseName: WideString readonly dispid 3;
    property Username: WideString readonly dispid 4;
    property CurrentProject: WideString dispid 5;
    property VSSItem[const Spec: WideString; Deleted: WordBool]: IVSSItem readonly dispid 6;
  end;

// *********************************************************************//
// Interface: IVSSEventsOld
// Flags:     (0)
// GUID:      {783CD4E9-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSEventsOld = interface(IUnknown)
    ['{783CD4E9-9D54-11CF-B8EE-00608CC9A71F}']
    function BeforeAdd(const pIPrj: IVSSItem; const Local: WideString; out pbContinue: WordBool): HResult; stdcall;
    function AfterAdd(const pIItem: IVSSItem; const Local: WideString): HResult; stdcall;
    function BeforeCheckout(const pIItem: IVSSItem; const Local: WideString; 
                            out pbContinue: WordBool): HResult; stdcall;
    function AfterCheckout(const pIItem: IVSSItem; const Local: WideString): HResult; stdcall;
    function BeforeCheckin(const pIItem: IVSSItem; const Local: WideString; out pbContinue: WordBool): HResult; stdcall;
    function AfterCheckin(const pIItem: IVSSItem; const Local: WideString): HResult; stdcall;
    function BeforeUndoCheckout(const pIItem: IVSSItem; const Local: WideString; 
                                out pbContinue: WordBool): HResult; stdcall;
    function AfterUndoCheckout(const pIItem: IVSSItem; const Local: WideString): HResult; stdcall;
    function BeforeRename(const pIItem: IVSSItem; const NewName: WideString; 
                          out pbContinue: WordBool): HResult; stdcall;
    function AfterRename(const pIItem: IVSSItem; const OldName: WideString): HResult; stdcall;
    function BeforeBranch(const pIItem: IVSSItem; out pbContinue: WordBool): HResult; stdcall;
    function AfterBranch(const pIItem: IVSSItem): HResult; stdcall;
    function BeforeEvent(iEvent: Integer; const pIItem: IVSSItem; const Str: WideString; 
                         var_: OleVariant; out pbContinue: WordBool): HResult; stdcall;
    function AfterEvent(iEvent: Integer; const pIItem: IVSSItem; const Str: WideString; 
                        var_: OleVariant): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IVSSEvents
// Flags:     (0)
// GUID:      {2A0DE0E8-2E9F-11D0-9236-00AA00A1EB95}
// *********************************************************************//
  IVSSEvents = interface(IUnknown)
    ['{2A0DE0E8-2E9F-11D0-9236-00AA00A1EB95}']
    function BeforeAdd(const pIPrj: IVSSItem; const Local: WideString; const Comment: WideString; 
                       out pbContinue: WordBool): HResult; stdcall;
    function AfterAdd(const pIItem: IVSSItem; const Local: WideString; const Comment: WideString): HResult; stdcall;
    function BeforeCheckout(const pIItem: IVSSItem; const Local: WideString; 
                            const Comment: WideString; out pbContinue: WordBool): HResult; stdcall;
    function AfterCheckout(const pIItem: IVSSItem; const Local: WideString; 
                           const Comment: WideString): HResult; stdcall;
    function BeforeCheckin(const pIItem: IVSSItem; const Local: WideString; 
                           const Comment: WideString; out pbContinue: WordBool): HResult; stdcall;
    function AfterCheckin(const pIItem: IVSSItem; const Local: WideString; const Comment: WideString): HResult; stdcall;
    function BeforeUndoCheckout(const pIItem: IVSSItem; const Local: WideString; 
                                out pbContinue: WordBool): HResult; stdcall;
    function AfterUndoCheckout(const pIItem: IVSSItem; const Local: WideString): HResult; stdcall;
    function BeforeRename(const pIItem: IVSSItem; const NewName: WideString; 
                          out pbContinue: WordBool): HResult; stdcall;
    function AfterRename(const pIItem: IVSSItem; const OldName: WideString): HResult; stdcall;
    function BeforeBranch(const pIItem: IVSSItem; const Comment: WideString; 
                          out pbContinue: WordBool): HResult; stdcall;
    function AfterBranch(const pIItem: IVSSItem; const Comment: WideString): HResult; stdcall;
    function BeginCommand(unused: Integer; out pbContinue: WordBool): HResult; stdcall;
    function EndCommand(unused: Integer): HResult; stdcall;
    function BeforeEvent(iEvent: Integer; const pIItem: IVSSItem; const Str: WideString; 
                         var_: OleVariant; out pbContinue: WordBool): HResult; stdcall;
    function AfterEvent(iEvent: Integer; const pIItem: IVSSItem; const Str: WideString; 
                        var_: OleVariant): HResult; stdcall;
  end;

// *********************************************************************//
// Interface: IVSS
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4EB-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSS = interface(IDispatch)
    ['{783CD4EB-9D54-11CF-B8EE-00608CC9A71F}']
    function Get_VSSDatabase: IVSSDatabase; safecall;
    property VSSDatabase: IVSSDatabase read Get_VSSDatabase;
  end;

// *********************************************************************//
// DispIntf:  IVSSDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {783CD4EB-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSDisp = dispinterface
    ['{783CD4EB-9D54-11CF-B8EE-00608CC9A71F}']
    property VSSDatabase: IVSSDatabase readonly dispid 1;
  end;

// *********************************************************************//
// Interface: IVSSEventHandler
// Flags:     (0)
// GUID:      {783CD4EA-9D54-11CF-B8EE-00608CC9A71F}
// *********************************************************************//
  IVSSEventHandler = interface(IUnknown)
    ['{783CD4EA-9D54-11CF-B8EE-00608CC9A71F}']
    function Init(const pIVSS: IVSS): HResult; stdcall;
  end;

// *********************************************************************//
// The Class CoVSSItem provides a Create and CreateRemote method to          
// create instances of the default interface IVSSItem exposed by              
// the CoClass VSSItem. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSItem = class
    class function Create: IVSSItem;
    class function CreateRemote(const MachineName: string): IVSSItem;
  end;

// *********************************************************************//
// The Class CoVSSVersion provides a Create and CreateRemote method to          
// create instances of the default interface IVSSVersion exposed by              
// the CoClass VSSVersion. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSVersion = class
    class function Create: IVSSVersion;
    class function CreateRemote(const MachineName: string): IVSSVersion;
  end;

// *********************************************************************//
// The Class CoVSSCheckout provides a Create and CreateRemote method to          
// create instances of the default interface IVSSCheckout exposed by              
// the CoClass VSSCheckout. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSCheckout = class
    class function Create: IVSSCheckout;
    class function CreateRemote(const MachineName: string): IVSSCheckout;
  end;

// *********************************************************************//
// The Class CoVSSDatabase provides a Create and CreateRemote method to          
// create instances of the default interface IVSSDatabase exposed by              
// the CoClass VSSDatabase. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSDatabase = class
    class function Create: IVSSDatabase;
    class function CreateRemote(const MachineName: string): IVSSDatabase;
  end;

// *********************************************************************//
// The Class CoVSSUser provides a Create and CreateRemote method to          
// create instances of the default interface IVSSUser exposed by              
// the CoClass VSSUser. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSUser = class
    class function Create: IVSSUser;
    class function CreateRemote(const MachineName: string): IVSSUser;
  end;

// *********************************************************************//
// The Class CoVSSApp provides a Create and CreateRemote method to          
// create instances of the default interface IVSS exposed by              
// the CoClass VSSApp. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoVSSApp = class
    class function Create: IVSS;
    class function CreateRemote(const MachineName: string): IVSS;
  end;

implementation

uses ComObj;

class function CoVSSItem.Create: IVSSItem;
begin
  Result := CreateComObject(CLASS_VSSItem) as IVSSItem;
end;

class function CoVSSItem.CreateRemote(const MachineName: string): IVSSItem;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSItem) as IVSSItem;
end;

class function CoVSSVersion.Create: IVSSVersion;
begin
  Result := CreateComObject(CLASS_VSSVersion) as IVSSVersion;
end;

class function CoVSSVersion.CreateRemote(const MachineName: string): IVSSVersion;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSVersion) as IVSSVersion;
end;

class function CoVSSCheckout.Create: IVSSCheckout;
begin
  Result := CreateComObject(CLASS_VSSCheckout) as IVSSCheckout;
end;

class function CoVSSCheckout.CreateRemote(const MachineName: string): IVSSCheckout;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSCheckout) as IVSSCheckout;
end;

class function CoVSSDatabase.Create: IVSSDatabase;
begin
  Result := CreateComObject(CLASS_VSSDatabase) as IVSSDatabase;
end;

class function CoVSSDatabase.CreateRemote(const MachineName: string): IVSSDatabase;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSDatabase) as IVSSDatabase;
end;

class function CoVSSUser.Create: IVSSUser;
begin
  Result := CreateComObject(CLASS_VSSUser) as IVSSUser;
end;

class function CoVSSUser.CreateRemote(const MachineName: string): IVSSUser;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSUser) as IVSSUser;
end;

class function CoVSSApp.Create: IVSS;
begin
  Result := CreateComObject(CLASS_VSSApp) as IVSS;
end;

class function CoVSSApp.CreateRemote(const MachineName: string): IVSS;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_VSSApp) as IVSS;
end;

end.
