31:
How can I use my own operators only

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutAllowValueKeyword(VARIANT_FALSE);
spExpression1->PutAllowDefaultOperators(VARIANT_FALSE);
spExpression1->AddCustomOperator(L"+","<b>+</b>","This is a new binary-operator",long(2));
spExpression1->AddCustomOperator(L"xxx","<b>xxx</b>","This is a new keyword",long(0));
spExpression1->AddCustomOperator(L"yyy","<b>yyy</b>","This is a unary-operator",long(1));
spExpression1->AddCustomOperator(L"zzz","<b>zzz</b>","This is a binary-operator",long(2));
spExpression1->PutText(L"xxx + yyy(100 zzz 200)");

30:
How can I add a new binary-operator

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->AddCustomOperator(L"xxx","<b>xxx</b>","This is a new binary-operator",long(2));
spExpression1->PutText(L"value + 100 xxx 200");

29:
How can I add a new unary-operator

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->AddCustomOperator(L"xxx","<b>xxx</b>","This is a new unary-operator",long(1));
spExpression1->PutText(L"value + xxx(100)");

28:
How can I add a new keyword

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->AddCustomOperator(L"xxx","<b>xxx</b>","This is a new keyword",long(0));
spExpression1->PutText(L"value + xxx");

27:
How can I disable all operators
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutAllowValueKeyword(VARIANT_FALSE);
spExpression1->PutAllowDefaultOperators(VARIANT_FALSE);

26:
How can I disable the value keyword
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutAllowValueKeyword(VARIANT_FALSE);

25:
Usage of and ( and operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"(value contains 1) and (value != 1)");

24:
Usage of or ( or operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"(value=1) or value=`string`");

23:
Usage of not ( not operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"not(value=1)");

22:
Usage of - ( subtraction operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value - 2");

21:
Usage of + ( addition operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value + 2");

20:
Usage of mod ( reminder operator )

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value mod 2");

19:
Usage of / (divide operator)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value / 2");

18:
Usage of * (multiplicity operator)

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"2 * value");

17:
How can I get the word from cursor when user double clicks the control
// DblClick event - Occurs when the user double clicks the left mouse button over an object.
void OnDblClickExpression1(short   Shift,long   X,long   Y)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'
		#import <Expression.dll>
		using namespace EXPRESSIONLib;
	*/
	EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
	OutputDebugStringW( L"Word: " );
	OutputDebugStringW( spExpression1->GetWordFromPoint(-1,-1,vtMissing) );
}

EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutAllowSplitter(EXPRESSIONLib::exVSplitter);
spExpression1->PutSplitPaneHeight(196);

16:
How do I determine the word from the cursor
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
void OnClickExpression1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'
		#import <Expression.dll>
		using namespace EXPRESSIONLib;
	*/
	EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
	OutputDebugStringW( L"Word: " );
	OutputDebugStringW( spExpression1->GetWordFromPoint(-1,-1,vtMissing) );
}

EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutSplitPaneHeight(196);
spExpression1->PutBackground(EXPRESSIONLib::exVSplitterApp,RGB(240,240,240));
spExpression1->PutAllowSplitter(EXPRESSIONLib::exVSplitter);

15:
How can I check if the expression is valid/syntactically correct
// Change event - Indicates that the control's text has changed.
void OnChangeExpression1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'
		#import <Expression.dll>
		using namespace EXPRESSIONLib;
	*/
	EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
	OutputDebugStringW( L"Valid: " );
	OutputDebugStringW( _bstr_t(spExpression1->GetIsValid()) );
}

EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutSplitPaneHeight(196);
spExpression1->PutBackground(EXPRESSIONLib::exVSplitterApp,RGB(240,240,240));
spExpression1->PutAllowSplitter(EXPRESSIONLib::exVSplitter);

14:
How can I change the visual appearance of the horizontal splitter

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutSplitPaneHeight(196);
spExpression1->PutBackground(EXPRESSIONLib::exVSplitterApp,RGB(240,240,240));
spExpression1->PutAllowSplitter(EXPRESSIONLib::exVSplitter);

13:
How can I change the visual appearance of the vertical splitter

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutBackground(EXPRESSIONLib::exHSplitterApp,RGB(240,240,240));

12:
How can I add a new menu-item to control's context menu
// ExecuteContextMenu event - Occurs when the user selects an user item from the control's context menu.
void OnExecuteContextMenuExpression1(LPCTSTR   Item,long   Position)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'
		#import <Expression.dll>
		using namespace EXPRESSIONLib;
	*/
	EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
	OutputDebugStringW( L"ExecuteContextMenu: " );
	OutputDebugStringW( L"Item" );
}

EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value + 100");
spExpression1->PutContextMenuItems(L"Test");

11:
How can I change the tooltip that shows when cursor hovers a keyword

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutDescription(EXPRESSIONLib::exKeywordValue,L"This is a bit of text to be shown when cursor hovers the <b>value</b> keyword.");
spExpression1->Refresh();

10:
How do I check if the expression is correct
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"currency(value)");
OutputDebugStringW( _bstr_t(spExpression1->GetIsValid()) );

9:
How do I programmatically evaluate the expression
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"currency(value)");
OutputDebugStringW( _bstr_t(spExpression1->GetEvaluate("value=100")) );

8:
How can I assign multiple values for variables %1, %2, ...

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"currency(%1 + %2)");
spExpression1->PutEvaluationText(L"%1 = 100;%2 = 200");

7:
How can I change the values to show the result
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"currency(value)");
spExpression1->PutEvaluationText(L"value = 100");

6:
How can I prevent changing the color when expression is invalid
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value 2");
spExpression1->PutForeColorInvalid(RGB(0,0,0));

5:
How can I change the color when expression is invalid
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value 2");
spExpression1->PutForeColorInvalid(RGB(255,0,0));

4:
How can I prevent evaluation the selection

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value + 1");
spExpression1->PutEvaluateSelection(VARIANT_FALSE);
spExpression1->PutHideSelection(VARIANT_FALSE);
spExpression1->PutSelLength(1);

3:
How can I programatically show the result
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutSplitPaneWidth(196);
spExpression1->PutExpression(L"value");

2:
How can I get ride of the right-vertical line/split
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutAllowSplitter(EXPRESSIONLib::exNoSplitter);
spExpression1->PutExpression(L"value + 1");

1:
How can I change the control's background
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXPRESSIONLib' for the library: 'Expression 1.0 Control Library'

	#import <Expression.dll>
	using namespace EXPRESSIONLib;
*/
EXPRESSIONLib::IExpressionPtr spExpression1 = GetDlgItem(IDC_EXPRESSION1)->GetControlUnknown();
spExpression1->PutExpression(L"value");
spExpression1->PutBackColor(RGB(240,240,240));