Click here to Skip to main content
15,897,371 members
Articles / Desktop Programming / WTL

SSBrowser: A Sample Visual SourceSafe Automation

Rate me:
Please Sign up or sign in to vote.
4.59/5 (13 votes)
3 Jun 20044 min read 93K   3K   54  
A sample VC++ program for performing Visual SourceSafe operations in your application.
/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: SourceSafeTypeLib */

#ifndef _SourceSafeTypeLib_H_
#define _SourceSafeTypeLib_H_

DEFINE_GUID(LIBID_SourceSafeTypeLib,0x783CD4E0L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif

typedef enum _VSSFlags {
    VSSFLAG_USERRONO = 1,
    VSSFLAG_USERROYES = 2,
    VSSFLAG_TIMENOW = 4,
    VSSFLAG_TIMEMOD = 8,
    VSSFLAG_TIMEUPD = 12,
    VSSFLAG_EOLCR = 16,
    VSSFLAG_EOLLF = 32,
    VSSFLAG_EOLCRLF = 48,
    VSSFLAG_REPASK = 64,
    VSSFLAG_REPREPLACE = 128,
    VSSFLAG_REPSKIP = 192,
    VSSFLAG_REPMERGE = 256,
    VSSFLAG_CMPFULL = 512,
    VSSFLAG_CMPTIME = 1024,
    VSSFLAG_CMPCHKSUM = 1536,
    VSSFLAG_CMPFAIL = 2048,
    VSSFLAG_RECURSNO = 4096,
    VSSFLAG_RECURSYES = 8192,
    VSSFLAG_FORCEDIRNO = 16384,
    VSSFLAG_FORCEDIRYES = 32768,
    VSSFLAG_KEEPNO = 65536,
    VSSFLAG_KEEPYES = 131072,
    VSSFLAG_DELNO = 262144,
    VSSFLAG_DELYES = 524288,
    VSSFLAG_DELNOREPLACE = 786432,
    VSSFLAG_BINTEST = 1048576,
    VSSFLAG_BINBINARY = 2097152,
    VSSFLAG_BINTEXT = 3145728,
    VSSFLAG_DELTAYES = 4194304,
    VSSFLAG_DELTANO = 8388608,
    VSSFLAG_UPDASK = 16777216,
    VSSFLAG_UPDUPDATE = 33554432,
    VSSFLAG_UPDUNCH = 50331648,
    VSSFLAG_GETYES = 67108864,
    VSSFLAG_GETNO = 134217728,
    VSSFLAG_CHKEXCLUSIVEYES = 268435456,
    VSSFLAG_CHKEXCLUSIVENO = 536870912,
    VSSFLAG_HISTIGNOREFILES = 1073741824
} VSSFlags;

typedef enum _VSSFileStatus {
    VSSFILE_NOTCHECKEDOUT = 0,
    VSSFILE_CHECKEDOUT = 1,
    VSSFILE_CHECKEDOUT_ME = 2
} VSSFileStatus;

typedef enum _VSSItemType {
    VSSITEM_PROJECT = 0,
    VSSITEM_FILE = 1
} VSSItemType;

typedef enum _VSSRights {
    VSSRIGHTS_READ = 1,
    VSSRIGHTS_CHKUPD = 2,
    VSSRIGHTS_ADDRENREM = 4,
    VSSRIGHTS_DESTROY = 8,
    VSSRIGHTS_ALL = 15,
    VSSRIGHTS_INHERITED = 16
} VSSRights;

interface IVSSItem;

interface IVSSItems;

interface IVSSVersions;

interface IVSSVersion;

interface IVSSCheckouts;

interface IVSSCheckout;

interface IVSSUsers;

interface IVSSUser;

DEFINE_GUID(IID_IVSSItemOld,0x783CD4E1L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSItemOld */
#undef INTERFACE
#define INTERFACE IVSSItemOld

DECLARE_INTERFACE_(IVSSItemOld, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSItemOld methods */
    STDMETHOD_(HRESULT, get_Spec)(THIS_ BSTR FAR* pSpec) PURE;
    STDMETHOD_(HRESULT, get_Binary)(THIS_ VARIANT_BOOL FAR* pbBinary) PURE;
    STDMETHOD_(HRESULT, put_Binary)(THIS_ VARIANT_BOOL bBinary) PURE;
    STDMETHOD_(HRESULT, get_Deleted)(THIS_ VARIANT_BOOL FAR* pbDeleted) PURE;
    STDMETHOD_(HRESULT, put_Deleted)(THIS_ VARIANT_BOOL bDeleted) PURE;
    STDMETHOD_(HRESULT, get_Type)(THIS_ int FAR* piType) PURE;
    STDMETHOD_(HRESULT, get_LocalSpec)(THIS_ BSTR FAR* pLocal) PURE;
    STDMETHOD_(HRESULT, put_LocalSpec)(THIS_ BSTR Local) PURE;
    STDMETHOD_(HRESULT, get_Name)(THIS_ BSTR FAR* pName) PURE;
    STDMETHOD_(HRESULT, put_Name)(THIS_ BSTR Name) PURE;
    STDMETHOD_(HRESULT, get_Parent)(THIS_ IVSSItem FAR* FAR* ppIParent) PURE;
    STDMETHOD_(HRESULT, get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
    STDMETHOD_(HRESULT, get_Items)(THIS_ VARIANT_BOOL IncludeDeleted, IVSSItems FAR* FAR* ppIItems) PURE;
    STDMETHOD_(HRESULT, Get)(THIS_ BSTR FAR* Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, Checkout)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, Checkin)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, UndoCheckout)(THIS_ BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, get_IsCheckedOut)(THIS_ long FAR* piStatus) PURE;
    STDMETHOD_(HRESULT, get_Checkouts)(THIS_ IVSSCheckouts FAR* FAR* ppICheckouts) PURE;
    STDMETHOD_(HRESULT, get_IsDifferent)(THIS_ BSTR Local, VARIANT_BOOL FAR* pbDifferent) PURE;
    STDMETHOD_(HRESULT, Add)(THIS_ BSTR Local, BSTR Comment, long iFlags, IVSSItem FAR* FAR* ppIItem) PURE;
    STDMETHOD_(HRESULT, NewSubproject)(THIS_ BSTR Name, BSTR Comment, IVSSItem FAR* FAR* ppIItem) PURE;
    STDMETHOD_(HRESULT, Share)(THIS_ IVSSItem FAR* pIItem, BSTR Comment, long iFlags) PURE;
    STDMETHOD_(HRESULT, Destroy)(THIS) PURE;
    STDMETHOD_(HRESULT, Move)(THIS_ IVSSItem FAR* pINewParent) PURE;
    STDMETHOD_(HRESULT, Label)(THIS_ BSTR Label, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, get_Versions)(THIS_ long iFlags, IVSSVersions FAR* FAR* pIVersions) PURE;
    STDMETHOD_(HRESULT, get_Version)(THIS_ VARIANT Version, IVSSItem FAR* FAR* ppIItem) PURE;
};

DEFINE_GUID(IID_IVSSItem,0x2A0DE0E7L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSItem */
#undef INTERFACE
#define INTERFACE IVSSItem

DECLARE_INTERFACE_(IVSSItem, IVSSItemOld)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;

    /* IVSSItemOld methods */
    STDMETHOD_(HRESULT, get_Spec)(THIS_ BSTR FAR* pSpec) PURE;
    STDMETHOD_(HRESULT, get_Binary)(THIS_ VARIANT_BOOL FAR* pbBinary) PURE;
    STDMETHOD_(HRESULT, put_Binary)(THIS_ VARIANT_BOOL bBinary) PURE;
    STDMETHOD_(HRESULT, get_Deleted)(THIS_ VARIANT_BOOL FAR* pbDeleted) PURE;
    STDMETHOD_(HRESULT, put_Deleted)(THIS_ VARIANT_BOOL bDeleted) PURE;
    STDMETHOD_(HRESULT, get_Type)(THIS_ int FAR* piType) PURE;
    STDMETHOD_(HRESULT, get_LocalSpec)(THIS_ BSTR FAR* pLocal) PURE;
    STDMETHOD_(HRESULT, put_LocalSpec)(THIS_ BSTR Local) PURE;
    STDMETHOD_(HRESULT, get_Name)(THIS_ BSTR FAR* pName) PURE;
    STDMETHOD_(HRESULT, put_Name)(THIS_ BSTR Name) PURE;
    STDMETHOD_(HRESULT, get_Parent)(THIS_ IVSSItem FAR* FAR* ppIParent) PURE;
    STDMETHOD_(HRESULT, get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
    STDMETHOD_(HRESULT, get_Items)(THIS_ VARIANT_BOOL IncludeDeleted, IVSSItems FAR* FAR* ppIItems) PURE;
    STDMETHOD_(HRESULT, Get)(THIS_ BSTR FAR* Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, Checkout)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, Checkin)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, UndoCheckout)(THIS_ BSTR Local, long iFlags) PURE;
    STDMETHOD_(HRESULT, get_IsCheckedOut)(THIS_ long FAR* piStatus) PURE;
    STDMETHOD_(HRESULT, get_Checkouts)(THIS_ IVSSCheckouts FAR* FAR* ppICheckouts) PURE;
    STDMETHOD_(HRESULT, get_IsDifferent)(THIS_ BSTR Local, VARIANT_BOOL FAR* pbDifferent) PURE;
    STDMETHOD_(HRESULT, Add)(THIS_ BSTR Local, BSTR Comment, long iFlags, IVSSItem FAR* FAR* ppIItem) PURE;
    STDMETHOD_(HRESULT, NewSubproject)(THIS_ BSTR Name, BSTR Comment, IVSSItem FAR* FAR* ppIItem) PURE;
    STDMETHOD_(HRESULT, Share)(THIS_ IVSSItem FAR* pIItem, BSTR Comment, long iFlags) PURE;
    STDMETHOD_(HRESULT, Destroy)(THIS) PURE;
    STDMETHOD_(HRESULT, Move)(THIS_ IVSSItem FAR* pINewParent) PURE;
    STDMETHOD_(HRESULT, Label)(THIS_ BSTR Label, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, get_Versions)(THIS_ long iFlags, IVSSVersions FAR* FAR* pIVersions) PURE;
    STDMETHOD_(HRESULT, get_Version)(THIS_ VARIANT Version, IVSSItem FAR* FAR* ppIItem) PURE;
#endif

    /* IVSSItem methods */
    STDMETHOD_(HRESULT, get_Links)(THIS_ IVSSItems FAR* FAR* ppIItems) PURE;
    STDMETHOD_(HRESULT, Branch)(THIS_ BSTR Comment, long iFlags, IVSSItem FAR* FAR* ppIItem) PURE;
};

DEFINE_GUID(IID_IVSSVersions,0x783CD4E7L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSVersions */
#undef INTERFACE
#define INTERFACE IVSSVersions

DECLARE_INTERFACE_(IVSSVersions, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSVersions methods */
    STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
};

DEFINE_GUID(IID_IVSSVersionOld,0x783CD4E8L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSVersionOld */
#undef INTERFACE
#define INTERFACE IVSSVersionOld

DECLARE_INTERFACE_(IVSSVersionOld, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSVersionOld methods */
    STDMETHOD_(HRESULT, get_Username)(THIS_ BSTR FAR* pUsername) PURE;
    STDMETHOD_(HRESULT, get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
    STDMETHOD_(HRESULT, get_Action)(THIS_ BSTR FAR* pAction) PURE;
    STDMETHOD_(HRESULT, get_Date)(THIS_ DATE FAR* pDate) PURE;
    STDMETHOD_(HRESULT, get_Comment)(THIS_ BSTR FAR* pComment) PURE;
    STDMETHOD_(HRESULT, get_Label)(THIS_ BSTR FAR* pLabel) PURE;
    STDMETHOD_(HRESULT, get_VSSItem)(THIS_ IVSSItem FAR* FAR* ppIItem) PURE;
};

DEFINE_GUID(IID_IVSSVersion,0x2A0DE0E9L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSVersion */
#undef INTERFACE
#define INTERFACE IVSSVersion

DECLARE_INTERFACE_(IVSSVersion, IVSSVersionOld)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;

    /* IVSSVersionOld methods */
    STDMETHOD_(HRESULT, get_Username)(THIS_ BSTR FAR* pUsername) PURE;
    STDMETHOD_(HRESULT, get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
    STDMETHOD_(HRESULT, get_Action)(THIS_ BSTR FAR* pAction) PURE;
    STDMETHOD_(HRESULT, get_Date)(THIS_ DATE FAR* pDate) PURE;
    STDMETHOD_(HRESULT, get_Comment)(THIS_ BSTR FAR* pComment) PURE;
    STDMETHOD_(HRESULT, get_Label)(THIS_ BSTR FAR* pLabel) PURE;
    STDMETHOD_(HRESULT, get_VSSItem)(THIS_ IVSSItem FAR* FAR* ppIItem) PURE;
#endif

    /* IVSSVersion methods */
    STDMETHOD_(HRESULT, get_LabelComment)(THIS_ BSTR FAR* pComment) PURE;
};

DEFINE_GUID(IID_IVSSItems,0x783CD4E5L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSItems */
#undef INTERFACE
#define INTERFACE IVSSItems

DECLARE_INTERFACE_(IVSSItems, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSItems methods */
    STDMETHOD_(HRESULT, get_Count)(THIS_ long FAR* piCount) PURE;
    STDMETHOD_(HRESULT, get_Item)(THIS_ VARIANT sItem, IVSSItem FAR* FAR* ppIItem) PURE;
    STDMETHOD_(HRESULT, _NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
};

DEFINE_GUID(IID_IVSSCheckouts,0x8903A770L,0xF55F,0x11CF,0x92,0x27,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSCheckouts */
#undef INTERFACE
#define INTERFACE IVSSCheckouts

DECLARE_INTERFACE_(IVSSCheckouts, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSCheckouts methods */
    STDMETHOD_(HRESULT, get_Count)(THIS_ long FAR* piCount) PURE;
    STDMETHOD_(HRESULT, get_Item)(THIS_ VARIANT sItem, IVSSCheckout FAR* FAR* ppICheckout) PURE;
    STDMETHOD_(HRESULT, _NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
};

DEFINE_GUID(IID_IVSSCheckout,0x783CD4E6L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSCheckout */
#undef INTERFACE
#define INTERFACE IVSSCheckout

DECLARE_INTERFACE_(IVSSCheckout, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSCheckout methods */
    STDMETHOD_(HRESULT, get_Username)(THIS_ BSTR FAR* pUsername) PURE;
    STDMETHOD_(HRESULT, get_Date)(THIS_ DATE FAR* pDate) PURE;
    STDMETHOD_(HRESULT, get_LocalSpec)(THIS_ BSTR FAR* pLocal) PURE;
    STDMETHOD_(HRESULT, get_Machine)(THIS_ BSTR FAR* pMachine) PURE;
    STDMETHOD_(HRESULT, get_Project)(THIS_ BSTR FAR* pProject) PURE;
    STDMETHOD_(HRESULT, get_Comment)(THIS_ BSTR FAR* pComment) PURE;
    STDMETHOD_(HRESULT, get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
};

DEFINE_GUID(IID_IVSSDatabaseOld,0x783CD4E2L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSDatabaseOld */
#undef INTERFACE
#define INTERFACE IVSSDatabaseOld

DECLARE_INTERFACE_(IVSSDatabaseOld, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSDatabaseOld methods */
    STDMETHOD_(HRESULT, Open)(THIS_ BSTR SrcSafeIni, BSTR Username, BSTR Password) PURE;
    STDMETHOD_(HRESULT, get_SrcSafeIni)(THIS_ BSTR FAR* pSrcSafeIni) PURE;
    STDMETHOD_(HRESULT, get_DatabaseName)(THIS_ BSTR FAR* pDatabaseName) PURE;
    STDMETHOD_(HRESULT, get_UserName)(THIS_ BSTR FAR* pUsername) PURE;
    STDMETHOD_(HRESULT, get_CurrentProject)(THIS_ BSTR FAR* pPrj) PURE;
    STDMETHOD_(HRESULT, put_CurrentProject)(THIS_ BSTR Prj) PURE;
    STDMETHOD_(HRESULT, get_VSSItem)(THIS_ BSTR Spec, VARIANT_BOOL Deleted, IVSSItem FAR* FAR* ppIVSSItem) PURE;
};

DEFINE_GUID(IID_IVSSDatabase,0x2A0DE0E2L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSDatabase */
#undef INTERFACE
#define INTERFACE IVSSDatabase

DECLARE_INTERFACE_(IVSSDatabase, IVSSDatabaseOld)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;

    /* IVSSDatabaseOld methods */
    STDMETHOD_(HRESULT, Open)(THIS_ BSTR SrcSafeIni, BSTR Username, BSTR Password) PURE;
    STDMETHOD_(HRESULT, get_SrcSafeIni)(THIS_ BSTR FAR* pSrcSafeIni) PURE;
    STDMETHOD_(HRESULT, get_DatabaseName)(THIS_ BSTR FAR* pDatabaseName) PURE;
    STDMETHOD_(HRESULT, get_UserName)(THIS_ BSTR FAR* pUsername) PURE;
    STDMETHOD_(HRESULT, get_CurrentProject)(THIS_ BSTR FAR* pPrj) PURE;
    STDMETHOD_(HRESULT, put_CurrentProject)(THIS_ BSTR Prj) PURE;
    STDMETHOD_(HRESULT, get_VSSItem)(THIS_ BSTR Spec, VARIANT_BOOL Deleted, IVSSItem FAR* FAR* ppIVSSItem) PURE;
#endif

    /* IVSSDatabase methods */
    STDMETHOD_(HRESULT, AddUser)(THIS_ BSTR User, BSTR Password, VARIANT_BOOL ReadOnly, IVSSUser FAR* FAR* ppIUser) PURE;
    STDMETHOD_(HRESULT, get_User)(THIS_ BSTR Name, IVSSUser FAR* FAR* ppIUser) PURE;
    STDMETHOD_(HRESULT, get_Users)(THIS_ IVSSUsers FAR* FAR* ppIUsers) PURE;
    STDMETHOD_(HRESULT, get_ProjectRightsEnabled)(THIS_ VARIANT_BOOL FAR* pEnabled) PURE;
    STDMETHOD_(HRESULT, put_ProjectRightsEnabled)(THIS_ VARIANT_BOOL pEnabled) PURE;
    STDMETHOD_(HRESULT, get_DefaultProjectRights)(THIS_ long FAR* pRights) PURE;
    STDMETHOD_(HRESULT, put_DefaultProjectRights)(THIS_ long Rights) PURE;
};

DEFINE_GUID(IID_IVSSUser,0x2A0DE0E3L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSUser */
#undef INTERFACE
#define INTERFACE IVSSUser

DECLARE_INTERFACE_(IVSSUser, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSUser methods */
    STDMETHOD_(HRESULT, Delete)(THIS) PURE;
    STDMETHOD_(HRESULT, get_Name)(THIS_ BSTR FAR* pName) PURE;
    STDMETHOD_(HRESULT, put_Name)(THIS_ BSTR Name) PURE;
    STDMETHOD_(HRESULT, put_Password)(THIS_ BSTR Password) PURE;
    STDMETHOD_(HRESULT, get_ReadOnly)(THIS_ VARIANT_BOOL FAR* pReadOnly) PURE;
    STDMETHOD_(HRESULT, put_ReadOnly)(THIS_ VARIANT_BOOL ReadOnly) PURE;
    STDMETHOD_(HRESULT, get_ProjectRights)(THIS_ BSTR Project, long FAR* piRightsOut) PURE;
    STDMETHOD_(HRESULT, put_ProjectRights)(THIS_ BSTR Project, long iRightsIn) PURE;
    STDMETHOD_(HRESULT, RemoveProjectRights)(THIS_ BSTR Project) PURE;
};

DEFINE_GUID(IID_IVSSUsers,0x2A0DE0E4L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSUsers */
#undef INTERFACE
#define INTERFACE IVSSUsers

DECLARE_INTERFACE_(IVSSUsers, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSSUsers methods */
    STDMETHOD_(HRESULT, get_Count)(THIS_ long FAR* piCount) PURE;
    STDMETHOD_(HRESULT, get_Item)(THIS_ VARIANT sItem, IVSSUser FAR* FAR* ppIUser) PURE;
    STDMETHOD_(HRESULT, _NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
};

DEFINE_GUID(CLSID_VSSItem,0x783CD4E3L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

#ifdef __cplusplus
class VSSItem;
#endif

DEFINE_GUID(CLSID_VSSVersion,0x783CD4ECL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

#ifdef __cplusplus
class VSSVersion;
#endif

DEFINE_GUID(CLSID_VSSCheckout,0x2A0DE0E0L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

#ifdef __cplusplus
class VSSCheckout;
#endif

DEFINE_GUID(CLSID_VSSDatabase,0x783CD4E4L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

#ifdef __cplusplus
class VSSDatabase;
#endif

DEFINE_GUID(CLSID_VSSUser,0x2A0DE0E5L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

#ifdef __cplusplus
class VSSUser;
#endif

DEFINE_GUID(IID_IVSSEventsOld,0x783CD4E9L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSEventsOld */
#undef INTERFACE
#define INTERFACE IVSSEventsOld

DECLARE_INTERFACE_(IVSSEventsOld, IUnknown)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;
#endif

    /* IVSSEventsOld methods */
    STDMETHOD_(HRESULT, BeforeAdd)(THIS_ IVSSItem FAR* pIPrj, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterAdd)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
    STDMETHOD_(HRESULT, BeforeCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
    STDMETHOD_(HRESULT, BeforeCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
    STDMETHOD_(HRESULT, BeforeUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
    STDMETHOD_(HRESULT, BeforeRename)(THIS_ IVSSItem FAR* pIItem, BSTR NewName, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterRename)(THIS_ IVSSItem FAR* pIItem, BSTR OldName) PURE;
    STDMETHOD_(HRESULT, BeforeBranch)(THIS_ IVSSItem FAR* pIItem, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterBranch)(THIS_ IVSSItem FAR* pIItem) PURE;
    STDMETHOD_(HRESULT, BeforeEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var) PURE;
};

DEFINE_GUID(IID_IVSSEvents,0x2A0DE0E8L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

/* Definition of interface: IVSSEvents */
#undef INTERFACE
#define INTERFACE IVSSEvents

DECLARE_INTERFACE_(IVSSEvents, IUnknown)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;
#endif

    /* IVSSEvents methods */
    STDMETHOD_(HRESULT, BeforeAdd)(THIS_ IVSSItem FAR* pIPrj, BSTR Local, BSTR Comment, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterAdd)(THIS_ IVSSItem FAR* pIItem, BSTR Local, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, BeforeCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, BSTR Comment, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, BeforeCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local, BSTR Comment, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, BeforeUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
    STDMETHOD_(HRESULT, BeforeRename)(THIS_ IVSSItem FAR* pIItem, BSTR NewName, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterRename)(THIS_ IVSSItem FAR* pIItem, BSTR OldName) PURE;
    STDMETHOD_(HRESULT, BeforeBranch)(THIS_ IVSSItem FAR* pIItem, BSTR Comment, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterBranch)(THIS_ IVSSItem FAR* pIItem, BSTR Comment) PURE;
    STDMETHOD_(HRESULT, BeginCommand)(THIS_ long unused, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, EndCommand)(THIS_ long unused) PURE;
    STDMETHOD_(HRESULT, BeforeEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var, VARIANT_BOOL FAR* pbContinue) PURE;
    STDMETHOD_(HRESULT, AfterEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var) PURE;
};

DEFINE_GUID(IID_IVSS,0x783CD4EBL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSS */
#undef INTERFACE
#define INTERFACE IVSS

DECLARE_INTERFACE_(IVSS, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IVSS methods */
    STDMETHOD_(HRESULT, get_VSSDatabase)(THIS_ IVSSDatabase FAR* FAR* ppIVSSDatabase) PURE;
};

DEFINE_GUID(IID_IVSSEventHandler,0x783CD4EAL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);

/* Definition of interface: IVSSEventHandler */
#undef INTERFACE
#define INTERFACE IVSSEventHandler

DECLARE_INTERFACE_(IVSSEventHandler, IUnknown)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;
#endif

    /* IVSSEventHandler methods */
    STDMETHOD(Init)(THIS_ IVSS FAR* pIVSS) PURE;
};

DEFINE_GUID(CLSID_VSSApp,0x2A0DE0E1L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);

#ifdef __cplusplus
class VSSApp;
#endif

#endif

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer (Senior)
United States United States
Roaming halfway around the globe programming in C++, MFC, COM/ATL, WTL, C#, .NET, OLEDB, ADO, ADO/X.

Living under the pleasant weather of Irvine, California, Ferdie is a Computer Engineering graduate of Mapua Institute of Technology (MIT Smile | :) ) in Philippines. Developed GIS applications in Japan for 5 years. Now a member of a team developing Windows GUI and real time software for semi-robotic equipments.

Comments and Discussions