3.12 DM_ControlEx

Mit dieser Funktion können generelle Einstellungen im ISA Dialog Manager geändert oder Aktionen ausgelöst werden.

Gegenüber der Funktion DM_Control bietet diese Funktion die zusätzliche Aktion DMF_SetUserCodePage. Durch DMF_SetUserCodePage kann ein Codepage-Systemstring für die iconv Wandlung gesetzt werden, der nur dann aktiv wird, wenn eine IDM Codepage auf CP_ucp gesetzt ist. Eine Setzung auf CP_ucp erfolgt bspw. durch die Aktion DMF_SetCodePage. Bei Benutzung dieser Codepage wird dann mittels der auf UNIX/LINUX vorhandenen iconv-Routinen eine Codepage-Konvertierung von Zeichen/Strings durchgeführt. Der Benutzer kann die Codepage frei wählen. Da die iconv-Funktionalität nicht auf MS-Windows oder VMS vorhanden ist, wird dies auf diesen Plattformen nicht unterstützt (Default-Konvertierung nach ?-Zeichen).
Von/zu welcher Codepage eigentlich konvertiert wird kann der Anwender selbst festlegen. Notwendig ist nur, das iconv die Konvertierung von/zu UTF-8 unterstützt! Defaultmäßig ist die User-Codepage "8859-1" gesetzt. Mittels der Aktion DMF_SetUserCodePage kann der Anwendungsprogrammierer die Codepage in der seine Strings sind selbst setzen.

DM_boolean DML_default DM_EXPORT DM_ControlEx
(
  DM_ID      objectID,
  DM_UInt    action,
  DM_Pointer data,
  DM_Options options
)

Parameter

-> DM_ID objectID

Objekt für das die gewünschte Aktion ausgeführt werden soll.

-> DM_UInt action

Aktion, die der IDM ausführen soll. Dazu sind verschiedene Konstanten in der Include-Datei IDMuser.h definiert. Diese Konstanten sind in der Tabelle unten erläutert.

-> DM_Pointer data

Parameter zur Übergabe beliebiger Daten an die Funktion.

Bei der Aktion DMF_SetUserCodePage muss in diesem Parameter ein Pointer auf einen String mitgegeben werden, der Codepage-Code enthält.

-> DM_Options options

Enthält bei Bedarf ein Argument für die in action angegebene Aktion (siehe Tabelle unten).

Rückgabewert

DM_TRUE

Die Aktion wurde erfolgreich ausgeführt.

DM_FALSE

Die Aktion konnte nicht ausgeführt werden.

Die nachfolgende Tabelle zeigt die gültigen Belegungen der einzelnen Parameter und erläutert ihre Bedeutung. Wenn bei der Aktion nichts anderes gesagt wird, ist als objectID immer 0 anzugeben.

action

options

Bedeutung

DMF_UpdateScreen

0

Es sollen alle internen SetVal-Aufrufe auf den Bildschirm gebracht werden. In diesem Fall muss der erste Parameter mit dem Dialog belegt sein.

DMF_UIAutomationMode

 

Mit dieser Aktion kann die spezielle UI Automation Unterstützung des IDM für seine besonderen Objekte abgeschaltet werden. Weiterhin aktiv bleibt aber die UI Automation Unterstützung von Microsoft für die Standard Controls.

Standardmäßig ist die Unterstützung von UI Automation aktiv.

Die Umschaltung muss vor dem Aufruf von DM_Initialize und nach dem Bootstrapping erfolgen.

0

Deaktiviert den UI Automation Support des IDM.

1

Aktiviert den UI Automation Support des IDM.

DMF_PCREBinding

0

Deaktiviert die Anbindung an die PCRE-Bibliothek, Reguläre Ausdrücke sind somit nicht mehr möglich.

1

Anbindung an statisch im Executable vorhandene PCRE-Funktionen (Anbindungsart E).

2

Nur dynamische Anbindung von PCRE-Bibliotheken relativ zur Applikation (Anbindungsart A).

3

Bindung zu PCRE-Bibliotheken relativ zur Applikation oder aus dem System (Anbindungsreihenfolge A – S).

4

Bindung mit Vorrang für Funktionen im Executable (Anbindungsreihenfolge E – A – S), dies ist für selbstgebaute IDM-Applikationen der Standardfall.

5

Bindung analog zu 4 aber in umgekehrter Reihenfolge, also Vorrang für die im System installierte PCRE-Bibliothek (Anbindungsreihenfolge S – A – E).

Siehe auch

Kapitel „PCRE-Bibliothek zur Unterstützung Regulärer Ausdrücke“ bei der eingebauten Funktion regex()

DMF_SignalMode

0

Die Signale werden über die Funktion signal abgefangen.

1

Die Signale werden über die Funktion sigaction abgefangen.

DMF_SetSearchPath

0

Mit dieser Aktion wird der Suchpfad für IDM-Dateien (Dialog-, Modul-, Interface- und Binärdateien) umgesetzt. Die Semikolon-separierten Verzeichnisse sind im data-Parameter als String-Pointer zu übergeben.

Siehe auch

Startoption -IDMsearchpath

DMF_SetUsepathModifier

0

Mit dieser Aktion wird der Konverter gesteuert, mit dem Use-Pfade zu Dateipfaden gewandelt werden. Die Steuerung erfolgt über einen String als data-Parameter.

Wertebereich

  • ""Leerstring
  • "L"Umwandlung in Kleinbuchstaben
  • "F"Umwandlung des ersten Buchstabens eines Pfadteiles in Kleinbuchstaben
  • "U"Umwandlung in Großbuchstaben
  • "u"Umwandlung in Großbuchstaben, außer der Dateiendung

DMF_SetCodePage

 

Mit dieser Aktion lässt sich die Codepage von Strings setzen, die zwischen Anwendung und IDM übergeben werden.

Normalerweise erwartet und liefert der IDM Strings ISO 8859-1 codiert. Mit dieser Aktion kann eine andere Zeichencodierung für Strings festgelegt werden.

Ab IDM-Version A.06.01.d ist es möglich, im Parameter objectID ein Application-Objekt anzugeben. Damit wird die applikationsspezifische Codepage umgesetzt, welche für die Verarbeitung von Strings nötig ist. Das Umsetzen einer applikationsspezifischen Codepage innerhalb einer der Funktion der entsprechenden Applikation hat eine sofortige Wirkung.

Der Aufruf auf einer DDM-Serverseite unterstützt allerdings kein Umsetzen der Applikationscodepage sondern wirkt sich ohnehin nur auf die Netzwerk-Applikation aus.

DMF_SetFormatCodePage

 

Definiert die Codepage, in der Formatfunktionen Strings interpretieren und zurückgeben.

DMF_SetUserCodePage

 

Stellt den Zeichencode für iconv ein, und beeinflusst damit indirekt die IDM Codepage CP_ucp. Diese wird mittels DMF_SetCodePage aktiviert. (Nur auf Plattformen, die iconv unterstützen).

Der Codepage-Code wird im Parameter data übergeben (Pointer auf einen String der Codepage-Code enthält).

Folgende Optionen gelten für DMF_SetCodePage und DMF_SetFormatCodePage

 

CP_ascii

ASCII Zeichencodierung.

 

CP_iso8859

Westeuropäische Zeichencodierung Latin-1 nach ISO 8859-1.

 

CP_cp437

Englische Zeichencodierung gemäß IBM-Codepage 437 (MS-DOS).

 

CP_cp850

Westeuropäische Zeichencodierung gemäß IBM-Codepage 850 (MS-DOS).

 

CP_iso6937

Westeuropäische Codierung mit variabler Länge nach ISO 6937.

 

CP_winansi

Microsoft Windows Zeichencodierung.

 

CP_dec169

Zeichencodierung gemäß DEC-Codepage 169.

 

CP_roman8

8-Bit Zeichencodierung gemäß HP-Codepage Roman-8.

 

CP_utf8

8-Bit Unicode-Codierung mit variabler Länge, entspricht im Bereich 0 – 127 der ASCII-Codierung.

 

CP_utf16

CP_utf16b

CP_utf16l

16-Bit Unicode-Codierung mit variabler Länge von 2 bis 4 Byte.

Zwei Varianten:

  • BE – Big Endian: höherwertige(s) Byte(s) zuerst.
  • LE – Little Endian: niederwertige(s) Byte(s) zuerst.

UTF-16 ohne Angabe der Byte-Reihenfolge entspricht unter Microsoft Windows der LE-Variante, auf Unix-Systemen dagegen der BE-Variante.

 

CP_cp1252

Westeuropäische Zeichencodierung gemäß Microsoft Windows Codepage 1252.

 

CP_acp

Aktuell von einer Anwendung verwendete ANSI-Codepage unter Microsoft Windows.

Nur unter Microsoft Windows verwendbar.

 

CP_hp15

Westeuropäische 16-Bit Zeichencodierung von HP-Systemen.

 

CP_jap15

Japanische 16-Bit Zeichencodierung von HP-Systemen.

 

CP_roc15

Vereinfachte chinesische 16-Bit Zeichencodierung (Kurzzeichen) von HP-Systemen.

 

CP_prc15

Traditionelle chinesische 16-Bit Zeichencodierung (Langzeichen) von HP-Systemen.

 

CP_ucp

Benutzerdefinierte Codepage ("User Code Page"). Konvertierung in eine beliebige Codepage mit iconv().

Anmerkungen

Beispiel

Setzen der Applikations-Codepage unter Verwendung von CP_ucp und DMF_SetUserCodePage.

/* Applikations-Codepage auf CP_ucp setzen und CP1250 verwenden. */
...
DM_Control((DM_ID)0, DMF_SetCodePage, CP_ucp);
DM_ControlEx((DM_ID)0, DMF_SetUserCodePage, "CP1250", 0)
...

Siehe auch

Funktion DM_Control