//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // // @doc // // @module VsEmpWeb.idl - Define VB Web interfaces | // // @owner Source Control Integration Team //------------------------------------------------------------------------------ // Includes -------------------------------------------------------------------- import "oaidl.idl"; import "ocidl.idl"; // Prototypes ------------------------------------------------------------------ interface IVsEmpWeb; interface IVsEmpWebResource; interface IEnumVsEmpWebResource; interface IEnumVsEmpWebResourceCheckouts; //------------------------------------------------------------------------------ // Name: VsEmpWebResourceType // // @owner Microsoft Corporation, Visual Studio Core Team // //------------------------------------------------------------------------------ typedef [v1_enum] enum TagVsEmpWebResourceType { krtUnknown = 0, krtFolder, krtFile } eVsEmpWebResourceType; //------------------------------------------------------------------------------ // Name: IVsEmpWeb // // @interface IVsEmpWeb | // VB web interface // // @owner Microsoft Corporation, Visual Studio Core Team // // @base public | IUnknown //------------------------------------------------------------------------------ [ object, uuid(3675ACF5-0C81-11d3-85C9-00A0C9CFCC16), pointer_default(unique) ] interface IVsEmpWeb : IUnknown { typedef [v1_enum] enum TagVsEmpWebInfo { fIsolated = 0x01 } eVsEmpWebInfo; typedef [v1_enum] enum TagVsEmpVersionType { kvtExplicit = 0, kvtLocal, kvtTip } eTagVsEmpVersionType; // Context methods // @meth HRESULT | GetUrl | Gets WEB URL HRESULT GetUrl([out] BSTR *pbstrUrl); // @meth HRESULT | SetSourceControlContext | Sets source control context HRESULT SetSourceControlContext( [in] LPCOLESTR szType, [in] LPCOLESTR szProvider, [in] LPCOLESTR szServer, [in] LPCOLESTR szPath, [in] LPCOLESTR szWorkarea, [in] boolean fAddExistingResources); // @meth HRESULT | GetSourceControlContext | Gets source control context HRESULT GetSourceControlContext( [out] BSTR *pbstrType, [out] BSTR *szProvider, [out] BSTR *szServer, [out] BSTR *pbstrPath, [out] BSTR *pbstrWorkarea); // @meth HRESULT | ClearSourceControlContext | Clears source control context HRESULT ClearSourceControlContext( [in] boolean fRemoveExistingResources); // Namespace methods // @meth HRESULT | GetResource | HRESULT GetResource( [in] LPCOLESTR szUrl, [out] IVsEmpWebResource **ppIVsEmpWebResource); // @meth HRESULT | EnumFolder | Enumerates web collection resource contents (No identity in return set) HRESULT EnumFolder( [in] LPCOLESTR szUrlFolder, [in] boolean fRecurse, [out] IEnumVsEmpWebResource **ppIEnumVsEmpWebResource); // @meth HRESULT | PutResources | Migrates local files to web resources (To support putting merge results) // EMP will handle stream input using temp files HRESULT PutResources( [in] ULONG cResource, [in, size_is(cResource)] LPCOLESTR *rgszLocalPath, [in, size_is(cResource)] LPCOLESTR *rgszUrl, [out] ULONG *pcResourceActual); // @meth HRESULT | GetResources | Migrates web resources to local files // EMP will handle stream output using temp files (stream lifetime will control temp file lifetime) // It is an error to request stream output and multiple resources (either explicitly or implicitly where depth != 0) HRESULT GetResources( [in] ULONG cResource, [in, size_is(cResource)] LPCOLESTR *rgszUrl, [in, size_is(cResource)] LPCOLESTR *rgszLocalPath, [out] ULONG *pcResourceActual); // Session methods // @meth HRESULT | GetInfo | GetInfo // fIsIsolationWeb ... HRESULT GetInfo([out] DWORD* pgrfWebInfo); // @meth HRESULT | SetOffline | Sets offline mode HRESULT SetOffline([in] boolean fOffline); // @meth HRESULT | GetOffline | Gets offline mode HRESULT GetOffline([out] boolean *pfOffline); // Property methods // @meth HRESULT | SetResourceVersioned | Sets whether web resource versioned HRESULT SetResourceVersioned( [in] LPCOLESTR szUrl, [in] boolean fVersioned, [out] IVsEmpWebResource **ppIVsEmpWebResource); // Checkout methods // @meth HRESULT | CheckoutResource | Checks out web resource HRESULT CheckoutResource( [in] LPCOLESTR szUrl, [in] eTagVsEmpVersionType vt, [in] LPCOLESTR szVersion, [in] boolean fExclusive, [in] LPCOLESTR *rgszMergeType, [in] UINT cMergeType, [out] IVsEmpWebResource **ppIVsEmpWebResource, [out] IUnknown **ppIUnknownMergeResult); // @meth HRESULT | UncheckoutResource | Unchecks out web resource HRESULT UncheckoutResource( [in] LPCOLESTR szUrl, [out] IVsEmpWebResource **ppIVsEmpWebResource); // @meth HRESULT | CheckinResource | Checks in web resource HRESULT CheckinResource( [in] LPCOLESTR szUrl, [in] LPCOLESTR szComment, [in] boolean fKeepCheckedOut, [in] LPCOLESTR *rgszMergeType, [in] UINT cMergeType, [out] IVsEmpWebResource **ppIVsEmpWebResource, [out] IUnknown **ppIUnknownMergeResult); // Sync methods // @meth HRESULT | SyncResource | Syncs resource HRESULT SyncResource( [in] LPCOLESTR szUrl, [in] eTagVsEmpVersionType vt, [in] LPCOLESTR szVersion, [in] LPCOLESTR *rgszMergeType, [in] UINT cMergeType, [out] IVsEmpWebResource **ppIVsEmpWebResource, [out] IUnknown **ppIUnknownMergeResult); // @meth HRESULT | SyncResource | Syncs resource HRESULT MergeAdvise( [in] LPCOLESTR szUrl, [in] LPCOLESTR szVersion, [out] IVsEmpWebResource **ppIVsEmpWebResource); // @meth HRESULT | AdviseMerge | Advises merge HRESULT AdviseMerge( [in] IUnknown *pIUnknownMergeResult, [in] LPCOLESTR szUrlReconciledContent, [out] IVsEmpWebResource **ppIVsEmpWebResource); // @meth HRESULT | ResourceIsChanged | Returns change status of resource HRESULT ResourceIsChanged( [in] LPCOLESTR szUrl, [out] boolean *pfLocallyChanged, [out] boolean *pfServerChanged); }; //------------------------------------------------------------------------------ // Name: IVsEmpWebResource // // @interface IVsEmpWebResource | // VB web resource interface // // @owner Microsoft Corporation, Visual Studio Core Team // // @base public | IUnknown //------------------------------------------------------------------------------ [ object, uuid(3675ACF6-0C81-11d3-85C9-00A0C9CFCC16), pointer_default(unique) ] interface IVsEmpWebResource : IUnknown { typedef [v1_enum] enum TagVsEmpWebResourceInfo2 { fVsEmpWebResourceCheckedOut = 0x01, fVsEmpWebResourceCheckedOutByMe = 0x02, fVsEmpWebResourceCheckedOutExclusive = 0x04, fVsEmpWebResourceVersioned = 0x08, fVsEmpWebResourceDeletedLocally = 0x10, fVsEmpWebResourceDeletedOnServer = 0x20, fVsEmpWebResourceOutOfDate = 0x40, fVsEmpWebResourceExcluded = 0x80, fVsEmpWebResourceGhosted = 0x100, fVsEmpWebResourceExists = 0x200, fVsEmpWebResourceIsFolder = 0x400, fVsEmpWebResourceReadOnly = 0x800, } eVsEmpWebResourceInfo2; // @meth HRESULT | GetType | Gets web resource type HRESULT GetType([out] eVsEmpWebResourceType *pert); // @meth HRESULT | GetUrl | Gets a web resource URL HRESULT GetUrl([out] BSTR *pbstrUrl); // @meth HRESULT | EnumCheckouts | Enumerates checkouts on resource HRESULT EnumCheckouts([out] IEnumVsEmpWebResourceCheckouts **ppIEnumVsEmpWebResourceCheckouts); // @meth HRESULT | GetInfo | GetInfo // fIsIsolationWeb ... HRESULT GetInfo([out] DWORD* pgrfResourceInfo); // @meth HRESULT | GetLocalVersion | Gets a web resource local version HRESULT GetLocalVersion([out] BSTR *pbstrLocalVersion); // @meth HRESULT | GetDefaultVersion | Gets master web resource version HRESULT GetDefaultVersion([out] BSTR *pbstrDefaultVersion); // @meth HRESULT | GetLastModifiedDate | Gets last modified date HRESULT GetLastModifiedDate([out] FILETIME *pftLastModified); // @meth HRESULT | GetFileSize | Gets file size HRESULT GetFileSize([out] ULARGE_INTEGER* puliFileSize); }; //------------------------------------------------------------------------------ // Name: IEnumVsEmpWebResourceCheckouts // // @interface IEnumVsEmpWebResourceCheckouts | // VB web resource checkout enumeration interface // // @owner Microsoft Corporation, Visual Studio Core Team // // @base public | IUnknown //------------------------------------------------------------------------------ [ object, uuid(2ABA4462-0C9F-11d3-85C9-00A0C9CFCC16), pointer_default(unique) ] interface IEnumVsEmpWebResourceCheckouts : IUnknown { typedef struct tagCHECKOUTDATA { BSTR bstrCheckoutId; BSTR bstrOwner; FILETIME ftDate; BSTR bstrVersion; } CHECKOUTDATA; // @meth HRESULT | Next | Get next celt elements HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] CHECKOUTDATA *rgelt, [out] ULONG *pceltFetched); // @meth HRESULT | Skip | Skip next celt elements HRESULT Skip([in] ULONG celt); // @meth HRESULT | Reset | Reset enumerator HRESULT Reset(); // @meth HRESULT | Clone | Clone enumerator HRESULT Clone([out] IEnumVsEmpWebResourceCheckouts **ppIEnumVsEmpWebResourceCheckouts); }; //------------------------------------------------------------------------------ // Name: IEnumVsEmpWebResource // // @interface IEnumVsEmpWebResource | // VB web resource enumeration interface // // @owner Microsoft Corporation, Visual Studio Core Team // // @base public | IUnknown //------------------------------------------------------------------------------ [ object, uuid(2ABA4461-0C9F-11d3-85C9-00A0C9CFCC16), pointer_default(unique) ] interface IEnumVsEmpWebResource : IUnknown { //typedef [unique] IEnumVsEmpWebResource *PEnumVsEmpWebResource; // @meth HRESULT | Next | Get next celt elements HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IVsEmpWebResource **rgelt, [out] ULONG *pceltFetched); // @meth HRESULT | Skip | Skip next celt elements HRESULT Skip([in] ULONG celt); // @meth HRESULT | Reset | Reset enumerator HRESULT Reset(); // @meth HRESULT | Clone | Clone enumerator HRESULT Clone([out] IEnumVsEmpWebResource **ppIEnumVsEmpWebResource); };