//import "ocidl.idl"; //import "oleidl.idl"; //import "oaidl.idl"; [ uuid(A40C6F0F-FAE0-4042-B0AC-B53BB38228E1), version(1.0) ] library HaskellProject { enum License { GPL, LGPL, BSD3, BSD4, PublicDomain, AllRightsReserved, OtherLicense }; enum YesNo { Yes, No }; [ uuid(6F53E507-13B5-459c-8302-CCA1C2A32F16), version(1.0), pointer_default(unique), dual ] interface IProjectGeneralSettings : IDispatch { [id(1), propget, helpstring("Specifies the package name.")] HRESULT Name([out,retval] BSTR *pValue); [id(1), propput, helpstring("Specifies the package name.")] HRESULT Name([in] BSTR Value); [id(2), propget, helpstring("Specifies the package version.")] HRESULT Version([out,retval] BSTR *pValue); [id(2), propput, helpstring("Specifies the package version.")] HRESULT Version([in] BSTR Value); [id(3), propget, helpstring("The type of license under which this package is distributed.")] HRESULT License([out,retval] enum License *pValue); [id(3), propput, helpstring("The type of license under which this package is distributed.")] HRESULT License([in] enum License Value); [id(4), propget, helpstring("The content of a copyright notice, typically the name of the holder of the copyright on the package and the year(s) from which copyright is claimed.")] HRESULT Copyright([out,retval] BSTR *pValue); [id(4), propput, helpstring("The content of a copyright notice, typically the name of the holder of the copyright on the package and the year(s) from which copyright is claimed.")] HRESULT Copyright([in] BSTR Value); [id(5), propget, helpstring("The current maintainer or maintainers of the package. This is an e-mail address to which users should send bug reports, feature requests and patches.")] HRESULT Maintainer([out,retval] BSTR *pValue); [id(5), propput, helpstring("The current maintainer or maintainers of the package. This is an e-mail address to which users should send bug reports, feature requests and patches.")] HRESULT Maintainer([in] BSTR Value); [id(6), propget, helpstring("The original author of the package.")] HRESULT Author([out,retval] BSTR *pValue); [id(6), propput, helpstring("The original author of the package.")] HRESULT Author([in] BSTR Value); [id(7), propget, helpstring("The stability level of the package, e.g. alpha, experimental, provisional, stable.")] HRESULT Stability([out,retval] BSTR *pValue); [id(7), propput, helpstring("The stability level of the package, e.g. alpha, experimental, provisional, stable.")] HRESULT Stability([in] BSTR Value); [id(8), propget, helpstring("The package homepage.")] HRESULT HomePage([out,retval] BSTR *pValue); [id(8), propput, helpstring("The package homepage.")] HRESULT HomePage([in] BSTR Value); [id(9), propget, helpstring("The location of a source bundle for the package. The distribution should be a Cabal package.")] HRESULT PackageUrl([out,retval] BSTR *pValue); [id(9), propput, helpstring("The location of a source bundle for the package. The distribution should be a Cabal package.")] HRESULT PackageUrl([in] BSTR Value); [id(10), propget, helpstring("A very short description of the package, for use in a table of packages.")] HRESULT Synopsis([out,retval] BSTR *pValue); [id(10), propput, helpstring("A very short description of the package, for use in a table of packages.")] HRESULT Synopsis([in] BSTR Value); [id(11), propget, helpstring("Description of the package.")] HRESULT Description([out,retval] BSTR *pValue); [id(11), propput, helpstring("Description of the package.")] HRESULT Description([in] BSTR Value); [id(12), propget, helpstring("A classification category for future use by the package catalogue Hackage.")] HRESULT Category([out,retval] BSTR *pValue); [id(12), propput, helpstring("A classification category for future use by the package catalogue Hackage.")] HRESULT Category([in] BSTR Value); [id(13), propget, helpstring("A list of compilers and versions against which the package has been tested (or at least built).")] HRESULT TestedWith([out,retval] BSTR *pValue); [id(13), propput, helpstring("A list of compilers and versions against which the package has been tested (or at least built).")] HRESULT TestedWith([in] BSTR Value); [id(14), propget, helpstring("Specify the name of the Cabal file that contains the information for the selected project.")] HRESULT ProjectPath([out, retval] BSTR *pValue); } [ uuid(69346B76-D125-4e24-BA34-9A54DBD40183), version(1.0), pointer_default(unique), dual ] interface IProjectCCSettings : IDispatch { [id(1), propget, helpstring("Command-line arguments to be passed to the C compiler.")] HRESULT Options([out,retval] BSTR *pValue); [id(1), propput, helpstring("Command-line arguments to be passed to the C compiler.")] HRESULT Options([in] BSTR Value); [id(2), propget, helpstring("A list of directories to search for header files, both when using a C preprocessor and when compiling via C.")] HRESULT IncludeDirectories([out,retval] BSTR *pValue); [id(2), propput, helpstring("A list of directories to search for header files, both when using a C preprocessor and when compiling via C.")] HRESULT IncludeDirectories([in] BSTR Value); [id(3), propget, helpstring("A list of header files to be included in any compilations via C. These files typically contain function prototypes for foreign imports used by the package.")] HRESULT Includes([out,retval] BSTR *pValue); [id(3), propput, helpstring("A list of header files to be included in any compilations via C. These files typically contain function prototypes for foreign imports used by the package.")] HRESULT Includes([in] BSTR Value); } [ uuid(E217C5D2-D114-4d59-9367-140F7233747C), version(1.0), pointer_default(unique), dual ] interface IProjectHCSettings : IDispatch { [id(1), propget, helpstring("Additional options for GHC.")] HRESULT GHCOptions([out,retval] BSTR *pValue); [id(1), propput, helpstring("Additional options for GHC.")] HRESULT GHCOptions([in] BSTR Value); [id(2), propget, helpstring("Additional options for Hugs.")] HRESULT HugsOptions([out,retval] BSTR *pValue); [id(2), propput, helpstring("Additional options for Hugs.")] HRESULT HugsOptions([in] BSTR Value); [id(3), propget, helpstring("Additional options for NHC.")] HRESULT NHCOptions([out,retval] BSTR *pValue); [id(3), propput, helpstring("Additional options for NHC.")] HRESULT NHCOptions([in] BSTR Value); [id(4), propget, helpstring("A list of Haskell extensions used by every module.")] HRESULT Extensions([out,retval] BSTR *pValue); [id(4), propput, helpstring("A list of Haskell extensions used by every module.")] HRESULT Extensions([in] BSTR Value); } [ uuid(C2A446B7-6FAC-4d8c-B7B6-5A48299B9A67), version(1.0), pointer_default(unique), dual ] interface IProjectLDSettings : IDispatch { [id(1), propget, helpstring("Command-line arguments to be passed to the linker.")] HRESULT Options([out,retval] BSTR *pValue); [id(1), propput, helpstring("Command-line arguments to be passed to the linker.")] HRESULT Options([in] BSTR Value); [id(2), propget, helpstring("A list of extra libraries to link with.")] HRESULT Libraries([out,retval] BSTR *pValue); [id(2), propput, helpstring("A list of extra libraries to link with.")] HRESULT Libraries([in] BSTR Value); [id(3), propget, helpstring("A list of directories to search for libraries.")] HRESULT LibraryDirectories([out,retval] BSTR *pValue); [id(3), propput, helpstring("A list of directories to search for libraries.")] HRESULT LibraryDirectories([in] BSTR Value); } [ uuid(A1DA9B0F-1AFF-48d7-AADA-0A9504BDBA07), version(1.0), pointer_default(unique), dual ] interface IHaskellFileItem : IDispatch { [id(1), propget, helpstring("Name of the file.")] HRESULT Name([out,retval] BSTR *pValue); [id(1), propput, helpstring("Name of the file.")] HRESULT Name([in] BSTR Value); [id(2), propget, helpstring("Location of the file.")] HRESULT FilePath([out, retval] BSTR *pValue); } [ uuid(DBA4A5EB-F98E-4f37-AC47-FF7AB15F561B), version(1.0), pointer_default(unique), dual ] interface IHaskellFolderItem : IDispatch { [id(1), propget, helpstring("Name of the folder.")] HRESULT Name([out,retval] BSTR *pValue); [id(1), propput, helpstring("Name of the folder.")] HRESULT Name([in] BSTR Value); [id(2), propget, helpstring("Specifies whether the directory is a root for Haskell modules hierarchy.")] HRESULT SourceDirectory([out,retval] enum YesNo *pValue); [id(2), propput, helpstring("Specifies whether the directory is a root for Haskell modules hierarchy.")] HRESULT SourceDirectory([in] enum YesNo Value); [id(3), propget, helpstring("Location of the file.")] HRESULT FilePath([out, retval] BSTR *pValue); } [ uuid(DE823321-4BD4-4171-9738-8DC4F6268E20), version(1.0), pointer_default(unique), dual ] interface IHaskellModuleItem : IDispatch { [id(1), propget, helpstring("Name of the file where this module is defined.")] HRESULT Name([out,retval] BSTR *pValue); [id(1), propput, helpstring("Name of the file where this module is defined.")] HRESULT Name([in] BSTR Value); [id(2), propget, helpstring("Name of the module.")] HRESULT ModuleName([out,retval] BSTR *pValue); [id(3), propget, helpstring("Determines whether the module is exposed from the package.")] HRESULT Exposed([out,retval] enum YesNo *pValue); [id(3), propput, helpstring("Determines whether the module is exposed from the package.")] HRESULT Exposed([in] enum YesNo Value); [id(4), propget, helpstring("Location of the file.")] HRESULT FilePath([out, retval] BSTR *pValue); } [ uuid(DDEB8335-EF48-4a5a-8B6D-2A7BD68CD420), version(1.0), pointer_default(unique), dual ] interface IHaskellPackageItem : IDispatch { [id(1), propget, helpstring("Package name.")] HRESULT Name([out,retval] BSTR *pValue); [id(2), propget, helpstring("Version range.")] HRESULT VersionRange([out, retval] BSTR *pValue); [id(2), propput, helpstring("Version range.")] HRESULT VersionRange([in] BSTR Value); } }