求如何在delphi中使用DirectShow中的 IAMErrorLog

lightrain 2009-10-17 10:59:41
在Delphi中实现了一个DirectShow的DES程序,现在发现程序有些小问题,想使用DirectShow中提供的错误回调机制进行查看,但不知如何才能正确使用,请大侠支招。

确切的说,应该是如何将C++类翻译成Delphi的代码,该类是DirectShow中的一个示例,类如下:


类声明
class CErrReporter : public IAMErrorLog
{
protected:
long m_lRef; // reference count
public:
CErrReporter() { m_lRef = 0; }
// IUnkown
STDMETHOD( QueryInterface( REFIID, void** ) );
STDMETHOD_(ULONG, AddRef() );
STDMETHOD_(ULONG, Release() );
// IAMErrorLog
STDMETHOD( LogError(...) );
}

部分实现
STDMETHOD CErrReporter::QueryInterface( REFIID riid, void **ppv )
{
if( ppv == NULL ) return E_POINTER;

*ppv = NULL;
if( riid == IID_IUnknown )
*ppv = static_cast<IUnknown*>(this);
else if( riid == IID_IAMErrorLog )
*ppv = static_cast<IAMErrorLog*>(this);
else
return E_NOINTERFACE;

AddRef();
return S_OK;
}

....



谢谢,分不够的话可另外开贴。
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjq2003 2009-10-18
  • 打赏
  • 举报
回复
来学习一下,

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧