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

📄 cfiltertitleoverlay.h

📁 简单的COM 实际例子 用法1
💻 H
字号:
//
// CFilterTitleOverlay.h
//

#ifndef __H_CFilterTitleOverlay__
#define __H_CFilterTitleOverlay__

#include "ITitleOverlay.h"
#include "COverlayController.h"
#include "OverlayDefs.h"

class CFilterTitleOverlay : public CTransInPlaceFilter
						  , public ISpecifyPropertyPages
						  , public ITitleOverlay
{
private:
	OVERLAY_TYPE            mOverlayType;
	COverlayController *    mOverlayController;

	CCritSec                mITitleOverlaySync;
	BOOL                    mNeedEstimateFrameRate;

private:
	CFilterTitleOverlay(TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
	~CFilterTitleOverlay();

	HRESULT SetInputVideoInfoToController(void);
	void ReleaseOverlayController(void);
	void SideEffectOverlayTypeChanged(void);

public:
	static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *phr);
	DECLARE_IUNKNOWN;
	// Basic COM - used here to reveal our own interfaces
	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);

	// check if you can support mtIn
    virtual HRESULT CheckInputType(const CMediaType* mtIn); // PURE
	virtual HRESULT Transform(IMediaSample *pSample); // PURE

	// Delegating methods
	virtual HRESULT CompleteConnect(PIN_DIRECTION direction, IPin *pReceivePin);
	virtual HRESULT StartStreaming();
    virtual HRESULT StopStreaming();

	// --- ISpecifyPropertyPages ---
	STDMETHODIMP GetPages(CAUUID *pPages);

	// --- ITitleOverlay methods ---
	STDMETHODIMP put_TitleOverlayType(long inOverlayType);
	STDMETHODIMP get_TitleOverlayType(long * outOverlayType);
	STDMETHODIMP put_TitleOverlayStyle(int inUsingCover);
	STDMETHODIMP get_TitleOverlayStyle(int * outUsingCover);
	STDMETHODIMP put_Title(const char * inTitle, int inLength);
	STDMETHODIMP get_Title(char * outBuffer, int * outLength);
	STDMETHODIMP put_TitleColor(BYTE inR, BYTE inG, BYTE inB);
	STDMETHODIMP get_TitleColor(BYTE * outR, BYTE * outG, BYTE * outB);
	STDMETHODIMP put_TitleStartPosition(POINT inStartPos);
	STDMETHODIMP get_TitleStartPosition(POINT * outStartPos);
	STDMETHODIMP put_TitleFont(LOGFONT inFont);
	STDMETHODIMP get_TitleFont(LOGFONT * outFont);
	STDMETHODIMP put_TitleDuration(double inStart, double inEnd);
	STDMETHODIMP get_TitleDuration(double * outStart, double * outEnd);
};

#endif // __H_CFilterTitleOverlay__

⌨️ 快捷键说明

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