Debugging Tools for Windows

SetExpressionSyntaxByName

The SetExpressionSyntaxByName and SetExpressionSyntaxByNameWide methods set the syntax that the engine will use to evaluate expressions.

HRESULT
  IDebugControl3::SetExpressionSyntaxByName(
    IN PCSTR  AbbrevName
    );

HRESULT
  IDebugControl4::SetExpressionSyntaxByNameWide(
    IN PCWSTR  AbbrevName
    );

#ifdef UNICODE
#define SetExpressionSyntaxNamesT SetExpressionSyntaxNamesWide
#else
#define SetExpressionSyntaxNamesT SetExpressionSyntaxNames
#endif

Parameters

AbbrevName
Specifies the abbreviated name of the syntax. It can be one of the following strings:
C++
Expressions will be evaluated according to C++ syntax. For details of this syntax, see C++ Numbers and Operators.
MASM
Expressions will be evaluated according to MASM syntax. For details of this syntax, see MASM Numbers and Operators.

Return Value

S_OK
The method was successful.

This method may also return error values. See Return Values for more details.

Interface Version

SetExpressionSyntaxNames is available in IDebugControl3 and later versions. SetExpressionSyntaxNamesWide is available in IDebugControl4 and later versions.

Comments

The expression syntax is a global setting within the engine, so setting the expression syntax will affect all clients.

The expression syntax of the engine determines how the engine will interpret expressions passed to Evaluate, Execute, and any other method that evaluates an expression.

After the expression syntax has been changed, the engine sends out notification to the IDebugEventCallbacks callback object registered with each client. It also passes the DEBUG_CES_EXPRESSION_SYNTAX flag to the IDebugEventCallbacks::ChangeEngineState method.

Requirements

Headers: Defined in Dbgeng.h. Include Dbgeng.h.

See Also

GetExpressionSyntax, SetExpressionSyntax, Evaluate

Build machine: CAPEBUILD