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

📄 global.cpp

📁 此为Insight opc client InfoServerExplorer源程序
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////
//
//  OPC DataAccess VC++ Client:	global.CPP
//								(Source File)
//
/////////////////////////////////////////////////////////////////////////////
//
//          Author: Raphael Imhof
//    Initial Date: 2/24/99
//       $Workfile: global.cpp $
//       $Revision: 1 $
//           $Date: 7/27/99 5:22p $
//   Target System: Microsoft Windows NT 4.0
//     Environment: Visual C++ 5.0 / OPC DataAccess 1.0/2.0
//         Remarks: 
//
/////////////////////////////////////////////////////////////////////////////
//
//     Description: common used functions
//					
//
/////////////////////////////////////////////////////////////////////////////
//
//  History of Changes     (Please remove very old comments and blank lines!)
//            $Log: /IDK/OPCServer/clients/VC++/InfoServerExplorer/global.cpp $
// 
// 1     7/27/99 5:22p Imhof
// 
// 1     7/27/99 5:18p Imhof
// 
// 1     4/26/99 4:07p Imhof
// Readded after SS problems.
// 
// 2     2/24/99 10:27a Imhof
// Creation: global functionality.
// 
//  $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 "global.h"

/*
	converts a data type list box selection
	into a VARTYPE

	Note: you must use everywhere the same list box content !
*/
VARTYPE DataTypeSelectionToVartype(int sel)
{
	//sort flag not set !

	VARTYPE dataType = VT_EMPTY;

	if(CB_ERR != sel)
	{
		switch(sel) 
		{
			case -1: 
			case 0: 
			default:	dataType = VT_EMPTY;	break;
			case 1:		dataType = VT_INT;		break;
			case 2:		dataType = VT_I1;		break;
			case 3:		dataType = VT_I2;		break;
			case 4:		dataType = VT_I4;		break;
			case 5:		dataType = VT_I8;		break;
			case 6:		dataType = VT_UINT;		break;
			case 7:		dataType = VT_UI1;		break;
			case 8:		dataType = VT_UI2;		break;
			case 9:		dataType = VT_UI4;		break;
			case 10:	dataType = VT_UI8;		break;
			case 11:	dataType = VT_R4;		break;
			case 12:	dataType = VT_R8;		break;
			case 13:	dataType = VT_CY;		break;
			case 14:	dataType = VT_DATE;		break;
			case 15:	dataType = VT_BSTR;		break;
			case 16:	dataType = VT_BOOL;		break;
			case 17:	dataType = VT_DECIMAL;	break;
		}
	}

	return dataType;
}

/*
	converts a VARTYPE into a data type list box selection

	Note: you must use everywhere the same list box content !
*/
int VartypeToDataTypeSelection(VARTYPE dataType)
{
	//sort flag not set !

	int iSel = -1;

	switch(dataType) 
	{
		case VT_EMPTY:		iSel = 0;	break;
		case VT_INT:		iSel = 1;	break;
		case VT_I1:			iSel = 2;	break;
		case VT_I2:			iSel = 3;	break;
		case VT_I4:			iSel = 4;	break;
		case VT_I8:			iSel = 5;	break;
		case VT_UINT:		iSel = 6;	break;
		case VT_UI1:		iSel = 7;	break;
		case VT_UI2:		iSel = 8;	break;
		case VT_UI4:		iSel = 9;	break;
		case VT_UI8:		iSel = 10;	break;
		case VT_R4:			iSel = 11;	break;
		case VT_R8:			iSel = 12;	break;
		case VT_CY:			iSel = 13;	break;
		case VT_DATE:		iSel = 14;	break;
		case VT_BSTR:		iSel = 15;	break;
		case VT_BOOL:		iSel = 16;	break;
		case VT_DECIMAL:	iSel = 17;	break;
	}

	return iSel;
}

/*
	converts a VARTYPE into a string descriptor

*/
BOOL VartypeToDataTypeString(VARTYPE dataType, CString& sDataType)
{
	BOOL	bRet = TRUE;

	switch(dataType) 
	{
		case VT_EMPTY:	sDataType = _T("Native (VT_EMPTY)");				break;
		case VT_INT:	sDataType = _T("Integer (VT_INT)");					break;
		case VT_I1:		sDataType = _T("1 byte integer (VT_I1)");			break;
		case VT_I2:		sDataType = _T("2 byte integer (VT_I2)");			break;
		case VT_I4:		sDataType = _T("4 byte integer (VT_I4)");			break;
		case VT_I8:		sDataType = _T("8 byte integer (VT_I8)");			break;
		case VT_UINT:	sDataType = _T("Unsigned integer (VT_UINT)");		break;
		case VT_UI1:	sDataType = _T("1 byte unsigned integer (VT_UI1)");	break;
		case VT_UI2:	sDataType = _T("2 byte unsigned integer (VT_UI2)");	break;
		case VT_UI4:	sDataType = _T("4 byte unsigned integer (VT_UI4)");	break;
		case VT_UI8:	sDataType = _T("8 byte unsigned integer (VT_UI8)");	break;
		case VT_R4:		sDataType = _T("4 byte real (VT_R4)");				break;
		case VT_R8:		sDataType = _T("8 byte real (VT_R8)");				break;
		case VT_CY:		sDataType = _T("Currency (VT_CY)");					break;
		case VT_DATE:	sDataType = _T("Date (VT_DATE)");					break;
		case VT_BSTR:	sDataType = _T("String (VT_BSTR)");					break;
		case VT_BOOL:	sDataType = _T("Boolean (VT_BOOL)");				break;
		case VT_DECIMAL:sDataType = _T("Decimal (VT_DECIMAL)");				break;
		default:		bRet = FALSE;										break;
	}

	return bRet;
}

⌨️ 快捷键说明

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