📄 d180.bmp.txt
字号:
);
typedef CComObject<OPCCallback> OPCCallbackObject; //CComObject是一个模板,为不能被聚
合的组件设计,包括IUnknown接口。按照规则CComObject从OPCCallback继承,所作的工作
由OPCCallback中的宏来完成。
class OPCShutdown : //实现接口 OPCShutdown的类
public IOPCShutdown,
public CComObjectRootEx<CComMultiThreadModel>
{
public:
OPCShutdown() {;}
virtual ~OPCShutdown(){;}
//COM映射,与前面OPCCallback类似。
BEGIN_COM MAP(OPCShutdown)
COM_INTERFACE_ENTRY (IOPCShutdown)
END_COM_MAP()
DECLARE_NOT_AGGREGATABLE(OPCShutdown)/,不允许被外部对象聚合
STDMETHODIMP ShutdownRequest(LPCWSTR szReason); //OPC回调函数,当OPC服务嚣关
闭时,自动执行此函数。
CString reason;
);
typedef CComObject<OPCShutdown> OPCShutdownObject;
#endif
实现头文件中的两个类,实现代码如下:
180
extem CValueMsgView *theMsgValue;
,,如图5-13所示,theMsgValue是应用程序中接收数据的视图指针。
CComModule_Module; //ATL规则
,,实现类OPCCallback,这里给出了四个函数的实现代码。
STDMETHODIMP OPCCallback::OnDataChange(
DWORD Transid,
OPCHANDLEgrphandle,
HRESULTmasterquality,
HRESULT mastererror,
DWORD count'
OPCHANDLE+ clienthandles,
VARIANT 4 values,
WORD 4 quality,
FILETIME *time,
HRESULT 8 errors)
{
//If Transid I-0.this is a refresh
for( DWORD index=0; index<count; index++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -