Task Based Application Libraries
Applications created using different Creo Parametric API products are interoperable. These products use Creo Parametric as the medium of interaction, eliminating the task of writing native-platform specific interactions between different programming languages.
Application interoperability allows the VB API applications to call into Creo TOOLKIT from areas not covered in the native interface. It allows you to put a VBA or VB.NET front end on legacy Creo TOOLKIT applications , and also allows you to use applications and listeners in conjunction with a or asynchronous application.
Managing Application Arguments
The VB API passes application data to and from tasks in other applications as members of a sequence of IpfcArgument 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)
•  IpfcSelection (a selection of an item in a Creo Parametric session)
•  IpfcTransform3D (a coordinate system transformation matrix)
Methods and Properties Introduced:
  • CMpfcArgument.CreateIntArgValue()
  • CMpfcArgumentCreateDoubleArgValue()
  • CMpfcArgumentCreateBoolArgValue()
  • CMpfcArgumentCreateASCIIStringArgValue()
  • CMpfcArgumentCreateStringArgValue()
  • CMpfcArgumentCreateSelectionArgValue()
  • CMpfcArgumentCreateTransformArgValue()
  • IpfcArgValue.discr
  • IpfcArgValue.IntValue
  • IpfcArgValue.DoubleValue
  • IpfcArgValue.BoolValue
  • IpfcArgValue.ASCIIStringValue
  • IpfcArgValue.StringValue
  • IpfcArgValue.SelectionValue
  • IpfcArgValue.TransformValue
  • The class IpfcArgValue contains one of the seven types of values. the VB API provides different methods to create each of the seven types of argument values.
    The property IpfcArgValue.discr 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 and Properties Introduced:
  • CCpfcArgument.Create()
  • IpfcpfcArgument.Label
  • IpfcpfcArgument.Value
  • The method CCpfcArgument.Create() creates a new argument. Provide a name and value as the input arguments of this method.
    The property IpfcpfcArgument.Label returns the label of the argument.
    The property IpfcpfcArgument.Value returns the value of the argument.
    Launching a Creo TOOLKIT DLL
    The methods described in this section enable a the VB API user to register and launch a Creo TOOLKIT DLL from an application. The ability to launch and control a Creo TOOLKIT application enables the following:
    •  Reuse of existing Creo TOOLKIT code with the VB API applications.
    •  ATB operations.
    Methods and Properties Introduced:
  • IpfcBaseSession.LoadProToolkitDll()
  • IpfcBaseSession.LoadProToolkitLegacyDll()
  • IpfcBaseSession.GetProToolkitDll()
  • IpfcDll.ExecuteFunction()
  • IpfcDll.Id
  • IpfcDll.IsActive()
  • IpfcDll.Unload()
  • Use the method IpfcBaseSession.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 Parametric 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 IpfcBaseSession.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 IpfcBaseSession.LoadProToolkitDll().
    Note
    The method IpfcBaseSession.LoadProToolkitLegacyDll() must be used only by a pre-Wildfire 4.0 application to load a pre-Wildfire 4.0 Pro/TOOLKIT DLL.
    Use the method IpfcBaseSession.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 IpfcDll.Id returns the DLL identifier string.
    Use the method IpfcDll.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 IpfcFunctionReturn. 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 IpfcDll.IsActive() determines whether a Creo TOOLKIT DLL previously loaded by the method IpfcBaseSession.LoadProToolkitDll() is still active.
    The method IpfcDll.Unload() is used to shutdown a Creo TOOLKIT DLL previously loaded by the method IpfcBaseSession.LoadProToolkitDll() and the application's user_terminate() function is called.
    Launching Tasks from J-Link Task Libraries
    The methods described in this section allow you to launch tasks from a predefined J-Link task library.
    Methods Introduced:
  • IpfcBaseSession.StartJLinkApplication()
  • IpfcJLinkApplication.ExecuteTask()
  • IpfcJLinkApplication.IsActive()
  • IpfcJLinkApplication.Stop()
  • Use the method IpfcBaseSession.StartJLinkApplication() to start a 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 J-Link application.
    •  ClassName—Specifies the name of the Java class that contains the application’s start and stop method. This should be a fully qualified Java package and class name.
    •  StartMethod—Specifies the start method of the J-Link application.
    •  StopMethod—Specifies the stop method of the J-Link application.
    •  AdditionalClassPath—Specifies the locations of packages and classes that must be loaded when starting this J-Link 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 Creo Parametric.
    Upon starting the application, the static start() method is invoked. The method returns a IpfcJLinkApplication referring to the J-Link application.
    The method IpfcJLinkApplication.ExecuteTask() calls a registered task method in the J-Link 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 IpfcArguments.
    The method outputs an array of output arguments.
    The method JLinkApplication.IsActive returns a True value if the application specified by the JLink.IpfcJLinkApplication object is active.
    The method IpfcJLinkApplication.Stop() stops the application specified by the IpfcJLinkApplication object. This method activates the application’s static Stop() method.