Five tools under one repo, all docs organized per DOCS-GUIDE.md: - aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands: last, tail, range, unread, fields. Stable JSON envelope under --llm-json. Build template under lib/build/ for rebuilding aaLogReader.dll. - aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide (Markdown converted from CHM), API reference for the ArchestrA.Toolkit namespace, and the Monitor / Watchdog VS sample solutions. - graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy configuration via the ArchestrA GRAccess COM interop. Includes session daemon, IPC protocol, and llm-json envelope contract. - grdb: SQL/DDL exploration of the Galaxy Repository database. DDL captures, reusable queries, hierarchy / contained-name <-> tag-name translation notes. - histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL linked-server, extension tables, every wwXxx time-domain extension, every retrieval mode, alarm/event SQL recipes, REST API. Distilled from the 243-page Historian Retrieval Guide. Root contains: - CLAUDE.md: thin index pointing into each tool's README. - DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 KiB
CMxValue Class
Namespace: ArchestrA.Toolkit
A wrapper class that represents an MxValue. Includes the fundamental variant object that contains a single data value or single array of data values of like type. MxValue is used to get and set data within the ArchestrA framework.
Syntax
public class CMxValue
CMxValue Properties
Length Property
Provides a property to get the length of the value.
Syntax
int Length { get; }
Returns
int
Returns 0 if the value is a non-array type.
Value Property
Provides a property to get IMxValue for compatibility with the existing methods.
Syntax
IMxValue Value { get; }
Returns
IMxValue
CMxValue Constructors
CMxValue Constructor
Provides a constructor to create an empty CMxValue.
Syntax
public CMxValue();
CMxValue Constructor IMxValue
Provides a constructor to create a CMxValue with the value from an existing IMxValue.
Syntax
public CMxValue(IMxValue val);
Parameters
val
[in] IMxValue to be set.
CMxValue Constructor object
Provides a constructor to create a CMxValue with the value of a C# object.
Syntax
public CMxValue(object val);
Parameters
val
[in] Supported datatypes: CMxValue, CMxType, System.Boolean, System.Int32, System.Single, System.Double, System.String, System.DateTime, System.TimeSpan, System.Int16, ArchestrA.Toolkit.EnumOrdinal, ArchestrA.Toolkit.MxCustomStruct, ArchestrA.Core.MxDataType, ArchestrA.Core.MxDataType, ArchestrA.Core.MxSecurityClassification, ArchestrA.Core.InternationalizedString, ArchestrA.Core.DataQuality, ArchestrA.Toolkit.CMxDataQuality and ArchestrA.Core.MxReference.
CMxValue Methods
Clone Method
Provides a method to create a copy of an existing CMxValue which includes creating a copy of the internal IMxValue class.
Syntax
public Clone(out CMxValue ppMxValue);
Parameters
ppMxValue
[out} fills the ppMxValue with the current CMxValue.
Empty Method
Provides a method to call Empty on the IMxValue.
Syntax
public void Empty();
DateTimeToFileTime Method
Provides a method to convert a DateTime into a _FILETIME. Converts the current System.DateTime object to a Windows file time.
Syntax
public static _FILETIME DateTimeToFileTime(DateTime date);
Parameters
date
[in] DateTime value.
Returns
_FILETIME
DateTimeToVBFT Method
Provides a method to convert a DateTime into a VBFILETIME.
Syntax
public static VBFILETIME DateTimeToVBFT(DateTime date);
Parameters
date
[in] DateTime value.
Returns
VBFILETIME
FileTimeToDateTime Method
Provides a method to convert a _FILETIME to a DateTime.
Syntax
public static DateTime FileTimeToDateTime(_FILETIME val);
Parameters
val
[in] __FILETIME value.
Returns
DateTime
VBFIToDateTime Method
Provides a method to convert VBFILETIME to DateTime.
Syntax
public static DateTime VBFTToDateTime(VBFILETIME val);
Parameters
val
[in] VBFILETIME value.
Returns
DateTime
TimeSpanToVBLI Method
Provides a method to convert a TimeSpan to VB_LARGE_INTEGER.
Syntax
public static VB_LARGE_INTEGER TimeSpanToVBLI(TimeSpan span);
Parameters
span
[in] TimeSpan value.
Returns
VB_LARGE_INTEGER
VBLIToTimeSpan Method
Provides a method to convert VB_LARGE_INTEGER to TimeSpan.
Syntax
public static TimeSpan VBLIToTimeSpan(VB_LARGE_INTEGER val);
Parameters
val
[in] VB_LARGE_INTEGER value.
Returns
TimeSpan
GetBoolean Method
Provides a method to get the value as a Boolean.
Syntax
public bool GetBoolean();
Returns
bool
GetBooleanArray Method
Provides a method to get the value as a Boolean array.
Syntax
public bool[] GetBooleanArray();
Returns
bool[ ]
GetClassID Method
Provides a method to get the Class ID of the IMxValue.
Syntax
public void GetClassID(out Guid pClassID);
Parameters
pClassID
[out] fills the pClassID with the Class ID of the IMxValue.
GetCustomEnum Method
Provides a method to get a custom enum as a text value, ordinal, id of the primitive that owns the array of strings, id of the array of strings.
Syntax
public void GetCustomEnum(out string pValue, out short pOrdinal, out short pPrimitiveId, out
short pAttributeId);
Parameters
pValue
[out] fills the pValue with the current CMXCustomEnum text.
pOrdinal
[out] fills the pOrdinal with the current CMXCustomEnum ordinal.
pPrimitiveId
[out] fills the pPrimitiveId with the primitive ID of the referred string array attribute.
pAttributeId
[out] fills the pAttributeId with the attribute ID of the referred string array attribute.
GetCustomEnumArray Method
Provides a method to get an array of ordinals of a CustomEnum.
Syntax
public short[] GetCustomEnumArray();
Returns
short[ ]
GetCustomEnumOrdinal Method
Provides a method to get the ordinal of a CustomEnum.
Syntax
public short GetCustomEnumOrdinal();
Returns
short
GetCustomEnumString Method
Provides a method to get the text value of a CustomEnum.
Syntax
public string GetCustomEnumString();
Returns
string
GetCustomStruct Method
Provides a method to get the value as an MxCustomStruct.
Syntax
public MxCustomStruct GetCustomStruct();
Returns
MxCustomStruct
GetCustomStructArray Method
Provides a method to get the value as an MxCustomStruct Array.
Syntax
public MxCustomStruct[] GetCustomStructArray();
Returns
MxCustomStruct[ ]
GetCustomStructVB Method
Provides a method to get the value as a guid and byte array.
Syntax
public void GetCustomStructVB(out int pGuid, ref byte[] pStruct);
Parameters
pGuid
[out] fills the pGuid with the current CMXCustomStructArray guid.
pStruct
[out] fills the pStruct with the current CMXCustomStructArray data.
GetDataType Method
Provides a method to get the type of the data.
Syntax
public MxDataType GetDataType();
Returns
MxDataType
GetDimensionCount Method
Provides a method to get the number of dimensions.
Syntax
public void GetDimensionCount(out short nDimensions);
Parameters
nDimensions
[out] fills the nDimensions with the dimension count of the IMxValue.
GetDimensionSize Method
Provides a method to access the DimensionSize of IMxValue.
Syntax
public void GetDimensionSize(out int pSize);
Parameters
pSize
[out] fills the pSize with the dimension size of the IMxValue.
GetDouble Method
Provides a method to get the value as a double.
Syntax
public double GetDouble();
Returns
double
GetDoubleArray Method
Provides a method to get the value as a double array.
Syntax
public double[] GetDoubleArray();
Returns
double[ ]
GetElapsedTime Method
Provides a method to get the value as a TimeSpan.
Syntax
public dTimeSpan GetElapsedTime();
Returns
TimeSpan
GetElapsedTimeArray Method
Provides a method to get the value as a TimeSpan array.
Syntax
public TimeSpan[] GetElapsedTimeArray();
Returns
TimeSpan[ ]
GetElement Method
Provides a method to get a single element of an array as a CMxValue by index.
Syntax
public void GetElement(int index1, out CMxValue pMxValue);
Parameters
index1
[in] index of the array element.
pMxValue
[out] fills the pMxValue with the array element.
GetFloat Method
Provides a method to get the value as a float.
Syntax
public float GetFloat();
Returns
float
GetFloatArray Method
Provides a method to get the value as a float array.
Syntax
public float[] GetFloatArray();
Returns
float[ ]
GetInteger Method
Provides a method to get the value as an int.
Syntax
public int GetInteger();
Returns
int
GetIntegerArray Method
Provides a method to get the value as an int array.
Syntax
public int[] GetIntegerArray();
Returns
int[ ]
GetInternationalString Method
Provides a method to get the value by locale.
Syntax
public string GetInternationalString(int locale);
Parameters
locale
[in] locale number of the language/culture.
Returns
string
GetInternationalStrings Method
Provides a method to get the value as an array of InternationalizedStrings.
Syntax
public InternationalizedString[] GetInternationalStrings();
Returns
InternationalizedString[ ]
GetMxDataQuality Method
Provides a method to get the Data Quality as a short.
Syntax
public short GetMxDataQuality();
Returns
short
GetMxDataType Method
Provides a method to get the value as a MxDataType.
Syntax
public MxDataType GetMxDataType();
Returns
MxDataType
GetMxDataTypeArray Method
Provides a method to get the value as a MxDataType array.
Syntax
public MxDataType[] GetMxDataTypeArray();
Returns
MxDataType[ ]
GetMxReference Method
Provides a method to get the value as a IMxReference.
Syntax
public IMxReference GetMxReference();
Returns
IMxReference
GetMxReferenceArrayAsStrings Method
Provides a method to get the value of a reference array as an array of strings.
Syntax
public string[] GetMxReferenceArrayAsStrings();
Returns
string[ ]
GetMxReferenceAsString Method
Provides a method to get the value of a reference as a string.
Syntax
public string GetMxReferenceAsString();
Returns
string
GetMxSecurityClassification Method
Provides a method to get the value as a MxSecurityClassification.
Syntax
public MxSecurityClassification GetMxSecurityClassification();
Returns
MxSecurityClassification
GetMxSecurityClassificationArray Method
Provides a method to get the value as a MxSecurityClassification array.
Syntax
public MxSecurityClassification[] GetMxSecurityClassificationArray();
Returns
MxSecurityClassification[ ]
GetMxStatus Method
Provides a method to get the value as a MxStatus.
Syntax
public MxStatus GetMxStatus();
Returns
MxStatus
GetMxStatusArray Method
Provides a method to get the value as a MxStatus array.
Syntax
public MxStatus[] GetMxStatusArray();
Returns
MxStatus[ ]
GetSizeMax Method
Provides a method to get the max size as a _ULARGE_INTEGER.
Syntax
public void GetSizeMax(out _ULARGE_INTEGER pcbSize);
Parameters
pcbSize
[out] fills the pcbSize with the IMxValue max size.
GetString Method
Provides a method to get the value as a string.
Syntax
public string GetString();
Returns
string
GetStringArray Method
Provides a method to get the value as a string array.
Syntax
public string[] GetStringArray();
Returns
string[ ]
GetTime Method
Provides a method to get the value as a DateTime.
Syntax
public DateTime GetTime();
Returns
DateTime
GetTime Method
Provides a method to get the value as a DateTime (compatible with IMxValue syntax.)
Syntax
public void GetTime(out DateTime pVal);
Parameters
pVal
[out] fills the DateTime parameter by converting the Windows file time to its equivalent local time.
GetTimeArray Method
Provides a method to get the value as a DateTime array.
Syntax
public DateTime[] GetTimeArray();
Returns
DateTime[ ]
IsArray Method
Provides a method to indicate if the value is an array.
Syntax
public bool IsArray();
Returns
bool
IsDirty Method
Provides a method to access IMxValue IsDirty.
Syntax
public void IsDirty();
PutBoolean Method
Provides a method to set the value from a Boolean.
Syntax
public void PutBoolean(bool newVal);
Parameters
newVal
[in] bool value to be set.
PutBooleanArray Method
Provides a method to set the value from a Boolean array.
Syntax
public void PutBooleanArray(bool[] values);
Parameters
values
[in] bool[ ] value to be set.
PutCustomEnum Method
Provides a method to set the value from a text string, ordinal, primitive ID, and atttribute ID.
Syntax
public void PutCustomEnum(string Value, short ordinal, short primitiveId, short attributeId);
Parameters
Value
[in] Text to set to the CMxCustomEnum.
ordinal
[in] Ordinal position to be set.
primitiveId
[in] primitive id of the referenced string array attribute.
attributeId
[in] Attribute id of the referenced string array attribute CMxValue Class.
PutCustomEnumArray Method
Provides a method to set the value from an array of shorts indicating the ordinal.
Syntax
public void PutCustomEnumArray(short[] values);
Parameters
values
[in] Sets the CMxCustomEnumArray with the ordinal values.
PutCustomEnumOrdinal Method
Provides a method to set the value of the ordinal.
Syntax
public void PutCustomEnumOrdinal(short ordinal);
Parameters
ordinal
[in] Sets the CMxCustomEnum ordinal value.
PutCustomStruct Method
Provides a method to set the value from a MxCustomStruct.
Syntax
public void PutCustomStruct(MxCustomStruct cs);
Parameters
cs
[in] MxCustomStruct value to be set.
PutCustomStructArray Method
Provides a method to set the value from a MxCustomStruct array.
Syntax
public void PutCustomStructArray(MxCustomStruct[] values);
Parameters
values
[in] MxCustomStruct[ ] value to be set.
PutCustomStructVBArray Method
Provides a method to set the value from a guid and byte array.
Syntax
public void PutCustomStructVB(int guid, byte[] pStruct);
Parameters
guid
[in] int value that holds guid to be set.
pStruct
[in] byte[ ] value to be set.
PutDouble Method
Provides a method to set the value from a double.
Syntax
public void PutDouble(double newVal);
Parameters
newVal
[in] double value to be set.
PutDoubleArray Method
Provides a method to set the value from a double array.
Syntax
public void PutDoubleArray(double[] values);
Parameters
values
[in] double[ ] value to be set.
PutElapsedTime Method
Provides a method to set the value from a TimeSpan.
Syntax
public void PutElapsedTime(TimeSpan ts);
Parameters
ts
[in] TimeSpan value to be set.
PutElapsedTimeArray Method
Provides a method to set the value from a TimeSpan array.
Syntax
public void PutElapsedTimeArray(TimeSpan[] values);
Parameters
values
[in] TimeSpan[ ] value to be set.
PutElement Method
Provides a method to set the value of an element from a CMxValue by index.
Syntax
public void PutElement(int index, CMxValue pMxValue);
Parameters
index
[in] index value.
pMxValue
[in] value to be set at the specified index.
PutFloat Method
Provides a method to set the value from a float.
Syntax
public void PutFloat(float newVal);
Parameters
newVal
[in] float value to be set.
PutFloatArray Method
Provides a method to set the value from a float array.
Syntax
public void PutFloatArray(float[] values);
Parameters
values
[in] float[ ] value to be set.
PutInteger Method
Provides a method to set the value from an int.
Syntax
public void PutInteger(int newVal);
Parameters
newVal
[in] integer value to be set.
PutIntegerArray Method
Provides a method to set the value from an int array.
Syntax
public void PutIntegerArray(int[] values);
Parameters
values
[in] integer[ ] value to be set.
PutInternationalString Method
Provides a method to set the value of a specified locale from a string.
Syntax
public void PutInternationalString(int locale, string InternationalizedString);
Parameters
locale
[in] integer value to be set.
InternationalizedString
[in] string value to be set.
PutInternationalStringVB Method
Provides a method to set the value from an InternationalizedString array.
Syntax
public void PutInternationalStringsVB(InternationalizedString[] ppsa);
Parameters
ppsa
[in] InternationalizedString[ ] value to be set.
PutMxDataQuality Method
Provides a method to set the value from an OpcQuality.
Syntax
public void PutMxDataQuality(OpcQuality newVal);
Parameters
newVal
[in] OpcQuality value to be set.
PutMxDataQuality Method
Provides a method to set the value from a short quality.
Syntax
public void PutMxDataQuality(short newVal);
Parameters
newVal
[in] short value to be set.
PutMxDataType Method
Provides a method to set the value from a MxDataType.
Syntax
public void PutMxDataType(MxDataType newVal);
Parameters
newVal
[in] MxDataType value to be set.
PutMxDataTypeArray Method
Provides a method to set the value from a MxDataType array.
Syntax
public void PutMxDataTypeArray(MxDataType[] values);
Parameters
values
[in] MxDataType[ ] values to be set.
PutMxReference Method
Provides a method to set the value from a IMxReference.
Syntax
public void PutMxReference(IMxReference newVal);
Parameters
newVal
[in] IMxReference value to be set.
PutMxReferenceArrayAsStrings Method
Provides a method to set the value of a reference array from an array of strings.
Syntax
public void PutMxReferenceArrayAsStrings(string[] values);
Parameters
values
[in] string[ ] value to set the reference string of CMxReferenceArray.
PutMxReferenceAsString Method
Provides a method to set the value of a reference from a string.
Syntax
public void PutMxReferenceAsString(string newVal);
Parameters
newVal
[in] string value to be set.
PutMxSecurityClassification Method
Provides a method to set the value from a MxSecurityClassification.
Syntax
public void PutMxSecurityClassification(MxSecurityClassification newVal);
Parameters
newVal
[in] MxSecurityClassification value to be set.
PutMxSecurityClassificationArray Method
Provides a method to set the value from a MxSecurityClassification array.
Syntax
public void PutMxSecurityClassificationArray(MxSecurityClassification[] newVal);
Parameters
newVal
[in] MxSecurityClassification[ ] value to be set.
PutMxStatus Method
Provides a method to set the value from a MxStatus.
Syntax
public void PutMxStatus(MxStatus newVal);
Parameters
newVal
[in] MxStatus value to be set.
PutMxStatusArray Method
Provides a method to set the value from a MxStatus array.
Syntax
public void PutMxStatusArray(MxStatus[] values);
Parameters
values
[in] MxStatus[ ] value to be set.
PutString Method
Provides a method to set the value from a string.
Syntax
public void PutString(string newVal);
Parameters
newVal
[in] string value to be set to CMxString.
PutStringArray Method
Provides a method to set the value from a string array.
Syntax
public void PutStringArray(string[] values);
Parameters
values
[in] string[ ] value to be set.
PutTime Method
Provides a method to set the value from a DateTime.
Syntax
public void PutTime(DateTime val);
Parameters
val
[in] DateTime value to be set.
PutTimeArray Method
Provides a method to set the value from a DateTime array.
Syntax
public void PutTimeArray(DateTime[] values);
Parameters
values
[in] DateTime[ ] value to be set.
ToString Method
Provides a method to output the value as a string.
Syntax
public override string ToString();
Returns
string
CMxValue Operator Overloads
Integer Operator Overload
Provides a conversion operator to convert from CMxValue to int.
Syntax
public static implicit operator int(CMxValue val);
Parameters
val
[in] CMxValue to convert to integer.
Returns
int
Float Operator Overload
Provides a conversion operator to convert from CMxValue to float.
Syntax
public static implicit operator float(CMxValue val);
Parameters
val
[in] CMxValue to convert to float.
Returns
float
Double Operator Overload
Provides a conversion operator to convert from CMxValue to a double.
Syntax
public static implicit operator double(CMxValue val);
Parameters
val
[in] CMxValue to convert to double.
Returns
double
TimeSpan Operator Overload
Provides a conversion operator to convert from CMxValue to TimeSpan.
Syntax
public static implicit operator TimeSpan(CMxValue val);
Parameters
val
[in] CMxValue to convert to ElapsedTime.
Returns
TimeSpan
MxCustomStruct Operator Overload
Provides a conversion operator to convert from CMxValue to MxCustomStruct.
Syntax
public static implicit operator MxCustomStruct(CMxValue val);
Parameters
val
[in] CMxValue to convert to MxCustomStruct.
Returns
MxCustomStruct
EnumOrdinal Operator Overload
Provides a conversion operator to convert from CMxValue to EnumOrdinal.
Syntax
public static implicit operator EnumOrdinal(CMxValue val);
Parameters
val
[in] CMxValue to convert to EnumOrdinal.
Returns
EnumOrdinal
MxDataType Operator Overload
Provides a conversion operator to convert from CMxValue to MxDataType
Syntax
public static implicit operator MxDataType(CMxValue val);
Parameters
val
[in] CMxValue to convert to MxDataType.
Returns
MxDataType
MxStatus Operator Overload
Provides a conversion operator to convert from CMxValue to MxStatus.
Syntax
public static implicit operator MxStatus(CMxValue val);
Parameters
val
[in] CMxValue to convert to MxStatus.
Returns
MxStatus
String Overload
Provides a conversion operator to convert from CMxValue to string.
Syntax
public static implicit operator string(CMxValue val);
Parameters
val
[in] CMxValue to convert to string.
Returns
string
MxSecurityClassification Operator Overload
Provides a conversion operator to convert from CMxValue to MxSecurityClassification
Syntax
public static implicit operator MxSecurityClassification(CMxValue val);
Parameters
val
[in] CMxValue to convert to MxSecurityClassification.
Returns
MxSecurityClassification
DateTime Operator Overload
Provides a conversion operator to convert from CMxValue to DateTime.
Syntax
public static implicit operator DateTime(CMxValue val);
Parameters
val
[in] CMxValue to convert to DateTime.
Returns
DateTime
MxValueClass Operator Overload
Provides a conversion operator to convert from CMxValue to MxValueClass.
Syntax
public static implicit operator MxValueClass(CMxValue val);
Parameters
val
[in] CMxValue to convert to MxValueClass.
Returns
MxValueClass
CMxValue Operator Overload (bool)
Provides a conversion operator to convert from bool to CMxValue.
Syntax
public static implicit operator CMxValue(bool val);
Parameters
val
[in] bool value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (DateTime)
Provides a conversion operator to convert from DateTime to CMxValue.
Syntax
public static implicit operator CMxValue(DateTime val);
Parameters
val
[in] DateTime value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (double)
Provides a conversion operator to convert from double to CMxValue.
Syntax
public static implicit operator CMxValue(double val);
Parameters
val
[in] double value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (float)
Provides a conversion operator to convert from float to CMxValue.
Syntax
public static implicit operator CMxValue(float val);
Parameters
val
[in] float value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (int)
Provides a conversion operator to convert from int to CMxValue
Syntax
public static implicit operator CMxValue(int val);
Parameters
val
[in] int value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (MxDataType)
Provides a conversion operator to convert from MxDataType to CMxValue
Syntax
public static implicit operator CMxValue(MxDataType val);
Parameters
val
[in] MxDataType value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (MxSecurityClassification)
Provides a conversion operator to convert from MxSecurityClassification to CMxValue
Syntax
public static implicit operator CMxValue(MxSecurityClassification val);
Parameters
val
[in] MxSecurityClassification value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (MxStatus)
Provides a conversion operator to convert from MxStatus to CMxValue.
Syntax
public static implicit operator CMxValue(MxStatus val);
Parameters
val
[in] MxStatus value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (OpcQuality)
Provides a conversion operator to convert from OpcQuality to CMxValue.
Syntax
public static implicit operator CMxValue(OpcQuality val);
Parameters
val
[in] OpcQuality value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (string)
Provides a conversion operator to convert from string to CMxValue.
Syntax
public static implicit operator CMxValue(string val);
Parameters
val
[in] string value to convert to CMxValue.
Returns
CMxValue
CMxValue Operator Overload (TimeSpan)
Provides a conversion operator to convert from TimeSpan to CMxValue.
Syntax
public static implicit operator CMxValue(TimeSpan val);
Parameters
val
[in] TimeSpan value to convert to CMxValue.
Returns
CMxValue