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

📄 server2.h

📁 DCOM 上位机和嵌入式系统通信
💻 H
字号:
// Server2.h: Definition of the Server2 class
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SERVER2_H__0CA26674_61A7_11D5_B050_0050BAF2A927__INCLUDED_)
#define AFX_SERVER2_H__0CA26674_61A7_11D5_B050_0050BAF2A927__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// Server2

class Server2 : 
	public IDispatchImpl<IDataFlow, &IID_IDataFlow, &LIBID_COMSERVERLib>, 
	public IDispatchImpl<IDataChange, &IID_IDataChange, &LIBID_COMSERVERLib>, 
	public ISupportErrorInfo,
	public CComObjectRoot,
	public CComCoClass<Server2,&CLSID_Server2>
{
public:
	Server2() {
		int i;
	    fix_stno=255;
	    resendflag=0;
		if((Files.sysflg&1)==0)
		{
		  for(i=0;i<255;i++)
			File4.flag[i]=0xff;
		}
		for(i=0;i<255;i++)
		{
			if(File4.flag[i]!=0xff)
			   stinfo.stinfo[i]=2;
		}
        setEventRecord(4,0,0);

}
BEGIN_COM_MAP(Server2)
	COM_INTERFACE_ENTRY2(IDispatch, IDataFlow)
	COM_INTERFACE_ENTRY(IDataFlow)
	COM_INTERFACE_ENTRY(IDataChange)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
//DECLARE_NOT_AGGREGATABLE(Server2) 
// Remove the comment from the line above if you don't want your object to 
// support aggregation. 

DECLARE_REGISTRY_RESOURCEID(IDR_Server2)
// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IDataFlow

// IDataChange
public:
	static bool setEventRecord(int no,int vl1,int vl2);
	STDMETHOD(getotherName)(/*[out,size_is(32)]*/ char  *name);
	STDMETHOD(init)();
	STDMETHOD(getrjdata)();
	STDMETHOD(clearFlg)();
	STDMETHOD(sethotuse)(/*[in]*/ short hot);
	STDMETHOD(getaddrbps)(/*[out]*/ int *port,/*[out]*/ int *bps);
	STDMETHOD(setre7ord)();
	STDMETHOD(ifrjst)(/*[out]*/ int *rb);
	STDMETHOD(ifconv)(/*[in]*/ int i,/*[out]*/ int *rb);
	STDMETHOD(ifprocess)(/*[out]*/ int *rb);
	STDMETHOD(convdata)(/*[in]*/ int i);
	STDMETHOD(proc_ord)(/*[in]*/ int i);
	STDMETHOD(ifinitExp)(/*[in]*/ int no,/*[out]*/ int *stno);
	STDMETHOD(ifinitExt)(/*[in]*/ int no,/*[out]*/ int *stno);
	STDMETHOD(ifinit)(/*[in]*/ int no,/*[out]*/ int *stno);
	STDMETHOD(setstErr)();
	STDMETHOD(ifchecktime)(/*[out]*/ int *rb);
	STDMETHOD(processdata)(/*[out]*/ int * rb);
	STDMETHOD(setrecvbuf)(/*[in] */int st,/*[in]*/int ct,/*[in,size_is(ct)]*/ byte *recv);
	STDMETHOD(getordbuf)(/*[out]*/ byte odbuf[300],/*[out]*/ int* odsize);
	STDMETHOD(setNormalord)(/*[in]*/ int stno,/*[out]*/ int *nextno);
	STDMETHOD(if01ord)(/*[out]*/ int *rb);
	STDMETHOD(ifixst)(/*[out]*/ int * rb);
	STDMETHOD(iforder)(/*[out]*/ int * rb);
	STDMETHOD(iftransflag)(/*[in]*/ int i,/*[out]*/ int * rb);
	STDMETHOD(setflag)(/*[in]*/ int i);
    static DATE dateCal(int year,int month,int day,int hour,int minute,int second);
    static int if_leapyear(int year);
	bool timerok;
	bool tmoutflg;
	void getremoteinfo();
    static LPWSTR wszFromSTR(LPCTSTR szSTR);
    static void AnsiToUnicode(LPCSTR pszA, LPOLESTR* ppszW); 
	static void remote_read_File();
private:
	bool setdname(short wno,unsigned char name[16],unsigned char depart[16]);
};

// server2.h : Declaration of the Copcinteface


/////////////////////////////////////////////////////////////////////////////
// Copcinteface
//class ATL_NO_VTABLE Copcinteface : 
class Copcinteface : 
//	public CComObjectRootEx<CComSingleThreadModel>,
	public CComObjectRoot,
	public CComCoClass<Copcinteface, &CLSID_opcinteface>,
	public IDispatchImpl<Iopcinteface, &IID_Iopcinteface, &LIBID_COMSERVERLib>
{
public:
	Copcinteface()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_OPCINTEFACE)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(Copcinteface)
	COM_INTERFACE_ENTRY(Iopcinteface)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

// Iopcinteface
public:
	STDMETHOD(getOPCdt)(/*[in]*/ short stno,/*[in]*/ short ct);
//	STDMETHOD(setOPCdata)(/*[in]*/ short stno,/*[in]*/ int dwCount,/*[in,size_is(dwCount)]*/ int* vdt);
	STDMETHOD(setOPCdata)(/*[in]*/ short stno,/*[in]*/ int dwCount,/*[in,size_is(dwCount)]*/ VARIANT * vdt);
};

#endif // !defined(AFX_SERVER2_H__0CA26674_61A7_11D5_B050_0050BAF2A927__INCLUDED_)

⌨️ 快捷键说明

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