www.pudn.com > aa.rar > ITitleOverlay.h


// 
// ITitleOverlay.h 
// Desc: DirectShow sample code - custom interface 
// 
 
#ifndef __H_ITitleOverlay__ 
#define __H_ITitleOverlay__ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
 
//---------------------------------------------------------------------------- 
// ITitleOverlay's GUID 
 
// {5E5B3386-6F9F-4a47-AC8B-7A302138D7FF} 
DEFINE_GUID(IID_ITitleOverlay,  
0x5e5b3386, 0x6f9f, 0x4a47, 0xac, 0x8b, 0x7a, 0x30, 0x21, 0x38, 0xd7, 0xff); 
 
//---------------------------------------------------------------------------- 
 
//---------------------------------------------------------------------------- 
// ITitleOverlay 
//---------------------------------------------------------------------------- 
DECLARE_INTERFACE_(ITitleOverlay, IUnknown) 
{ 
	// 设置Filter进行叠加的类型,如果需要改变类型,这个函数必须第一个设置, 
	// 调用这个函数成功后,才能调用其他的函数进行参数设置。 
	// 可以设置的叠加类型参见枚举类型OVERLAY_TYPE的定义。 
	STDMETHOD(put_TitleOverlayType) (THIS_ 
		long inOverlayType    
	) PURE; 
 
	STDMETHOD(get_TitleOverlayType) (THIS_ 
		long * outOverlayType      
	) PURE; 
 
	// 设置像素转换的方式(可选),默认使用直接替换方式。 
	// 当字符颜色与视频背景颜色接近时,使用翻转叠加方式比较合适。 
	STDMETHOD(put_TitleOverlayStyle) (THIS_ 
		int inUsingCover    
	) PURE; 
 
	STDMETHOD(get_TitleOverlayStyle) (THIS_ 
		int * outUsingCover      
	) PURE; 
 
	// 设置欲叠加字符的内容 
	STDMETHOD(put_Title) (THIS_ 
		const char * inTitle, int inLength     
	) PURE; 
 
	STDMETHOD(get_Title) (THIS_ 
		char * outBuffer, int * outLength      
	) PURE; 
 
	// 设置欲叠加字符的颜色,分别为R, G, B分量值 
	STDMETHOD(put_TitleColor) (THIS_  
		BYTE inR, BYTE inG, BYTE inB   
	) PURE; 
 
	STDMETHOD(get_TitleColor) (THIS_ 
		BYTE * outR, BYTE * outG, BYTE * outB     
	) PURE; 
 
	// 设置欲叠加字符的开始坐标 
	STDMETHOD(put_TitleStartPosition) (THIS_ 
		POINT inStartPos 
	) PURE; 
 
	STDMETHOD(get_TitleStartPosition) (THIS_ 
		POINT * outStartPos   
	) PURE; 
 
	// 设置欲叠加字符的字体,参数采用Windows GDI的LOGFONT数据结构 
	STDMETHOD(put_TitleFont) (THIS_   
		LOGFONT inFont 
	) PURE; 
 
	STDMETHOD(get_TitleFont) (THIS_ 
		LOGFONT * outFont   
	) PURE; 
 
	// 设置欲叠加字符的生存周期,参数一个是开始时间,一个是结束时间,以秒为单位 
	// 如果inEnd值为-1,表示一直迭加到视频结束 
	STDMETHOD(put_TitleDuration) (THIS_   
		double inStart, double inEnd 
	) PURE; 
 
	STDMETHOD(get_TitleDuration) (THIS_ 
		double * outStart, double * outEnd 
	) PURE; 
}; 
//---------------------------------------------------------------------------- 
 
#ifdef __cplusplus 
} 
#endif 
 
#endif // __H_ITitleOverlay__