📄 global.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 + -