Task Based Application Libraries
Applications created using different Creo API products are interoperable. These products use the Creo application as the medium of interaction, eliminating the task of writing native-platform specific interactions between different programming languages.
Application interoperability allows Creo Object TOOLKIT C++ applications to call into Creo TOOLKIT from areas not covered in the native interface. It allows you to put a Creo Object TOOLKIT C++ front end on legacy Creo TOOLKIT applications and also allows you to use Creo Object TOOLKIT C++ applications and listeners in conjunction with a asynchronous Creo Object TOOLKIT C++ application.
Creo Object TOOLKIT C++ can call Creo Parametric web pages belonging to Web.Link, and functions in Creo TOOLKIT DLLs. Creo Object TOOLKIT C++ synchronous applications can also register tasks for use by other applications.
Managing Application Arguments
Creo Object TOOLKIT C++ passes application data to and from tasks in other applications as members of a sequence of pfcArgument objects. Application arguments consist of a label and a value. The value may be of any one of the following types:
•  Integer
•  Double
•  Boolean
•  ASCII string (a non-encoded string, provided for compatibility with arguments provided from C applications)
•  String (a fully encoded string)
•  pfcSelection (a selection of an item in a Creo session)
•  pfcTransform3D (a coordinate system transformation matrix)
Methods Introduced:
The class pfcArgValue contains one of the seven types of values. Creo Object TOOLKIT C++ provides different methods to create each of the seven types of argument values.
The method pfcArgValue::Getdiscr returns the type of value contained in the argument value object.
Use the methods listed above to access and modify the argument values.
Modifying Arguments
Methods Introduced:
The method pfcArgument::Create creates a new argument. Provide a name and value as the input arguments of this method.
The method pfcArguments::create creates a new empty sequence of task arguments.
The method pfcArgument::GetLabel returns the label of the argument. The method pfcArgument::Argument.SetLabel sets the label of the argument.
The method pfcArgument::GetValue returns the value of the argument. The method pfcArgument::SetValue sets the value of the argument.
Launching a Creo TOOLKIT DLL
The methods described in this section enable a Creo Object TOOLKIT C++ user to register and launch a Creo TOOLKIT DLL from a Creo Object TOOLKIT C++ application.
Methods Introduced:
Use the method pfcBaseSession::LoadProToolkitDll to register and start a Creo TOOLKIT DLL. The input parameters of this method are similar to the fields of a registry file and are as follows:
•  ApplicationName—The name of the application to initialize.
•  DllPath—The full path to the DLL binary file.
•  TextPath—The path to the application’s message and user interface text files.
•  UserDisplay—Set this parameter to true to register the application in the Creo user interface and to see error messages if the application fails. If this parameter is false, the application will be invisible to the user.
The application's user_initialize() function is called when the application is started. The method returns a handle to the loaded Creo TOOLKIT DLL.
In order to register and start a legacy Pro/TOOLKIT DLL that is not Unicode-compliant, use the method pfcBaseSession::LoadProToolkitLegacyDll. This method conveys to Creo Parametric that the loaded DLL application is not Unicode-compliant and built in the pre-Wildfire 4.0 environment. It takes the same input parameters as the earlier method pfcBaseSession::LoadProToolkitDll.
Use the method pfcBaseSession::GetProToolkitDll to obtain a Creo TOOLKIT DLL handle. Specify the Application_Id, that is, the DLL’s identifier string as the input parameter of this method. The method returns the DLL object or null if the DLL was not in session. The Application_Id can be determined as follows:
•  Use the function ProToolkitDllIdGet() within the DLL application to get a string representation of the DLL application. Pass NULL to the first argument of ProToolkitDllIdGet() to get the string identifier for the calling application.
•  Use the Get method for the Id attribute in the DLL interface. The method pfcDll::GetId returns the DLL identifier string.
Use the method pfcDll::ExecuteFunction to call a properly designated function in the Creo TOOLKIT DLL library. The input parameters of this method are:
•  FunctionName—Name of the function in the Creo TOOLKIT DLL application.
•  InputArguments—Input arguments to be passed to the library function.
The method returns an object of interface pfcFunctionReturn. This interface contains data returned by a Creo TOOLKIT function call. The object contains the return value, as integer, of the executed function and the output arguments passed back from the function call.
The method pfcDll::IsActive determines whether a Creo TOOLKIT DLL previously loaded by the method pfcBaseSession::LoadProToolkitDll is still active.
The method pfcDll::Unload is used to shutdown a Creo TOOLKIT DLL previously loaded by the method pfcBaseSession::LoadProToolkitDll and the application's user_terminate() function is called.
Launching Tasks from Creo Object TOOLKIT C++ Task Libraries
The methods described in this section allow you to launch tasks from a predefined Creo Object TOOLKIT C++ task library.
Methods Introduced:
Use the method pfcBaseSession::StartJLinkApplication to start a Creo Object TOOLKIT C++ application. The input parameters of this method are similar to the fields of a registry file and are as follows:
•  ApplicationName—Assigns a unique name to this Creo Object TOOLKIT C++ application.
•  ClassName—Specifies the name of the Creo Object TOOLKIT C++ class that contains the Creo Object TOOLKIT C++ application’s start and stop method. This should be a fully qualified Creo Object TOOLKIT C++ package and class name.
•  StartMethod—Specifies the start method of the Creo Object TOOLKIT C++ application.
•  StopMethod—Specifies the stop method of the Creo Object TOOLKIT C++ application.
•  AdditionalClassPath—Specifies the locations of packages and classes that must be loaded when starting this Creo Object TOOLKIT C++ application. If this parameter is specified as null, the default classpath locations are used.
•  TextPath—Specifies the application text path for menus and messages. If this parameter is specified as null, the default text locations are used.
•  UserDisplay—Specifies whether to display the application in the Auxiliary Applications dialog box in the Creo application.
Upon starting the application, the static start() method is invoked. The method returns a pfcJLinkApplication referring to the Creo Object TOOLKIT C++ application.
The method pfcJLinkApplication::ExecuteTask calls a registered task method in a Creo Object TOOLKIT C++ application. The input parameters of this method are:
•  Name of the task to be executed.
•  A sequence of name value pair arguments contained by the interface pfcArguments.
The method outputs an array of output arguments. These arguments are returned by the task’s implementation of the pfcJLinkTaskListener::OnExecute call back method.
The method pfcJLinkApplication::IsActive returns a True value if the application specified by the pfcJLinkApplication object is active.
The method pfcJLinkApplication::Stop stops the application specified by the pfcJLinkApplication object. This method activates the application’s static Stop() method.