⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ititleoverlay.h

📁 简单的COM 实际例子 用法1
💻 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__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -