    

 ## On this page

  

 

 # Example 07 - C# 

 Last update: 17.07.2025 

# <a class="anchor" id="ex07_s1"></a>C#

using System;

using [ZOSAPI](namespace_z_o_s_a_p_i.xhtml);

 

namespace CSharpStandaloneApplication1

{

 class CSharpStandalone_07_TiltDecenterAndMFOperand

 {

 static void Main(string[] args)

 {

 // Find the installed version of OpticStudio

 bool isInitialized = ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize();

 // Note -- uncomment the following line to use a custom initialization path

 //bool isInitialized = ZOSAPI\_NetHelper.ZOSAPI\_Initializer.Initialize(@"C:\\Program Files\\OpticStudio\\");

 if (isInitialized)

 {

 LogInfo("Found OpticStudio at: " + ZOSAPI_NetHelper.ZOSAPI_Initializer.GetZemaxDirectory());

 }

 else

 {

 HandleError("Failed to locate OpticStudio!");

 return;

 }

 

 BeginStandaloneApplication();

 }

 

 static void BeginStandaloneApplication()

 {

 // Create the initial connection class

 [ZOSAPI\_Connection](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml) TheConnection = new [ZOSAPI\_Connection](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml)();

 

 // Attempt to create a Standalone connection

 [IZOSAPI\_Application](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml) TheApplication = TheConnection.[CreateNewApplication](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml#aadc54af7d7415a765592acf23d3a08ef)();

 if (TheApplication == null)

 {

 HandleError("An unknown connection error occurred!");

 return;

 }

 

 // Check the connection status

 if (!TheApplication.[IsValidLicenseForAPI](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a5b8d6c216c668d13d6dcb870698c247f))

 {

 HandleError("Failed to connect to OpticStudio: " + TheApplication.[LicenseStatus](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a95179eb8038b629caa12397723aacb3a));

 return;

 }

 if (TheApplication.[Mode](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a8d2a89bafe9778c14f592276e5a5eb19) != [ZOSAPI\_Mode](namespace_z_o_s_a_p_i.xhtml#a254f5f6cb4ff37c2245b456b9bb79d2a).Server)

 {

 HandleError("User plugin was started in the wrong mode: expected Server, found " + TheApplication.[Mode](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a8d2a89bafe9778c14f592276e5a5eb19).ToString());

 return;

 }

 

 [IOpticalSystem](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml) TheSystem = TheApplication.[PrimarySystem](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#aca8045fe84351622e0ee58814a2a3364);

 

 // Add your custom code here...

 string FilePath = TheApplication.ZemaxDataDir + "\\\\Samples\\\\Sequential\\\\Objectives\\\\Cooke 40 degree field.zos";

 TheSystem.[LoadFile](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a6eb1455ac53555ae6f30032d85b63735)(FilePath, false);

 

 // run the design lockdown tool to fix diameters, remove solves

 [ZOSAPI.Tools.IDesignLockdown](interface_z_o_s_a_p_i_1_1_tools_1_1_i_design_lockdown.xhtml) LockdownTool = TheSystem.[Tools](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#add3e3631eadf7955b7b341179ff1eff8).OpenDesignLockdown();

 LockdownTool.UsePrecisionRounding = true;

 LockdownTool.DecimalPrecision = 2;

 LockdownTool.[RunAndWaitForCompletion](interface_z_o_s_a_p_i_1_1_tools_1_1_i_system_tool.xhtml#a26d8cae18772fd31c1d18525a3b8d9ac)();

 LockdownTool.[Close](interface_z_o_s_a_p_i_1_1_tools_1_1_i_system_tool.xhtml#a5bfa126385b9d0c5619b1aff9a354d31)();

 

 // recreate the functionality of the tilt/decenter elements tool

 // apply Coordinate Breaks around the 2nd lens element (surf 3/4)

 [ZOSAPI.Editors.LDE.ILDERow](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml) surf3 = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).InsertNewSurfaceAt(3);

 [ZOSAPI.Editors.LDE.ILDERow](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml) surf6 = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).InsertNewSurfaceAt(6);

 [ZOSAPI.Editors.LDE.ISurfaceTypeSettings](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_surface_type_settings.xhtml) CB = surf3.[GetSurfaceTypeSettings](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml#a664a633a9e227c6c637aaa86ca72f159)([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[LDE](namespace_z_o_s_a_p_i_1_1_editors_1_1_l_d_e.xhtml).SurfaceType.CoordinateBreak);

 surf3.[ChangeType](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml#a6ec5d7cedce07c2f4695061cd46cc6b8)(CB);

 surf6.[ChangeType](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml#a6ec5d7cedce07c2f4695061cd46cc6b8)(CB);

 // insert a dummy surface after 2nd CB

 [ZOSAPI.Editors.LDE.ILDERow](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml) surf7 = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).InsertNewSurfaceAt(7);

 surf7.Thickness = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(5).Thickness; // the dummy carries original thickness

 

 // we're going to play with the STOP surface position, so let's put STOP on surf 1

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(1).IsStop = true;

 

 // create position solve

 [ZOSAPI.Editors.ISolveData](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml) PositionSolve = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(5).ThicknessCell.CreateSolveType([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).SolveType.Position);

 // set the properties for the position solve

 // solve-specific properties are in ISolvePosition interface, accessed via \_S\_Position

 PositionSolve._S_Position.FromSurface = 3;

 PositionSolve._S_Position.Length = 0;

 // apply position solve

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(5).ThicknessCell.SetSolveData(PositionSolve);

 

 // create pickup solve

 [ZOSAPI.Editors.ISolveData](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml) PickupSolve = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(6).ThicknessCell.CreateSolveType([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).SolveType.SurfacePickup);

 // solve-specific properties are in ISolvePosition interface, accessed via \_S\_Position

 PickupSolve._S_SurfacePickup.Surface = 5;

 PickupSolve._S_SurfacePickup.ScaleFactor = -1;

 PickupSolve._S_SurfacePickup.Offset = 0;

 PickupSolve._S_SurfacePickup.Column = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[LDE](namespace_z_o_s_a_p_i_1_1_editors_1_1_l_d_e.xhtml).SurfaceColumn.Thickness;

 // apply the pickup solve

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(6).ThicknessCell.SetSolveData(PickupSolve);

 

 // set pickup sovles for coordinate break tilt/decenter parameter cells

 // these are columns 12-16 in the Lens Data Editor (parameters 1-5)

 [ZOSAPI.Editors.ISolveData](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml) ParameterPickup = TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(6).GetCellAt(12).CreateSolveType([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).SolveType.SurfacePickup);

 ParameterPickup._S_SurfacePickup.Surface = 3;

 ParameterPickup._S_SurfacePickup.ScaleFactor = -1;

 ParameterPickup.[\_S\_SurfacePickup](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml#af7d2c55aebf1c6d10bb4bcd7aaff46b3).[MakePickupFromCurrentColumn](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_surface_pickup.xhtml#a1aa8ab0e648d959e2876c7777fedbe1f)();

 [Random](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml#a664c238076b0d36a2391819c17b0c1d1a64663f4646781c9c0110838b905daa23) rnd = new [Random](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml#a664c238076b0d36a2391819c17b0c1d1a64663f4646781c9c0110838b905daa23)();

 for (int i=12; i&lt;=16; i++)

 {

 var randomDouble = rnd.NextDouble();

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(6).GetCellAt(i).SetSolveData(ParameterPickup);

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(3).GetCellAt(i).DoubleValue = -0.1 + 0.2*randomDouble; // random value between +/-0.1

 }

 // also, set the 'order' flag for CB#2

 TheSystem.[LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477).GetSurfaceAt(6).GetCellAt(17).IntegerValue = 1;

 

 // check the global rotation matrix of surface 5 (rear of the tilted/decentered lens)

 [ZOSAPI.Editors.MFE.MeritOperandType](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml#aa186922480921b908b329f1655025fe4) [GLCR](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml#aa186922480921b908b329f1655025fe4ae9194dbd7a346bb627dc364670303480) = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[MFE](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml).MeritOperandType.GLCR;

 // GLCR operand only uses two input parameters: the surface number and rotation matrix entry number.

 // But, GetOperandValue() expects the operand type, plus 8 more inputs because some

 // operands use all 8. We have to put 0's for the additional unused inputs

 double[,] RotationMatrix = new double[3,3];

 int iterate = 1;

 for (int row = 0; row &lt; 3; row++)

 {

 for (int col = 0; col &lt; 3; col++)

 {

 RotationMatrix[row, col] = TheSystem.[MFE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#ac427705057fa09ec839220a094f3033f).GetOperandValue(GLCR, 5, iterate, 0, 0, 0, 0, 0, 0);

 iterate += 1;

 }

 }

 

 // save the file

 string OutFilePath = TheApplication.ZemaxDataDir + "\\\\Samples\\\\API\\\\CS\\\\CS\_07\_TiltDecenterAndMFOperand.zos";

 TheSystem.[SaveAs](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a32d2f472d9a6d3277f3cda76afb6d85d)(OutFilePath);

 

 // Clean up

 FinishStandaloneApplication(TheApplication);

 }

 

 static void FinishStandaloneApplication([IZOSAPI\_Application](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml) TheApplication)

 {

 // Note - TheApplication will close automatically when this application exits, so this isn't strictly necessary in most cases

 if (TheApplication != null)

 {

 TheApplication.[CloseApplication](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#ab662a3cc1b97d8632a324b1137fa943b)();

 }

 }

 

 static void LogInfo(string message)

 {

 // TODO - add custom logging

 Console.WriteLine(message);

 }

 

 static void HandleError(string errorMessage)

 {

 // TODO - add custom error handling

 throw new Exception(errorMessage);

 }

 

 }

}

[ZOSAPI.ZOSAPI\_Connection](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml)

**Definition:** ZemaxService.cs:198



[ZOSAPI.ZOSAPI\_Connection.CreateNewApplication](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml#aadc54af7d7415a765592acf23d3a08ef)

IZOSAPI_Application CreateNewApplication()

Attempts to launch a new instance of Optic Studio in 'headless' mode. Note that although the Optic St...

**Definition:** ZemaxService.cs:864



[ZOSAPI.Editors.ISolveData](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml)

Base interface for all solve types. This interface can be accesed via the IEditorCell interface....

**Definition:** InterfacesEditors.cs:563



[ZOSAPI.Editors.ISolveData.\_S\_SurfacePickup](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_data.xhtml#af7d2c55aebf1c6d10bb4bcd7aaff46b3)

ISolveSurfacePickup _S_SurfacePickup

**Definition:** InterfacesEditors.cs:594



[ZOSAPI.Editors.ISolveSurfacePickup.MakePickupFromCurrentColumn](interface_z_o_s_a_p_i_1_1_editors_1_1_i_solve_surface_pickup.xhtml#a1aa8ab0e648d959e2876c7777fedbe1f)

void MakePickupFromCurrentColumn()



[ZOSAPI.Editors.LDE.ILDERow](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml)

All data for a Lens Data Editor surface. This interface can be accessed via the ILensDataEditor inter...

**Definition:** InterfacesLDE.cs:791



[ZOSAPI.Editors.LDE.ILDERow.GetSurfaceTypeSettings](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml#a664a633a9e227c6c637aaa86ca72f159)

ISurfaceTypeSettings GetSurfaceTypeSettings(SurfaceType type)

Create the settings for the specified type. Use this method to specify any extra data required to cha...



[ZOSAPI.Editors.LDE.ILDERow.ChangeType](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_l_d_e_row.xhtml#a6ec5d7cedce07c2f4695061cd46cc6b8)

bool ChangeType(ISurfaceTypeSettings settings)

Changes the current surface to the specified type. Use GetSurfaceTypeSettings to get the relevant set...



[ZOSAPI.Editors.LDE.ISurfaceTypeSettings](interface_z_o_s_a_p_i_1_1_editors_1_1_l_d_e_1_1_i_surface_type_settings.xhtml)

This interface is used for selecting any files required by a surface, and for changing surface types....

**Definition:** InterfacesLDE.cs:746



[ZOSAPI.IOpticalSystem](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml)

Represent a complete optical system. A IOpticalSystem corresponds to a single .ZMX file....

**Definition:** Interfaces.cs:687



[ZOSAPI.IOpticalSystem.SaveAs](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a32d2f472d9a6d3277f3cda76afb6d85d)

void SaveAs(string fileName)

Saves the current system to the specified file. All future calls to Save will use the same file.



[ZOSAPI.IOpticalSystem.LoadFile](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a6eb1455ac53555ae6f30032d85b63735)

bool LoadFile(string LensFile, bool saveIfNeeded)

Replaces the current system with data from the specified file.



[ZOSAPI.IOpticalSystem.LDE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#a942995136e3c3cf875cc1fde38d33477)

ILensDataEditor LDE

Gets the lens data editor.

**Definition:** Interfaces.cs:865



[ZOSAPI.IOpticalSystem.MFE](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#ac427705057fa09ec839220a094f3033f)

IMeritFunctionEditor MFE

Gets the merit function editor.

**Definition:** Interfaces.cs:910



[ZOSAPI.IOpticalSystem.Tools](interface_z_o_s_a_p_i_1_1_i_optical_system.xhtml#add3e3631eadf7955b7b341179ff1eff8)

IOpticalSystemTools Tools

Gets an interface used to run various tools on the optical system.

**Definition:** Interfaces.cs:932



[ZOSAPI.IZOSAPI\_Application](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml)

This interface contains all information about the current ZOS-API connection, as well as methods for ...

**Definition:** Interfaces.cs:261



[ZOSAPI.IZOSAPI\_Application.IsValidLicenseForAPI](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a5b8d6c216c668d13d6dcb870698c247f)

bool IsValidLicenseForAPI

Gets a value indicating whether this the API is currently useable.

**Definition:** Interfaces.cs:287



[ZOSAPI.IZOSAPI\_Application.Mode](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a8d2a89bafe9778c14f592276e5a5eb19)

ZOSAPI_Mode Mode

Gets the current connetion mode. Use this to check if Optic Studio is expecting a user operand / anal...

**Definition:** Interfaces.cs:306



[ZOSAPI.IZOSAPI\_Application.LicenseStatus](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#a95179eb8038b629caa12397723aacb3a)

LicenseStatusType LicenseStatus

Gets the license status. Note that this displays the license edition if successful,...

**Definition:** Interfaces.cs:280



[ZOSAPI.IZOSAPI\_Application.CloseApplication](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#ab662a3cc1b97d8632a324b1137fa943b)

void CloseApplication()

Shut down the Optic Studio process.



[ZOSAPI.IZOSAPI\_Application.PrimarySystem](interface_z_o_s_a_p_i_1_1_i_z_o_s_a_p_i___application.xhtml#aca8045fe84351622e0ee58814a2a3364)

IOpticalSystem PrimarySystem

Gets the primary system. When Mode is ZOSAPI_Mode.Server, this will initially be an empty sequential ...

**Definition:** Interfaces.cs:328



[ZOSAPI.Tools.IDesignLockdown](interface_z_o_s_a_p_i_1_1_tools_1_1_i_design_lockdown.xhtml)

Interfaces and methods for validating a sequential design, prior to manufacturing or conversion to no...

**Definition:** IDesignLockdown.cs:17



[ZOSAPI.Tools.ISystemTool.RunAndWaitForCompletion](interface_z_o_s_a_p_i_1_1_tools_1_1_i_system_tool.xhtml#a26d8cae18772fd31c1d18525a3b8d9ac)

bool RunAndWaitForCompletion()

Sames as calling Run followed by WaitForCompletion.



[ZOSAPI.Tools.ISystemTool.Close](interface_z_o_s_a_p_i_1_1_tools_1_1_i_system_tool.xhtml#a5bfa126385b9d0c5619b1aff9a354d31)

bool Close()

Closes this tool and frees up and associated resources.



[ZOSAPI.Editors.LDE](namespace_z_o_s_a_p_i_1_1_editors_1_1_l_d_e.xhtml)

**Definition:** InterfacesLDE.cs:8



[ZOSAPI.Editors.MFE](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml)

**Definition:** InterfacesMFE.cs:12



[ZOSAPI.Editors.MFE.MeritOperandType](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml#aa186922480921b908b329f1655025fe4)

MeritOperandType

All supported Merit Function operands.

**Definition:** InterfacesMFE.cs:19



[ZOSAPI.Editors.MFE.MeritOperandType.GLCR](namespace_z_o_s_a_p_i_1_1_editors_1_1_m_f_e.xhtml#aa186922480921b908b329f1655025fe4ae9194dbd7a346bb627dc364670303480)

@ GLCR



[ZOSAPI.Editors.NCE.SourceSamplingMethod.Random](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml#a664c238076b0d36a2391819c17b0c1d1a64663f4646781c9c0110838b905daa23)

@ Random



[ZOSAPI.Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml)

**Definition:** InterfacesEditors.cs:12



[ZOSAPI](namespace_z_o_s_a_p_i.xhtml)

The ZOSAPI namespace contains classes for initially connecting to zemax. See also ZOSAPI_Connection,...

**Definition:** IAS_FieldCurvatureAndDistortion.cs:5



[ZOSAPI.ZOSAPI\_Mode](namespace_z_o_s_a_p_i.xhtml#a254f5f6cb4ff37c2245b456b9bb79d2a)

ZOSAPI_Mode

**Definition:** Interfaces.cs:77