/****************************************************************************** |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A |* PARTICULAR PURPOSE. |* |* Copyright 1995-2005 Nero AG and its licensors. All Rights Reserved. |*----------------------------------------------------------------------------- |* NeroSDK / NeroVisionAPI |* |* PROGRAM: NeroVisionAPI.idl |* |* PURPOSE: Interface definition of the NeroVision API ******************************************************************************/ [ uuid(BF84BFD8-B411-4948-9BDA-3A6C02CE7BD4), version(1.2), helpstring("NeroVision API 1.2 Library") ] library NeroVisionAPI { importlib("STDOLE2.TLB"); #include "ContentProvider.idl" [ local, uuid(8DE64FCC-95CD-42dc-A332-D435E3326EEF), helpstring("Error object containing error code and error description.") ] interface IError : IUnknown { typedef [helpstring("NeroVision API error codes.")] enum { NoError = 0, Canceled, InternalError, APIUsageError, InstallationError, XMLSyntaxError, FileIOError, MenuTemplateError, NeroAPIError, TranscodingFailed, DiscOverflow, ContentResolverError, ContentProviderError, DiscStructureError, PreviewError, EffectError } ErrorCode; [propget, helpstring("Gets the error code")] HRESULT ErrCode([out, retval] ErrorCode* errCode); [propget, helpstring("Gets the error text")] HRESULT ErrText([out, retval] BSTR* errStr); [propget, helpstring("Gets the ID of the XML tag involved in the error")] HRESULT XMLID([out, retval] BSTR* xmlID); }; [ local, uuid(25C8265E-D1F4-4502-8664-EA1F497EF76C), helpstring("The result of createNeroBurnContext().") ] interface INeroBurnContext : IUnknown { [propget, helpstring("Gets the resulting NERO_CD_FORMAT (2. parameter of NeroBurn()).")] HRESULT NERO_CD_FORMAT([out, retval] int* pFormat); [propget, helpstring("Gets pointer to the resulting NERO_WRITE_CD structure (3. parameter of NeroBurn()).")] HRESULT NERO_WRITE_CD([out, retval] void** pNWCD); }; [ local, uuid(DA1F536B-6548-4185-9372-6F0C4539C1D0), helpstring("Interface for handling progress information.") ] interface IProgressCallback : IUnknown { typedef [helpstring("Action reported by ProgressCallback.")] enum { Estimating = 0, Preparing, Transcoding, Generating, Analyzing } ProgressAction; [helpstring("Called regularly to report progress of the current sub-task and the total function called.")] HRESULT OnProgress([in] ProgressAction action, [in] BSTR itemname, [in] double currentRemain, [in] double currentTotal, [in] float currentFraction, [in] double totalRemain, [in] double totalTotal, [in] float totalFraction); [helpstring("Called regularly to check whether the called function should be canceled.")] HRESULT ShouldCancel([out, retval] boolean* pbCancel); }; [ local, uuid(01ED3DAA-F36D-470b-AC64-7B1E950796F3), helpstring("A NeroVision project describes a DVD/(S)VCD.") ] interface IProject : IUnknown { [helpstring("Sets the project content from raw XML data.")] HRESULT SetXMLString([in] const char* data, [out, retval] boolean* pbSuccess); [helpstring("Sets the project content from a XML file.")] HRESULT SetXMLFile([in] BSTR filepath, [out, retval] boolean* pbSuccess); [helpstring("Estimates the size of the resulting disk.")] HRESULT EstimateDiskSize([out] hyper* size, [out, retval] boolean* pbSuccess); [helpstring("Estimates the time needed by CreateNeroBurnContext().")] HRESULT EstimateCreateNeroBurnContextTime([in] IProgressCallback* pCallback, [out] double* seconds, [out, retval] boolean* pbSuccess); [helpstring("Creates a NeroBurnContext object which can be burned with Nero. if a ProgressCallback is passed, it will receive progress information.")] HRESULT CreateNeroBurnContext([in] HMODULE hNeroAPIDLL, [in] IProgressCallback* pCallback, [out] INeroBurnContext** ppburnContext, [out, retval] boolean* pbSuccess); [propput, helpstring("Sets the directory used for storing temporary files. Defaults to the system temp. directory.")] HRESULT TempDirectory([in] BSTR path); [propget, helpstring("Gets the error object of the last called function")] HRESULT LastError([out, retval] IError** pError); }; [ local, uuid(BCA08AF9-0D38-4535-84BD-37DAF6B5CFE5), helpstring("Extended interface of IProject.") ] interface IProject2 : IProject { [propput, helpstring("Sets a ContentResolver for resolving references to virtual content the XML.")] HRESULT ContentResolver([in] IContentResolver* resolver); }; [ local, uuid(2377307A-AD38-477b-A4EB-EC4BE0ADD508), helpstring("Extended interface of IProject.") ] interface IProject3 : IProject2 { [propget, helpstring("Returns the supported XML schema.")] HRESULT SupportedXMLSchema([out, retval] BSTR* schema); }; [ local, uuid(48BE2DAA-E6E0-45d0-BC98-B8B9304753DC), helpstring("Interface for exporting a movie title to a file.") ] interface IMovieExporter : IUnknown { [helpstring("Sets the movie to export, which can be either a whole movie project or a videotitle/slideshow of a (s)vcd/dvd project.")] HRESULT SetSource([in] IProject* prj, [in] BSTR xmlID, [out, retval] boolean* pbSuccess); [helpstring("Estimates the size of the resulting file.")] HRESULT EstimateFileSize([out] hyper* size, [out, retval] boolean* pbSuccess); [helpstring("Exports the movie to file. If a ProgressCallback is passed, it will receive progress information.")] HRESULT ExportMovie([in] BSTR filepath, [in] IProgressCallback* pCallback, [out, retval] boolean* pbSuccess); [propget, helpstring("Gets the error object of the last called function.")] HRESULT LastError([out, retval] IError** pError); }; [ local, uuid(4860E8AC-4431-4020-9985-678FA6690A8E), helpstring("Interface for enumerating the installed effects.") ] interface IEffectEnumerator : IUnknown { typedef [helpstring("The categories of an effect.")] enum { EffectCategory_Video, EffectCategory_Transition, EffectCategory_Text } EffectCategory; [propget, helpstring("Gets the number of effects installed.")] HRESULT NumEffects([out, retval] int* numEffects); [helpstring("Gets base information about an effect. 'typeid' is the unique identifier ('type' attribute in XML).")] HRESULT GetEffectBaseInfo([in] int effectIndex, [out] BSTR* typeID, [out] BSTR* displayName, [out] EffectCategory* category, [out, retval] boolean* pbSuccess); [propget, helpstring("Gets the error object of the last called function")] HRESULT LastError([out, retval] IError** pError); }; [ uuid(BB32FBED-A8CC-41a8-8A15-3F6D5E3D25C7), helpstring("NeroVision project object"), ] coclass Project { [default] interface IProject3; }; [ uuid(7F4A72B1-E512-4e8d-BFED-CC6606FF1824), helpstring("Movie exporter object"), ] coclass MovieExporter { [default] interface IMovieExporter; }; [ uuid(E3B54E5D-579C-4ff2-853B-E21DD05EA690), helpstring("Effect enumerator object"), ] coclass EffectEnumerator { [default] interface IEffectEnumerator; }; #include "MediaAnalyzer.idl" #include "PreviewSimulation.idl" };