#ifndef PRO_EXTOBJREF_H
#define PRO_EXTOBJREF_H
#include <ProToolkit.h>
#include <ProObjects.h>
#include <ProSelection.h>
PRO_BEGIN_C_DECLS
/* Creo Parametric TOOLKIT external object reference - related functions */
typedef struct attach_point *ProWExtobjRef;
typedef struct
{
ProSelection prosel;
int user_type;
} ProExtobjRefInfo;
typedef enum
{
PRO_EXTOBJREF_ACTIVE = 1,
PRO_EXTOBJREF_SUPPRESSED = 2,
PRO_EXTOBJREF_MISSING = 3
} ProExtobjrefStatus;
extern ProError ProExtobjRefAlloc (ProWExtobjRef *ext_obj_ref);
/*
Purpose: Allocates the memory for the external object reference.
Input Arguments:
none
Output Arguments:
ext_obj_ref - The pointer to the external object reference
Return Values:
PRO_TK_NO_ERROR - The function successfully allocated the memory.
PRO_TK_GENERAL_ERROR - The function could not allocate the memory.
*/
extern ProError ProExtobjRefFree (ProWExtobjRef *ext_obj_ref);
/*
Purpose: Frees the memory allocated for the external object reference.
Input Arguments:
ext_obj_ref - The pointer to the external object reference
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully freed the memory.
PRO_TK_BAD_INPUTS - The external object reference was not found.
PRO_TK_GENERAL_ERROR - The function could not free the memory.
*/
extern ProError ProExtobjRefselectionSet(ProWExtobjRef ext_obj_ref,
ProSelection reference);
/*
Purpose: Sets the external object references for selection.
Input Arguments:
ext_obj_ref - The external object reference
reference - The references
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the references.
PRO_TK_BAD_INPUTS - The external object reference was not found.
PRO_TK_GENERAL_ERROR - The references were not found, or the function
could not set the references.
*/
extern ProError ProExtobjRefselectionGet(ProExtobj *object,
ProWExtobjRef ext_obj_ref,
ProSelection *reference);
/*
Purpose: Retrieves the references for selection.
Input Arguments:
object - The handle to which the external object reference belongs
ext_obj_ref - The external object reference
Output Arguments:
reference - The references
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The external object reference was not found.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProExtobjReftypeSet (ProWExtobjRef ext_obj_ref,
int ext_obj_reftype);
/*
Purpose: Sets the type for the specified external object reference.
Input Arguments:
ext_obj_ref - The external object reference
ext_obj_reftype - The type of reference
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the type.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The external object reference was not found, or
the function could not set the type.
*/
extern ProError ProExtobjReftypeGet (ProWExtobjRef ext_obj_ref,
int *ext_obj_reftype);
/*
Purpose: Retrieves the type of the external object reference.
Input Arguments:
ext_obj_ref - The reference
Output Arguments:
ext_obj_reftype - The reference type
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_GENERAL_ERROR - The external object reference was not found, or
the function could not retrieve the information.
*/
extern ProError ProExtobjRefAdd (ProExtobj *object,
ProWExtobjRef ext_obj_ref);
/*
Purpose: Adds the specified reference to the external object.
Input Arguments:
object - The handle to the external object
ext_obj_ref - The reference
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully added the reference.
PRO_TK_GENERAL_ERROR - The external object was not found, or the
function could not add the reference.
*/
extern ProError ProExtobjRefRemove(ProExtobj *object,
ProWExtobjRef ext_obj_ref);
/*
Purpose: Removes the specified reference from the external object.
Input Arguments:
object - The handle to the external object
ext_obj_ref - The reference to remove
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully removed the reference.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_GENERAL_ERROR - The external object was not found, or the
function could not remove the reference.
*/
typedef ProError (*ProExtobjRefVisitAction) ( ProExtobj *p_extobj,
ProWExtobjRef ext_obj_ref,
ProError status,
ProExtobjrefStatus ref_status,
ProAppData app_data );
/*
Purpose: This is the user function prototype called for visiting external
objects references.
Input Arguments:
p_extobj - The handle to the model
ext_obj_ref - The reference
status - The status
ref_status - Reference status
app_data - The application data passed from the function
<b>ProExtobjRefVisit()</b>
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue.
*/
typedef ProError (*ProExtobjRefFilterAction) ( ProExtobj *p_extobj,
ProWExtobjRef extobj_ref,
ProAppData app_data);
/*
Purpose: This is the user function prototype called for visiting external
objects references.
Input Arguments:
p_extobj - The handle to the model
extobj_ref - The reference
app_data - The application data passed from the function
<b>ProExtobjRefVisit()</b>
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue.
*/
extern ProError ProExtobjRefVisit (ProExtobj *object,
ProExtobjRefVisitAction visit_action,
ProExtobjRefFilterAction filter_action,
ProAppData app_data);
/*
Purpose: Visits a number of external object references.
Input Arguments:
object - The handle to the external object
visit_action - The visiting function
filter_action - The filter function. If NULL, all external object
references are visited using the action function.
app_data - The application data passed to the visiting and action
functions
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully visited the references.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The external object was not found, or the
function could not visit the references.
*/
PRO_END_C_DECLS
#endif /* PRO_EXTOBJREF_H */