📄 iopcserver.cpp
字号:
/////////////////////////////////////////////////////////////////////////////
//
// OPC Trend VC++ Client: IOPCServer.CPP
// (Source File)
//
/////////////////////////////////////////////////////////////////////////////
//
// Author: Raphael Imhof
// Initial Date: 11/04/98
// $Workfile: IOPCServer.cpp $
// $Revision: 1 $
// $Date: 7/27/99 5:24p $
// Target System: Microsoft Windows NT 4.0
// Environment: Visual C++ 5.0 / OPC DataAccess 1.0 / 2.0
// Remarks:
//
/////////////////////////////////////////////////////////////////////////////
//
// Description: implementation of the CIOPCServer class.
// IOPCServer wrapper.
//
//
/////////////////////////////////////////////////////////////////////////////
//
// History of Changes (Please remove very old comments and blank lines!)
// $Log: /IDK/OPCServer/clients/VC++/Trend/IOPCServer.cpp $
//
// 1 7/27/99 5:24p Imhof
//
// 1 7/27/99 5:19p Imhof
//
// 4 1/15/99 7:04p Imhof
// Updated legal notice.
//
// 3 12/15/98 10:30a Imhof
// Modifications for OPC 2.0
//
// 2 11/06/98 5:53p Imhof
// Added header, comment and made some small code changes.
//
//
// $Nokeywords:$ (To avoid useless search while checking in.)
/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1998, Siemens Building Technologies, Inc. Landis Division
//
// SIEMENS BUILDING TECHNOLOGIES, INC. IS PROVIDING THE FOLLOWING
// EXAMPLES OF CODE AS SAMPLE ONLY.
//
// SIEMENS BUILDING TECHNOLOGIES, INC. MAKES NO REPRESENTATIONS
// OR WARRANTIES OF ANY KIND WITH RESPECT TO THE VALIDTY OF THE
// CODES OR DESIRED RESULTS AND DISCLAIMS ALL SUCH
// REPRESENTATIONS AND WARRANTIES, INCLUDING FOR EXAMPLE,
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE. SIEMENS BUILIDNG TECHNOLOGIES, INC. DOES NOT
// REPRESENT OR WARRANT THAT THE FOLLOWING CODE SAMPLES ARE
// ACCURATE, VALID, COMPLETE OR CURRENT.
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "IOPCServer.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CIOPCServer::CIOPCServer(CComPtr<IOPCServer> pOPCServer)
{
m_pOPCServer = pOPCServer;
}
CIOPCServer::CIOPCServer(CComPtr<IUnknown> pOPCUnkn)
{
if(FAILED(pOPCUnkn->QueryInterface(IID_IOPCServer, (void**)&m_pOPCServer)))
{
m_pOPCServer = NULL;
TRACE("CIOPCServer() \n");
}
}
CIOPCServer::~CIOPCServer()
{
}
HRESULT CIOPCServer::RemoveGroup( OPCHANDLE hServerGroup,
BOOL bForce)
{
if(m_pOPCServer == NULL)
return E_FAIL;
HRESULT res = m_pOPCServer->RemoveGroup(hServerGroup, bForce);
if(FAILED(res))
{
TRACE(_T("IOPCServer::RemoveGroup\n"));
}
return res;
}
HRESULT CIOPCServer::AddGroup( LPCWSTR szName,
BOOL bActive,
DWORD dwRequestedUpdateRate,
OPCHANDLE hClientGroup,
LONG * pTimeBias,
FLOAT * pPercentDeadband,
DWORD dwLCID,
OPCHANDLE * phServerGroup,
DWORD * pRevisedUpdateRate,
REFIID riid,
LPUNKNOWN * ppUnk)
{
if(m_pOPCServer == NULL)
return E_FAIL;
HRESULT res = m_pOPCServer->AddGroup(szName, bActive, dwRequestedUpdateRate,
hClientGroup, pTimeBias, pPercentDeadband,
dwLCID, phServerGroup, pRevisedUpdateRate,
riid, ppUnk );
if(FAILED(res))
{
TRACE(_T("IOPCServer::AddGroup\n"));
}
return res;
}
HRESULT CIOPCServer::GetStatus(OPCSERVERSTATUS** ppServerStatus)
{
if(m_pOPCServer == NULL)
return E_FAIL;
HRESULT res = m_pOPCServer->GetStatus(ppServerStatus);
if(FAILED(res))
{
TRACE(_T("IOPCServer::GetStatus\n"));
}
return res;
}
HRESULT CIOPCServer::GetErrorString(HRESULT dwError, LCID dwLocale, LPWSTR *ppString)
{
if(m_pOPCServer == NULL)
return E_FAIL;
HRESULT res = m_pOPCServer->GetErrorString(dwError, dwLocale, ppString);
if(FAILED(res))
{
TRACE(_T("IOPCServer::GetErrorString\n"));
}
return res;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -