and fills out a PDF based form system
Retrieves the first structure of all semantically well defined structures defined by the currently loaded PDF file.
Note, that basically the index of the named struct and the occupation status (defined or not) is returned. Based on the returned status, a structure is set or overridden by the appropriate method e.g. AddDiagnosis, using the given bstrStructName struct index.
Furthermore, the method returns a possible non-empty constraint, that supplies further specific information about the requested data. The constraint must be seen either as >xsd:appinfo< element holding information for the main software or as >xsd:annotation< formulated in the natural language of the form requesting specific information. Example of ist usage are:
VARIANT_FALSE is returned if the end of the structure list is reached.
|C/C++ calling syntax|
|HRESULT GetFirstStructRole(|| StructRoleType
|Calling argument description|
|[out] StructRoleType||*peStructRoleType||The role type/typification of the structure defined by the StructRoleType enumerator.|
|[out] BSTR||*pbstrStructName||The PDF internal variable name/placeholder onto which the structure was mapped.|
|[out] long||*plIndex||The '0'-based index into the array of structures of the given structure role type.|
|[out] long||*plMaxOccurs||The maximal cardinality of this given structure role type|
|[out] YesNoType||*peIsDefined||Boolean that designates if the structure is already preset and defined (enYes) or not (enNo)|
|[out] BSTR||*pbstrConstraint||bstrConstraint is -if defined at all- a constraint onto the value space, a constraint of the time axis (appinfo machine instruction) or a natural language based instruction (annotation). The constraint of a structure is formatted by using/defining variables of the corresponding method and setting/assigning a constraint value. These token=value sets are whitespace separated, case-insensitive and the notation is exactly as in the API documentation.
Furthermore, there are situations where a constraint of the value space is defined by the applicable law. Therefore, the aforementioned token=value set can optionally be augmented by a eLawType set, e.g. eLawType=enUVG for setting the law to UVG (cf the enumeration space of eLawType for the possible set of values!).
For example the constraint on the right distant sphere of an eyeglass prescription can be defined in terms of the numericResult structure as:
Please note, that the constraint is not enforced by the COM module to allow other data as well - in that sense, it is more a hint than a constraint. However, it does not make any sense e.g. to add a HbA1c lab result for the aforementioned distant sphere case!
|[out, retval] VARIANT_BOOL||*pbStatus||Return status of the method. If pbStatus is VARIANT_FALSE the end of data is reached|
|C/C++ return value|
|S_OK||This value is returned if the function call was successful or if the return value of a boolean method signalling a true value. In this case the VARIANT_BOOL is set to VARIANT_TRUE.|
|S_FALSE||This is the return value of a boolean method signalling a false return value. In this case the VARIANT_BOOL is set to VARIANT_FALSE.|
|E_name||This value is returned if the function call was unsuccessful and an error exception was generated. Note that if you are using SmartPointers an exception is thrown under these conditions.|