/**************************************************************************** * The vslangproj Interfaces * Copyright (c) Microsoft Corporation, All Rights Reserved ****************************************************************************/ /**************************************************************************** * vslangproj150.idl * * Sources the typelib that needs to be exposed to clients. * Exposes the CATID's of the extensibility Project & ProjectItem object. * Exposes the diff CATID's for the diff packages for the browse objects. * Exposes the browse object interfaces * Exposes the interfaces of the package specific extensibility project object. *****************************************************************************/ #ifndef INTEROPLIB import "oaidl.idl"; // done because the .idl file does not understand namespaces but these interfaces are in a namespace in the header file. cpp_quote("#include \"dte.h\"") cpp_quote("#ifdef FORCE_EXPLICIT_DTE_NAMESPACE") cpp_quote("#define DTE VxDTE::DTE") cpp_quote("#define Project VxDTE::Project") cpp_quote("#define ProjectItem VxDTE::ProjectItem") cpp_quote("#endif") // Interface definitions cpp_quote("#define VSLANGPROJ150_VER_MAJ 15") cpp_quote("#define VSLANGPROJ150_VER_MIN 0") #define VSLANGPROJ_VER 15.0 [ uuid(46D1176E-4D2E-4F37-B1D7-94E59DE93518), helpstring("Microsoft Visual Studio Project Model (15.0)"), version(VSLANGPROJ_VER) ] library VSLangProj150 { #endif // INTEROPLIB importlib("stdole32.tlb"); importlib("stdole2.tlb"); importlib("dte.tlb"); importlib("vslangproj.tlb"); importlib("vslangproj2.tlb"); importlib("vslangproj80.tlb"); importlib("vslangproj90.tlb"); importlib("vslangproj100.tlb"); importlib("vslangproj110.tlb"); importlib("vslangproj140.tlb"); #include "vsshelluuids.h" // // PackageReferences // [ dual, oleautomation, object, uuid(146A9209-0D04-4024-9FD6-132143A337E4) ] interface PackageReferences : IDispatch { [id(1), propget, helpstring("DTE")] HRESULT DTE([out, retval] DTE **ppDTE); [id(2), propget, helpstring("Parent")] HRESULT Parent([out, retval] IDispatch **ppdispParent); [id(3), propget, helpstring("Containing Project")] HRESULT ContainingProject([out, retval] Project **ppProject); [id(4), helpstring("AddOrUpdate")] HRESULT AddOrUpdate([in] BSTR bstrName, [in] BSTR bstrVersion, [in] SAFEARRAY(BSTR) pbstrMetadataElements, [in] SAFEARRAY(BSTR) pbstrMetadataValues); [id(5), helpstring("Remove")] HRESULT Remove([in] BSTR bstrName); [id(6), helpstring("TryGetReference")] HRESULT TryGetReference([in] BSTR bstrName, [in] SAFEARRAY(BSTR) parrbstrDesiredMetadata, [out] BSTR *pbstrVersion, [out] SAFEARRAY(BSTR) *pbstrMetadataElements, [out] SAFEARRAY(BSTR) *pbstrMetadataValues, [out, retval] VARIANT_BOOL *pFound); [id(7), propget, helpstring("InstalledPackages")] HRESULT InstalledPackages([out, retval] SAFEARRAY(BSTR) *parrbstrInstalledPackages); } // // VSProject4 // [ dual, oleautomation, object, uuid(1C91C1D8-5046-437A-A414-7D1739172F5E) ] interface VSProject4 : VSProject3 { [id(20), propget, helpstring("NuGet Package References List")] HRESULT PackageReferences([out, retval] PackageReferences **ppRefs); } // This lists reference properties enum VsProjReferencePropId150 { /*********************************************** defined in vslangproj80.idl DISPID_Reference_SpecificVersion = 120, DISPID_Reference_SubType = 121, DISPID_Reference_Isolated = 122, DISPID_Reference_Aliases = 123, DISPID_Reference_RefType = 124, DISPID_Reference_AutoReferenced = 125, DISPID_Reference_Resolved = 126, *********************************************** *********************************************** defined in vslangproj100.idl DISPID_Reference_EmbedInteropTypes = 127, *********************************************** *********************************************** defined in vslangproj110.idl DISPID_Reference_ExpandedSdkReferences = 128, DISPID_Reference_Group = 129, ***********************************************/ DISPID_Reference_GetMetadata = 130, DISPID_Reference_AddOrUpdateMetadata = 131, }; // // Reference6 // [ dual, oleautomation, object, uuid(957F4F7E-035C-4E0E-9DF5-6EB86CB0BCAD) ] interface Reference6 : Reference5 { [id(DISPID_Reference_GetMetadata), helpstring("Retrieve metadata associated with this reference")] HRESULT GetMetadata([in] SAFEARRAY(BSTR) parrbstrDesiredMetadata, [out] SAFEARRAY(BSTR) *pparrbstrMetadataElements, [out] SAFEARRAY(BSTR) *pparrbstrMetadataValues); [id(DISPID_Reference_AddOrUpdateMetadata), helpstring("Add or update the metadata associated with this reference")] HRESULT AddOrUpdateMetadata([in] SAFEARRAY(BSTR) parrbstrMetadataElements, [in] SAFEARRAY(BSTR) parrbstrMetadataValues); }; #ifndef INTEROPLIB } #endif cpp_quote("#ifdef FORCE_EXPLICIT_DTE_NAMESPACE") cpp_quote("#undef DTE") cpp_quote("#undef Project") cpp_quote("#undef ProjectItem") cpp_quote("#endif")