NeroVisionAPI.idl 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. /******************************************************************************
  2. |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. |* PARTICULAR PURPOSE.
  6. |*
  7. |* Copyright 1995-2005 Nero AG and its licensors. All Rights Reserved.
  8. |*-----------------------------------------------------------------------------
  9. |* NeroSDK / NeroVisionAPI
  10. |*
  11. |* PROGRAM: NeroVisionAPI.idl
  12. |*
  13. |* PURPOSE: Interface definition of the NeroVision API
  14. ******************************************************************************/
  15. [
  16. uuid(BF84BFD8-B411-4948-9BDA-3A6C02CE7BD4),
  17. version(1.2),
  18. helpstring("NeroVision API 1.2 Library")
  19. ]
  20. library NeroVisionAPI
  21. {
  22. importlib("STDOLE2.TLB");
  23. #include "ContentProvider.idl"
  24. [
  25. local, uuid(8DE64FCC-95CD-42dc-A332-D435E3326EEF),
  26. helpstring("Error object containing error code and error description.")
  27. ]
  28. interface IError : IUnknown
  29. {
  30. typedef [helpstring("NeroVision API error codes.")]
  31. enum
  32. {
  33. NoError = 0,
  34. Canceled,
  35. InternalError,
  36. APIUsageError,
  37. InstallationError,
  38. XMLSyntaxError,
  39. FileIOError,
  40. MenuTemplateError,
  41. NeroAPIError,
  42. TranscodingFailed,
  43. DiscOverflow,
  44. ContentResolverError,
  45. ContentProviderError,
  46. DiscStructureError,
  47. PreviewError,
  48. EffectError
  49. } ErrorCode;
  50. [propget, helpstring("Gets the error code")]
  51. HRESULT ErrCode([out, retval] ErrorCode* errCode);
  52. [propget, helpstring("Gets the error text")]
  53. HRESULT ErrText([out, retval] BSTR* errStr);
  54. [propget, helpstring("Gets the ID of the XML tag involved in the error")]
  55. HRESULT XMLID([out, retval] BSTR* xmlID);
  56. };
  57. [
  58. local, uuid(25C8265E-D1F4-4502-8664-EA1F497EF76C),
  59. helpstring("The result of createNeroBurnContext().")
  60. ]
  61. interface INeroBurnContext : IUnknown
  62. {
  63. [propget, helpstring("Gets the resulting NERO_CD_FORMAT (2. parameter of NeroBurn()).")]
  64. HRESULT NERO_CD_FORMAT([out, retval] int* pFormat);
  65. [propget, helpstring("Gets pointer to the resulting NERO_WRITE_CD structure (3. parameter of NeroBurn()).")]
  66. HRESULT NERO_WRITE_CD([out, retval] void** pNWCD);
  67. };
  68. [
  69. local, uuid(DA1F536B-6548-4185-9372-6F0C4539C1D0),
  70. helpstring("Interface for handling progress information.")
  71. ]
  72. interface IProgressCallback : IUnknown
  73. {
  74. typedef [helpstring("Action reported by ProgressCallback.")]
  75. enum
  76. {
  77. Estimating = 0,
  78. Preparing,
  79. Transcoding,
  80. Generating,
  81. Analyzing
  82. } ProgressAction;
  83. [helpstring("Called regularly to report progress of the current sub-task and the total function called.")]
  84. 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);
  85. [helpstring("Called regularly to check whether the called function should be canceled.")]
  86. HRESULT ShouldCancel([out, retval] boolean* pbCancel);
  87. };
  88. [
  89. local, uuid(01ED3DAA-F36D-470b-AC64-7B1E950796F3),
  90. helpstring("A NeroVision project describes a DVD/(S)VCD.")
  91. ]
  92. interface IProject : IUnknown
  93. {
  94. [helpstring("Sets the project content from raw XML data.")]
  95. HRESULT SetXMLString([in] const char* data, [out, retval] boolean* pbSuccess);
  96. [helpstring("Sets the project content from a XML file.")]
  97. HRESULT SetXMLFile([in] BSTR filepath, [out, retval] boolean* pbSuccess);
  98. [helpstring("Estimates the size of the resulting disk.")]
  99. HRESULT EstimateDiskSize([out] hyper* size, [out, retval] boolean* pbSuccess);
  100. [helpstring("Estimates the time needed by CreateNeroBurnContext().")]
  101. HRESULT EstimateCreateNeroBurnContextTime([in] IProgressCallback* pCallback, [out] double* seconds, [out, retval] boolean* pbSuccess);
  102. [helpstring("Creates a NeroBurnContext object which can be burned with Nero. if a ProgressCallback is passed, it will receive progress information.")]
  103. HRESULT CreateNeroBurnContext([in] HMODULE hNeroAPIDLL, [in] IProgressCallback* pCallback, [out] INeroBurnContext** ppburnContext, [out, retval] boolean* pbSuccess);
  104. [propput, helpstring("Sets the directory used for storing temporary files. Defaults to the system temp. directory.")]
  105. HRESULT TempDirectory([in] BSTR path);
  106. [propget, helpstring("Gets the error object of the last called function")]
  107. HRESULT LastError([out, retval] IError** pError);
  108. };
  109. [
  110. local, uuid(BCA08AF9-0D38-4535-84BD-37DAF6B5CFE5),
  111. helpstring("Extended interface of IProject.")
  112. ]
  113. interface IProject2 : IProject
  114. {
  115. [propput, helpstring("Sets a ContentResolver for resolving references to virtual content the XML.")]
  116. HRESULT ContentResolver([in] IContentResolver* resolver);
  117. };
  118. [
  119. local, uuid(2377307A-AD38-477b-A4EB-EC4BE0ADD508),
  120. helpstring("Extended interface of IProject.")
  121. ]
  122. interface IProject3 : IProject2
  123. {
  124. [propget, helpstring("Returns the supported XML schema.")]
  125. HRESULT SupportedXMLSchema([out, retval] BSTR* schema);
  126. };
  127. [
  128. local, uuid(48BE2DAA-E6E0-45d0-BC98-B8B9304753DC),
  129. helpstring("Interface for exporting a movie title to a file.")
  130. ]
  131. interface IMovieExporter : IUnknown
  132. {
  133. [helpstring("Sets the movie to export, which can be either a whole movie project or a videotitle/slideshow of a (s)vcd/dvd project.")]
  134. HRESULT SetSource([in] IProject* prj, [in] BSTR xmlID, [out, retval] boolean* pbSuccess);
  135. [helpstring("Estimates the size of the resulting file.")]
  136. HRESULT EstimateFileSize([out] hyper* size, [out, retval] boolean* pbSuccess);
  137. [helpstring("Exports the movie to file. If a ProgressCallback is passed, it will receive progress information.")]
  138. HRESULT ExportMovie([in] BSTR filepath, [in] IProgressCallback* pCallback, [out, retval] boolean* pbSuccess);
  139. [propget, helpstring("Gets the error object of the last called function.")]
  140. HRESULT LastError([out, retval] IError** pError);
  141. };
  142. [
  143. local, uuid(4860E8AC-4431-4020-9985-678FA6690A8E),
  144. helpstring("Interface for enumerating the installed effects.")
  145. ]
  146. interface IEffectEnumerator : IUnknown
  147. {
  148. typedef [helpstring("The categories of an effect.")]
  149. enum
  150. {
  151. EffectCategory_Video,
  152. EffectCategory_Transition,
  153. EffectCategory_Text
  154. } EffectCategory;
  155. [propget, helpstring("Gets the number of effects installed.")]
  156. HRESULT NumEffects([out, retval] int* numEffects);
  157. [helpstring("Gets base information about an effect. 'typeid' is the unique identifier ('type' attribute in XML).")]
  158. HRESULT GetEffectBaseInfo([in] int effectIndex, [out] BSTR* typeID, [out] BSTR* displayName, [out] EffectCategory* category, [out, retval] boolean* pbSuccess);
  159. [propget, helpstring("Gets the error object of the last called function")]
  160. HRESULT LastError([out, retval] IError** pError);
  161. };
  162. [
  163. uuid(BB32FBED-A8CC-41a8-8A15-3F6D5E3D25C7),
  164. helpstring("NeroVision project object"),
  165. ]
  166. coclass Project
  167. {
  168. [default] interface IProject3;
  169. };
  170. [
  171. uuid(7F4A72B1-E512-4e8d-BFED-CC6606FF1824),
  172. helpstring("Movie exporter object"),
  173. ]
  174. coclass MovieExporter
  175. {
  176. [default] interface IMovieExporter;
  177. };
  178. [
  179. uuid(E3B54E5D-579C-4ff2-853B-E21DD05EA690),
  180. helpstring("Effect enumerator object"),
  181. ]
  182. coclass EffectEnumerator
  183. {
  184. [default] interface IEffectEnumerator;
  185. };
  186. #include "MediaAnalyzer.idl"
  187. #include "PreviewSimulation.idl"
  188. };