📄 sink.cpp
字号:
// Sink.cpp: implementation of the CSink class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Use.h"
#include "Sink.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSink::CSink()
{
m_pEdit = NULL;
}
CSink::~CSink()
{
}
// STDMETHODIMP 是宏,等价于 long __stdcall
STDMETHODIMP CSink::QueryInterface(const struct _GUID &iid,void ** ppv)
{
*ppv=this;
return S_OK;
}
ULONG __stdcall CSink::AddRef(void)
{ return 1; } // 做个假的就可以,因为反正这个对象在程序结束前是不会退出的
ULONG __stdcall CSink::Release(void)
{ return 0; } // 做个假的就可以,因为反正这个对象在程序结束前是不会退出的
STDMETHODIMP CSink::GetTypeInfoCount(unsigned int *)
{ return E_NOTIMPL; } // 不用实现,反正也不用
STDMETHODIMP CSink::GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{ return E_NOTIMPL; } // 不用实现,反正也不用
STDMETHODIMP CSink::GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{ return E_NOTIMPL; } // 不用实现,反正也不用
STDMETHODIMP CSink::Invoke(
long dispID,
const struct _GUID &,
unsigned long,
unsigned short,
struct tagDISPPARAMS * pParams,
struct tagVARIANT *,
struct tagEXCEPINFO *,
unsigned int *)
{ // 只需要实现这个就足够啦
switch(dispID)
{
case 1: //根据不同的dispID,完成不同的回调函数
if( !m_pEdit )
{
AfxMessageBox( _T("没有调用 SetResultWnd() 设置显示结果的窗口") );
}
else
{
CString str;
str.Format( _T("%d"), pParams->rgvarg[0].lVal );
m_pEdit->SetWindowText( str );
}
break;
default:
AfxMessageBox( _T("怎么可能,根本就没有这个号码的函数呀") );
break;
}
return S_OK;
}
void CSink::SetResultWnd(CEdit *pEdit)
{
m_pEdit = pEdit;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -