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

📄 serverinfoview.h

📁 Visual C++通信编程工程实例精解(附盘)
💻 H
字号:
#if !defined(AFX_SERVERINFOVIEW_H__EF2D56EF_FB4E_4B6F_B88D_512911B01DD4__INCLUDED_)
#define AFX_SERVERINFOVIEW_H__EF2D56EF_FB4E_4B6F_B88D_512911B01DD4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ServerInfoView.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CServerInfoView form view

#ifndef __AFXEXT_H__
#include <afxext.h>
#endif

#include "InfoFormView.h"
#include "ConnectionPoint.h"
#include "IAdvSink.hpp"
//#include <Afxtempl.h>

class OPCServerInfo
{
public:
    OPCServerInfo( LPOLESTR ProgID, LPOLESTR Description, CLSID& clsid )
        : m_ProgID(ProgID), m_Description(Description), m_clsid(clsid) {}
    CString     m_ProgID;
    CString     m_Description;
    CLSID       m_clsid;
	CString     m_nodeName;//网络中节点(机器)名
	HTREEITEM   m_indexItem;//将由此找到对应的前面信息.
};

typedef CTypedPtrList<CPtrList, OPCServerInfo*> OPCServerList; 

class CServerInfoView : public CFormView
{
protected:
	CServerInfoView();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CServerInfoView)

// Form Data
public:
	//{{AFX_DATA(CServerInfoView)
	enum { IDD = IDD_SERVER_INFO };
	CTreeCtrl	m_server;
	//}}AFX_DATA

// Attributes
public:
	CImageList *m_pImageList;//记录图标符号server
	HTREEITEM m_hRoot1,m_hRoot2;//根
	HTREEITEM m_hLocalDA1,m_hLocalDA2;//本地1.0Server,2.0Server
	HTREEITEM m_hRemoteDA1,m_hRemoteDA2;//远端1.0Server,2.0Server
	CStringList m_strNodeList;//网络上所有的计算机。包括本机接点。
	CString m_strLocalName;//本机节点名。
	CInfoFormView *m_pInfoForm;//指示信息列表框.
	//OPC
	OPCServerList    m_vServers;//1.0&2.0
	BOOL m_bHaveOPCConnected;//已经有连接的OPC 
    OPCServer opcServer;// the connected server
    OPCGroupStateMgt opcGroup;  // the single group on this server
    // OPC 1.0 IDataObject
    DWORD           dwConnection1;
    DWORD           dwConnection2;
    OPCHANDLE       groupHandle;
    CAdviseSink*    testSink;
    // OPC 2.0 ConnectionPoint
    OPCCallback*    callbackCP;
    OPCShutdown*    shutdownCP;
    DWORD           dwShutdownConnection;
    BOOL            usingCP;
// Operations
public:
	void InitRootInfo(void);//初始化
	BOOL EnumerateNodes(LPNETRESOURCE lpnr);//找出网络上所有计算机
	CInfoFormView *GetInfoFormView();//通过父窗口找到信息显示列表框.
	OPCServerInfo *GetSelectedServerInfo(void);//找到当前选择的OPC服务器的信息.
	//OPC
	BOOL   GetOPCServers10(LPTSTR node = NULL);
	BOOL   GetOPCServers20(LPTSTR node,CLSID);
	void   ReleaseAllResource(void);//释放所有资源
	BOOL   FindThisCLSID(CString,CLSID);//是否已经存在.
	HTREEITEM  AddV1ItemToTree(OPCServerInfo);//将1.0的DA加到树中
	HTREEITEM  AddV2ItemToTree(OPCServerInfo);//将2.0的DA加到树中
	BOOL ConnectOPCServer(OPCServerInfo*);//连接OPC服务器
	void SetConnectPoint(void); //设置连接点。
	void DisconnectOPCServer(BOOL);//断开OPC服务器.
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CServerInfoView)
	public:
	virtual void OnInitialUpdate();
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~CServerInfoView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
	//{{AFX_MSG(CServerInfoView)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	afx_msg void OnNetInfo();
	afx_msg void OnServerCon();
	afx_msg void OnUpdateServerCon(CCmdUI* pCmdUI);
	afx_msg void OnSelchangedTreeServer(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnServerInterupt();
	afx_msg void OnUpdateServerInterupt(CCmdUI* pCmdUI);
	afx_msg void OnGroupPara();
	afx_msg void OnUpdateGroupPara(CCmdUI* pCmdUI);
	afx_msg void OnServerStatus();
	afx_msg void OnUpdateServerStatus(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SERVERINFOVIEW_H__EF2D56EF_FB4E_4B6F_B88D_512911B01DD4__INCLUDED_)

⌨️ 快捷键说明

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