/**************************************************************************** * The VSSHELL Interfaces * Copyright (c) Microsoft Corporation, All Rights Reserved ****************************************************************************/ #ifndef INTEROPLIB // Imports - all imports should go here (inside the ifndef) import "oaidl.idl"; import "vsshell.idl"; import "vsshell2.idl"; import "vsshell80.idl"; import "vsshell90.idl"; import "vsshell100.idl"; import "vsshell110.idl"; import "vsshell120.idl"; import "vsshell140.idl"; import "vsshell150.idl"; import "objext.idl"; import "olecm.idl"; import "VsPlatformUI.idl"; import "basetsd.h"; import "oleidl.idl"; import "servprov.idl"; import "docobj.idl"; import "designer.idl"; import "textmgr.idl"; import "oleipc.idl"; #endif #ifndef PROXYSTUB_BUILD #include "vscookie.h" #endif //---------------------------------------------------------------------- // IVsProgress //---------------------------------------------------------------------- [uuid(0a4f31cf-c488-4ef0-a667-4630991f9ad6)] interface IVsProgress : IUnknown { // Reports the progress of an operation. The value parameter can be in // the range [0.0..1.0], where 0.0 is 0% complete and 1.0 is 100% complete. // A value outside that range indicates indeterminate progress. HRESULT Report([in] double value); }; //---------------------------------------------------------------------- // IVsAsyncSaveResult //---------------------------------------------------------------------- [uuid(72903eda-bbb2-453d-88df-239a8c018122)] interface IVsAsyncSaveResult : IUnknown { // if true, indicates that the save was successful but there was data loss // (similar to returning STG_S_DATALOSS from synchronous save operations) [propget] HRESULT DataLossIncurred([out, retval] VARIANT_BOOL* pValue); // indicates the user canceled the save operation [propget] HRESULT SaveCanceled([out, retval] VARIANT_BOOL* pValue); // the name of the saved file [propget] HRESULT FileName([out, retval] BSTR* pbstrFileName); }; //---------------------------------------------------------------------- // IVsProvideAsyncSaveState //---------------------------------------------------------------------- [uuid(ba50abcc-be56-46a2-9c5b-2424c06a70cb)] interface IVsProvideAsyncSaveState : IUnknown { // This method is called at the beginning of an asynchronous save. A docdata can // implement this interface and supply a state object. It can retrieve the state // object in its implementation of IAsyncPersistFile.SaveAsync or // IAsyncPersistFileFormat.SaveAsync by calling IVsAsyncRunningDocumentTable.GetAsyncSaveState. HRESULT GetAsyncSaveState([out, retval] IUnknown** ppunkState); }; //---------------------------------------------------------------------- // IVsAsyncRunningDocumentTable // // Asynchronous methods for the running document table. // Implemented by the SVsRunningDocumentTable service. //---------------------------------------------------------------------- [uuid(b960175b-ab78-494f-9034-47a650c27acc)] interface IVsAsyncRunningDocumentTable : IUnknown { HRESULT SaveDocumentsAsync( [in] VSRDTSAVEOPTIONS grfSaveOpts, [in] IVsHierarchy* pHier, [in] VSITEMID itemid, [in] VSCOOKIE docCookie, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); // This method can be used by a docdata that implements IVsProvideAsyncSaveState to // retrieve the state object it supplied via IVsProvideAsyncSaveState.GetAsyncSaveState. // The docdata will call this from its implementation of IAsyncPersistFile.SaveAsync // or IAsyncPersistFileFormat.SaveAsync. HRESULT GetAsyncSaveState( [in] IVsProvideAsyncSaveState* pProvider, [out, retval] IUnknown** ppunkState); }; //---------------------------------------------------------------------- // IVsAsyncShell // // Asynchronous methods for the VS shell. // Implemented by the SVsUIShell service. //---------------------------------------------------------------------- [uuid(6fbd992c-3f7c-49ed-a057-588c3415d7d5)] interface IVsAsyncShell : IUnknown { // Saves a docdata to a file asynchronously. The result of the returned task // will be IVsAsyncSaveResult. HRESULT SaveDocDataToFileAsync( [in] VSSAVEFLAGS grfSave, [in] IUnknown* pPersistFile, [in] LPCOLESTR pszUntitledPath, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); } //---------------------------------------------------------------------- // IVsAsyncSolution // // Asynchronous methods for the VS solution. // Implemented by the SVsUISolution service. //---------------------------------------------------------------------- [uuid(cdb2cb6b-e8d9-46d8-9a43-57fb82143278)] interface IVsAsyncSolution : IUnknown { // Saves a solution element asynchronously. HRESULT SaveSolutionElementAsync( [in] VSSLNSAVEOPTIONS grfSaveOpts, [in] IVsHierarchy* pHier, [in] VSCOOKIE docCookie, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); } //---------------------------------------------------------------------- // IVsAsyncPersistHierarchyItem // // Asynchronous methods for persisting hierarchy items. // Interface is retrieved by QI from IVsHierarchy. //---------------------------------------------------------------------- [uuid(9aa40a83-9ace-4bdf-9f31-956295d9b87d)] interface IVsAsyncPersistHierarchyItem : IUnknown { // Saves a hierarchy item asynchronously. The result of the returned task will be // IVsAsyncSaveResult. The FileName property of the IVsAsyncSaveResult is unused. HRESULT SaveItemAsync( [in] VSSAVEFLAGS grfSave, [in] LPCOLESTR pszSilentSaveAsName, [in] VSITEMID itemid, [in] IUnknown* punkDocData, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); HRESULT ReloadItemAsync( [in] VSITEMID itemid, [in] IVsProgress* pProgress, [out, retval] IVsTask** reloadTask); }; //---------------------------------------------------------------------- // IVsAsyncPersistDocData // // Asynchronous methods for persisting document data. // Interface is retrieved by QI from the docdata. //---------------------------------------------------------------------- [uuid(de485455-84fe-4e41-a911-8bbdc87ac27f)] interface IVsAsyncPersistDocData : IUnknown { HRESULT LoadDocDataAsync( [in] LPCOLESTR pszMkDocument, [in] IVsProgress* pProgress, [out, retval] IVsTask** loadTask); // Saves the docdata asynchronously. The result of the returned task // will be IVsAsyncSaveResult. HRESULT SaveDocDataAsync( [in] VSSAVEFLAGS grfSave, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); HRESULT ReloadDocDataAsync( [in] VSRELOADDOCDATA grfFlags, [in] IVsProgress* pProgress, [out, retval] IVsTask** reloadTask); }; //---------------------------------------------------------------------- // IAsyncPersistFile //---------------------------------------------------------------------- [uuid(ec2f3090-8dc6-4d56-9a8e-84d5af63dc70)] interface IAsyncPersistFile : IUnknown { HRESULT LoadAsync( [in] LPCOLESTR pszFilename, [in] DWORD grfMode, [in] IVsProgress* pProgress, [out, retval] IVsTask** loadTask); // Saves the docdata asynchronously. The result of the returned task // will be IVsAsyncSaveResult. The Canceled and FileName properties // of the IVsAsyncSaveResult are unused. HRESULT SaveAsync( [in] LPCOLESTR pszFilename, [in] VARIANT_BOOL fRemember, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); }; //---------------------------------------------------------------------- // IAsyncPersistFileFormat //---------------------------------------------------------------------- [uuid(d3f639c2-9633-4af7-82fb-3ae5cffa8a52)] interface IAsyncPersistFileFormat : IUnknown { HRESULT LoadAsync( [in] LPCOLESTR pszFilename, [in] DWORD grfMode, [in] VARIANT_BOOL fReadOnly, [in] IVsProgress* pProgress, [out, retval] IVsTask** loadTask); // Saves the docdata asynchronously. The result of the returned task will be // IVsAsyncSaveResult. The FileName property of the of the IVsAsyncSaveResult is unused. HRESULT SaveAsync( [in] LPCOLESTR pszFilename, [in] VARIANT_BOOL fRemember, [in] DWORD nFormatIndex, [in] IVsProgress* pProgress, [out, retval] IVsTask** saveTask); }; //---------------------------------------------------------------------- // _VSRDTSAVENOTIFICATIONFLAGS //---------------------------------------------------------------------- enum _VSRDTSAVENOTIFICATIONFLAGS { RDTSNF_ImplicitSave = 0x00000001, // the save is the result of an implicit event (e.g. an auto-save operation) }; typedef DWORD VSRDTSAVENOTIFICATIONFLAGS; //---------------------------------------------------------------------- // IVsRunningDocumentTable6 //---------------------------------------------------------------------- [ uuid(567793e7-3a62-4704-9481-0ccd1c4ec495) ] interface IVsRunningDocumentTable6 : IUnknown { HRESULT NotifyOnBeforeSave( [in] VSCOOKIE cookie, [in] VSRDTSAVENOTIFICATIONFLAGS grfNotificationFlags, [in] IVsTask* pSaveTask); HRESULT NotifyOnAfterSave( [in] VSCOOKIE cookie, [in] VSRDTSAVENOTIFICATIONFLAGS grfNotificationFlags); } //---------------------------------------------------------------------- // IVsRunningDocTableEvents7 //---------------------------------------------------------------------- [ uuid(fe0d2208-235d-447e-8d7f-b1d3ec00e090) ] interface IVsRunningDocTableEvents7 : IUnknown { HRESULT OnBeforeSaveAsync( [in] VSCOOKIE cookie, [in] VSRDTSAVENOTIFICATIONFLAGS flags, [in] IVsTask* pSaveTask, [out, retval] IVsTask** ppTask); HRESULT OnAfterSaveAsync( [in] VSCOOKIE cookie, [in] VSRDTSAVENOTIFICATIONFLAGS flags, [out, retval] IVsTask** ppTask); }; //---------------------------------------------------------------------- // StatusBarAnimationIndex //---------------------------------------------------------------------- cpp_quote("#define SBAI2_MIN 7") cpp_quote("#define SBAI2_Test 7") cpp_quote("#define SBAI2_MAX 7")