Mit dem Aufruf Extract_Cursor_Offset (CMECO) erhält ein Programm den zuletzt von openUTM an den Client gesendeten Offset der Cursor-Position, sofern der Cursor im UTM-Teilprogramm über die Funktion KDCSCUR() gesetzt wird.
Der Aufruf Extract_Cursor_Offset ist im Zustand "Send" und "Receive" und im Zustand "Reset" unmittelbar nach einem Receive-/Receive_Mapped_Data-Aufruf erlaubt.
Diese Funktion ist nicht Bestandteil der CPI-C Spezifikation, sondern eine zusätzliche Funktion des UPIC-Trägersystems.
CMECO(conversation_ID, cursor_offset, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation |
<-- cursor_offset | Offset der Cursor Position |
<-- return_code | Ergebnis des Funktionsaufrufes |
Ergebnis (return_code)
CM_OK
Aufruf OK
CM_PROGRAM_PARAMETER_CHECK
Der Wert in conversation_ID ist ungültig. Der Wert der conversation_ID ist ungültig, weil die Funktion nach Ende der Conversation mehr als einmal aufgerufen wurde oder weil noch keine Conversation existierte (nach dem Enable_UTM_UPIC-Aufruf ist noch kein Initialize_Conversation-Aufruf erfolgt).
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
CM_PROGRAM_STATE_CHECK
Die Conversation ist nicht im Zustand "Reset", "Receive" oder "Send".
Zustandsänderung
Der Aufruf ändert den Zustand der Conversation nicht.
Hinweis
Falls der Returncode von CM_OK verschieden ist, hat der Wert von cursor_offset keine Bedeutung.
Der Wert der conversation_ID bleibt für diesen Funktionsaufruf nach dem Ende einer Conversation so lange gültig, bis Initialize_Conversation oder Extract_Cursor_Offset aufgerufen werden.
Hinweis: Ein KDCSCUR()-Aufruf überschreibt den Wert von einem vorhergehenden KDCSCUR()-Aufruf im UTM-Teilprogramm; es wird der Wert vom letzten KDCSCUR()-Aufruf im Teilprogramm zurückgeliefert.
Wird im UTM-Teilprogramm bei KDCSCUR eine ungültige Adresse angegeben, liefert Extract_Cursor_Offset den Wert 0.
Bei einem +Format wird für die Cursor-Position die Adresse des Attributfeldes geliefert.
Verhalten im Fehlerfall
CM_PROGRAM_STATE_CHECK
Programm ändern.
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_PRODUCT_SPECIFIC_ERROR
Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.
CM_ENTRY Extrac_Cursor_Offset ( unsigned char CM_PTR conversation_ID,
CM_INT32 CM_PTR cursor_offset,
CM_RETURN_CODE CM_PTR return_code )