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

📄 iopcasyncio2.cpp

📁 此为Insight opc client InfoServerExplorer源程序
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////
//
//  OPC Data Access VC++ Client:	IOPCAsyncIO2.CPP
//									(Source File)
//
/////////////////////////////////////////////////////////////////////////////
//
//          Author: Raphael Imhof
//    Initial Date: 12/11/98
//       $Workfile: IOPCAsyncIO2.cpp $
//       $Revision: 1 $
//           $Date: 7/27/99 5:23p $
//   Target System: Microsoft Windows NT 4.0
//     Environment: Visual C++ 5.0 / OPC DataAccess 2.0
//         Remarks: 
//
/////////////////////////////////////////////////////////////////////////////
//
//     Description: implementation of the CIOPCAsyncIO22 class.
//					IOPCAsyncIO2 wrapper.
//					
//
/////////////////////////////////////////////////////////////////////////////
//
//  History of Changes     (Please remove very old comments and blank lines!)
//            $Log: /IDK/OPCServer/clients/VC++/InfoServerExplorer/IOPCAsyncIO2.cpp $
// 
// 1     7/27/99 5:23p Imhof
// 
// 1     7/27/99 5:18p Imhof
// 
// 3     1/15/99 6:43p Imhof
// Updated legal notice.
// 
// 2     12/11/98 5:58p Imhof
// Made modifications for OPC 2.0.
// 
//  $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 "infoserverexplorer.h"
#include "IOPCAsyncIO2.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CIOPCAsyncIO2::CIOPCAsyncIO2(CComPtr<IOPCAsyncIO2> pOPCAsyncIO2)
{
	m_pOPCAsyncIO2 = pOPCAsyncIO2;
}

CIOPCAsyncIO2::CIOPCAsyncIO2(CComPtr<IOPCGroupStateMgt> pOPCGroup)
{
	if(FAILED(pOPCGroup->QueryInterface(IID_IOPCAsyncIO2, (void**)&m_pOPCAsyncIO2)))
	{
		m_pOPCAsyncIO2 = NULL;
		TRACE("CIOPCAsyncIO2() \n");
	}
}

CIOPCAsyncIO2::~CIOPCAsyncIO2()
{

}

HRESULT CIOPCAsyncIO2::Write(	DWORD	        dwCount,
								OPCHANDLE*		phServer,
								VARIANT*		pItemValues,
								DWORD			dwTransactionID,
								DWORD*			pdwCancelID,
								HRESULT**		ppErrors )				
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->Write(dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::Write\n"));
     
	return hr; 
}

HRESULT CIOPCAsyncIO2::Read(	DWORD		dwCount,
								OPCHANDLE*	phServer,
								DWORD		dwTransactionID,
								DWORD*		pdwCancelID,
								HRESULT**	ppErrors)
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->Read(dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::Read\n"));
     
	return hr; 
}

HRESULT CIOPCAsyncIO2::Refresh2(OPCDATASOURCE	dwSource,
								DWORD			dwTransactionID,
								DWORD*			pdwCancelID)								
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->Refresh2(dwSource, dwTransactionID, pdwCancelID);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::Refresh2\n"));
     
	return hr; 
}

HRESULT	CIOPCAsyncIO2::Cancel2(DWORD dwCancelID)
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->Cancel2(dwCancelID);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::Cancel2\n"));
     
	return hr; 
}

HRESULT	CIOPCAsyncIO2::SetEnable(BOOL bEnable)
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->SetEnable(bEnable);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::SetEnable\n"));
     
	return hr; 
}

HRESULT	CIOPCAsyncIO2::GetEnable(BOOL* pbEnable)
{
	if(m_pOPCAsyncIO2 == NULL)
		return E_FAIL;

	HRESULT hr = m_pOPCAsyncIO2->GetEnable(pbEnable);

	if( FAILED( hr ) )
		TRACE(_T("IOPCAsyncIO2::GetEnable\n"));
     
	return hr; 
}

⌨️ 快捷键说明

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