IDirectVobSub.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:7k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. #pragma once
  22. #include "......subtitlesSTS.h"
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26.     [uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56")]
  27. interface IDirectVobSub : public IUnknown 
  28.     {
  29.         STDMETHOD(get_FileName) (THIS_
  30.                     WCHAR* fn // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
  31.                  ) PURE;
  32.         STDMETHOD(put_FileName) (THIS_
  33.                     WCHAR* fn
  34.                  ) PURE;
  35. STDMETHOD(get_LanguageCount) (THIS_
  36. int* nLangs
  37.                  ) PURE;
  38. STDMETHOD(get_LanguageName) (THIS_
  39. int iLanguage, 
  40. WCHAR** ppName // the returned *ppName is allocated with CoTaskMemAlloc
  41.                  ) PURE;
  42. STDMETHOD(get_SelectedLanguage) (THIS_
  43. int* iSelected
  44.                  ) PURE;
  45.         STDMETHOD(put_SelectedLanguage) (THIS_
  46. int iSelected
  47.                  ) PURE;
  48.         STDMETHOD(get_HideSubtitles) (THIS_
  49.                     bool* fHideSubtitles
  50.                  ) PURE;
  51.         STDMETHOD(put_HideSubtitles) (THIS_
  52.                     bool fHideSubtitles
  53.                  ) PURE;
  54.         STDMETHOD(get_PreBuffering) (THIS_
  55. bool* fDoPreBuffering
  56.                  ) PURE;
  57.         STDMETHOD(put_PreBuffering) (THIS_
  58. bool fDoPreBuffering
  59.                  ) PURE;
  60.         STDMETHOD(get_Placement) (THIS_
  61. bool* fOverridePlacement,
  62. int* xperc,
  63. int* yperc
  64.                  ) PURE;
  65.         STDMETHOD(put_Placement) (THIS_
  66. bool fOverridePlacement,
  67. int xperc,
  68. int yperc
  69.                  ) PURE;
  70.         STDMETHOD(get_VobSubSettings) (THIS_
  71. bool* fBuffer,
  72. bool* fOnlyShowForcedSubs,
  73. bool* fPolygonize
  74.                  ) PURE;
  75.         STDMETHOD(put_VobSubSettings) (THIS_
  76. bool fBuffer,
  77. bool fOnlyShowForcedSubs,
  78. bool fPolygonize
  79.                  ) PURE;
  80.         STDMETHOD(get_TextSettings) (THIS_
  81. void* lf,
  82. int lflen, // depending on lflen, lf must point to LOGFONTA or LOGFONTW
  83. COLORREF* color,
  84. bool* fShadow,
  85. bool* fOutline,
  86. bool* fAdvancedRenderer
  87.                  ) PURE;
  88.         STDMETHOD(put_TextSettings) (THIS_
  89. void* lf,
  90. int lflen,
  91. COLORREF color,
  92. bool fShadow,
  93. bool fOutline,
  94. bool fAdvancedRenderer
  95.                  ) PURE;
  96.         STDMETHOD(get_Flip) (THIS_
  97.                     bool* fPicture,
  98.                     bool* fSubtitles
  99.                  ) PURE;
  100.         STDMETHOD(put_Flip) (THIS_
  101.                     bool fPicture,
  102.                     bool fSubtitles
  103.                  ) PURE;
  104.         STDMETHOD(get_OSD) (THIS_
  105. bool* fOSD
  106.                  ) PURE;
  107.         STDMETHOD(put_OSD) (THIS_
  108. bool fOSD
  109.                  ) PURE;
  110.         STDMETHOD(get_SaveFullPath) (THIS_
  111. bool* fSaveFullPath
  112.                  ) PURE;
  113.         STDMETHOD(put_SaveFullPath) (THIS_
  114. bool fSaveFullPath
  115.                  ) PURE;
  116.         STDMETHOD(get_SubtitleTiming) (THIS_
  117. int* delay,
  118. int* speedmul,
  119. int* speeddiv
  120.                  ) PURE;
  121.         STDMETHOD(put_SubtitleTiming) (THIS_
  122. int delay,
  123. int speedmul,
  124. int speeddiv
  125.                  ) PURE;
  126.         STDMETHOD(get_MediaFPS) (THIS_
  127. bool* fEnabled,
  128. double* fps
  129.                  ) PURE;
  130.         STDMETHOD(put_MediaFPS) (THIS_
  131. bool fEnabled,
  132. double fps
  133.                  ) PURE;
  134. // no longer supported
  135.         STDMETHOD(get_ColorFormat) (THIS_
  136. int* iPosition
  137.                  ) PURE;
  138.         STDMETHOD(put_ColorFormat) (THIS_
  139. int iPosition
  140.                  ) PURE;
  141. //
  142.         STDMETHOD(get_ZoomRect) (THIS_
  143. NORMALIZEDRECT* rect
  144.                  ) PURE;
  145.         STDMETHOD(put_ZoomRect) (THIS_
  146. NORMALIZEDRECT* rect
  147.                  ) PURE;
  148. //
  149.         STDMETHOD(UpdateRegistry) (THIS_
  150.                  ) PURE;
  151. //
  152. STDMETHOD(HasConfigDialog) (THIS_
  153. int iSelected
  154. ) PURE;
  155. STDMETHOD(ShowConfigDialog) (THIS_ // if available, this will popup a child dialog allowing the user to edit the style options
  156. int iSelected, 
  157. HWND hWndParent
  158. ) PURE; 
  159. //
  160.         STDMETHOD(IsSubtitleReloaderLocked) (THIS_
  161. bool* fLocked
  162.                  ) PURE;
  163.         STDMETHOD(LockSubtitleReloader) (THIS_
  164. bool fLock
  165.                  ) PURE;
  166. STDMETHOD(get_SubtitleReloader) (THIS_
  167. bool* fDisabled
  168.                  ) PURE;
  169.         STDMETHOD(put_SubtitleReloader) (THIS_
  170. bool fDisable
  171.                  ) PURE;
  172. //
  173.         STDMETHOD(get_ExtendPicture) (THIS_
  174. int* horizontal, // 0 - disabled, 1 - mod32 extension (width = (width+31)&~31)
  175. int* vertical, // 0 - disabled, 1 - 16:9, 2 - 4:3, 0x80 - crop (use crop together with 16:9 or 4:3, eg 0x81 will crop to 16:9 if the picture was taller)
  176. int* resx2, // 0 - disabled, 1 - enabled, 2 - depends on the original resolution
  177. int* resx2minw, // resolution doubler will be used if width*height <= resx2minw*resx2minh (resx2minw*resx2minh equals to 384*288 by default)
  178. int* resx2minh 
  179.                  ) PURE;
  180.         STDMETHOD(put_ExtendPicture) (THIS_
  181. int horizontal,
  182. int vertical,
  183. int resx2,
  184. int resx2minw,
  185. int resx2minh
  186.                  ) PURE;
  187.         STDMETHOD(get_LoadSettings) (THIS_
  188. int* level, // 0 - when needed, 1 - always, 2 - disabled
  189. bool* fExternalLoad,
  190. bool* fWebLoad, 
  191. bool* fEmbeddedLoad
  192.                  ) PURE;
  193.         STDMETHOD(put_LoadSettings) (THIS_
  194. int level,
  195. bool fExternalLoad,
  196. bool fWebLoad, 
  197. bool fEmbeddedLoad
  198. ) PURE;
  199. };
  200.     [uuid("FE6EC6A0-21CA-4970-9EF0-B296F7F38AF0")]
  201. interface ISubClock : public IUnknown
  202. {
  203.         STDMETHOD(SetTime)(REFERENCE_TIME rt) PURE;
  204.         STDMETHOD_(REFERENCE_TIME, GetTime)() PURE;
  205. };
  206.     [uuid("0665B760-FBC1-46C3-A35F-E471527C96A4")]
  207. interface ISubClock2 : public ISubClock
  208. {
  209.         STDMETHOD(SetAvgTimePerFrame)(REFERENCE_TIME rt) PURE;
  210.         STDMETHOD(GetAvgTimePerFrame)(REFERENCE_TIME* prt) PURE; // return S_OK only if *prt was set and is valid
  211. };
  212.     [uuid("AB52FC9C-2415-4dca-BC1C-8DCC2EAE8150")]
  213. interface IDirectVobSub2 : public IDirectVobSub
  214. {
  215.         STDMETHOD(AdviseSubClock) (THIS_
  216.                     ISubClock* pSubClock
  217. ) PURE;
  218. STDMETHOD_(bool, get_Forced) (THIS_
  219. ) PURE;
  220.         STDMETHOD(put_Forced) (THIS_
  221.                     bool fForced
  222. ) PURE;
  223. STDMETHOD(get_TextSettings) (THIS_
  224. STSStyle* pDefStyle
  225. ) PURE;
  226. STDMETHOD(put_TextSettings) (THIS_
  227. STSStyle* pDefStyle
  228. ) PURE;
  229. };
  230. #ifdef __cplusplus
  231. }
  232. #endif