-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft allgemein
Computerbetriebssysteme, und spezieller betrifft sie Anwendungsprogramm-Schnittstellen
für Betriebssysteme
mit beschränkten
Ressourcen.
-
EINSCHLÄGIGE ANMELDUNGEN
-
Die Erfindung beansprucht den Nutzen
der am 23. März
1998 eingereichten vorläufigen
US-Anmeldung Nr. 60/078946.
-
COPYRIGHT-HINWEIS/ERLAUBNIS
-
Ein Teil der Offenbarung dieses Patentdokuments
enthält
Material, das dem Copyrightschutz unterliegt. Der Inhaber des Copyrights
hat keine Einwände
gegen Faksimilereproduktion durch beliebige Personen betreffend
das Patentdokument oder die Patentoffenbarung, wie sie in der Patentanmeldung
oder Aufzeichnungen des Patent and Trademark Office erscheint, behält sich
jedoch ansonsten jedwede Copyright-Rechte aufrecht. Der folgende
Hinweis gilt für
die Software und die Daten, wie sie unten und in der beigefügten Zeichnungen
beschrieben sind: Copyright(c)1998, 1999,
Microsoft Corporation, All Rights Reserved.
-
HINTERGRUND
DER ERFINDUNG
-
Die schnelle Entwicklung der PC-Technik
dauert an, wobei persönliche
Computer (PCs) produziert werden, die kleiner, billiger und schneller
als ihre Vorgänger
sind. Während
Com puter früher
ganze Räume
belegten, sind sie nun ausreichend klein dafür, um auf die Handfläche eines
Benutzers zu passen, wo der Name "Palm-size PCs" herrührt. Außerdem sind
PCs nun ausreichend klein dafür,
in Umgebungen außerhalb
des Hauses oder des Büros,
wie einem Kraftfahrzeug, platziert zu werden. Noch weiter können die
neuen PCs in eine Anzahl von Verbrauchergeräten und spezialisierten Industriesteuerungen
eingebaut werden. Für
die Zwecke dieser Anmeldung werden alle oben genannten PCs kollektiv
als "Einbausysteme" bezeichnet.
-
Die verringerte Größe eingebauter
Systeme bedeutet, dass bestimmte Opfer gebracht werden müssen. Zum
Beispiel verfügt
ein typisches eingebautes System über keine Laufwerke für feste
oder entnehmbare Daten, wie Festplatten, Disketten-, CD-ROM- oder
DVD-ROM-Laufwerke, wobei die Dauerspeicherung bei einem typischen
Einbausystem über
einen Flashspeicher oder einen flüchtigen Speicher mit Batterieunterstützung verfügt. Außerdem ist
auch der RAM-Umfang beim typischen Einbausystem begrenzt.
-
Außerdem können Ausgaberessourcen, wie
sie für
einen Desktop-PC typisch sind, bei einem Einbausystem fehlen oder
schwerwiegend eingeschränkt
sein. Zum Beispiel kann das Display für ein typisches eingebautes
System einen kleinen LCD-Schirm
mit begrenzter Auflösung
aufweisen, der nur Graustufen oder eine eingegrenzte Anzahl von
Farben anzeigen kann. In bestimmten Umgebungen, in Kraftfahrzeugen,
kann das Display ein LCD-Schirm mit einer eingegrenzten Anzahl fester
Bildsymbole und Textgebieten sein. Das Display kann durch eine Einrichtung
für Computersprache
unterstützt
sein.
-
In ähnlicher Weise können Eingaberessourcen
eingeschränkt
sein oder zur Verwendung in Einbausystemen angepasst sein. Zum Beispiel
verfügen
viele Einbausysteme über
keine Maus oder eine andere Zeigevorrichtung. Außerdem verfügen einige Handgeräte über keine
körperliche
Tastatur. Derartige Einbaugeräte können ein
berührungsempfindliches
Display in Verbindung mit einer auf dem Display platzierten virtuellen Tastatur
verwenden. Zusätzlich
können
Einbaugeräte
Spracherkennung zur Eingabe verwenden.
-
Als Ergebnis des Obigen wurden spezialisierte
Betriebssysteme entwickelt, die in der Umgebung eingebauter Systeme
mit eingeschränkten
Ressourcen laufen können.
Ein Beispiel für
ein derartiges Betriebssystem ist das Betriebssystem Windows CETM von Microsoft Corporation.
-
In einem Einbausystem laufende Anwendungen
müssen
auch in der oben beschriebenen Umgebung mit eingeschränkten Ressourcen
laufen können.
In Einbausystemen mit Palm-size PCs sind diese Anwendungen typischerweise
spezialisierte Versionen von Anwendungen, wie sie auf dem größeren Geschwistern
von Palm-size PCs verfügbar
sind, wie Kalenderprogramme, Manager für persönliche Information, Rechner,
Wörterbücher und
dergleichen.
-
In anderen Umgebungen können die
im eingebetteten System laufenden Anwendungen spezialisierter sein.
Zum Beispiel können
bei einem AutoPC zu den Anwendungen solche gehören, die eine Schnittstelle
mit eine Audiosystem bilden, solche, die Positions- und Navigationsinformation
mitteilen und benutzen, sowie solche, die die Bedingungen und den
Zustand verschiedener anderer im Kraftfahrzeug vorhandener Systeme überwachen.
-
Um einer großen Anzahl verschiedener Anwendungserfordernisse
zu genügen,
versorgen Betriebssysteme typischerweise APIs (Anwendungsprogrammierungs-Schnittstellen)
mit einer großen
Vielzahl von Funktionen, die vielen verschiedenen Anwendun gen gemeinsam
sind. Jede Anwendung nutzt im Allgemeinen nur eine kleine Untergruppe
der verfügbaren
APIs. Das Bereitstellen einer großen Vielzahl von APIs befreit
Anwendungsentwickler davon, dass sie Code schreiben müssen, der
möglicherweise
für jede
Anwendung zu duplizieren wäre.
Jedoch ist in der Umgebung eines Einbausystems mit eingeschränkten Ressourcen
typischerweise ein viel eingeschränkter Platz von APIs verfügbar. Dies,
da im Allgemeinen unzureichender dauerhafte und nicht dauerhafter
Speicher verfügbar
ist, um eine große
Anzahl verschiedener APIs zu unterstützen. Demgemäß kann ein
Entwickler, der eine Anwendung für
ein Einbausystem schreibt, herausfinden, dass er Code entwickeln
muss, der normalerweise bei einem Betriebssystem für einen
Desktop- oder einen anderen größeren Computer
durch das Betriebssystem bereitgestellt wird.
-
US-5724506 offenbart eine API, die
die Integration mit einer tieferen Komponentenarchitekturschicht erleichtert
und es ermöglicht,
eine Dialogkomponente hinsichtlich anderer Komponenten vom Dialog-Typ
auszutauschen, zu erweitern oder zu modifizieren.
-
Im Ergebnis des Obigen besteht in
der Technik Bedarf an einem Betriebssystem, das in der Umgebung eines
eingebauten Systems mit eingeschränkten Ressourcen laufen kann.
Ein derartiges Betriebssystem sollte individualisierbar und an die
große
Vielfalt von Umgebungen anpassbar sein, die Systemdesigner für die Platzierung
von Einbausystemen auswählen
können,
wobei es Entwicklern ermöglicht
ist, alle diejenigen Komponenten und Module aufzunehmen, die für eine spezielle
Umgebung erforderlich sind. Außerdem
sollte das Betriebssystem APIs zu vom Betriebssystem versorgten
Komponenten beinhalten, um Anwendungsdesigner davor zu schützen, dass
sie üblicherweise
erforderliche Code duplizieren müssen.
Schließlich
sollte das Betriebssystem APIS für
Komponenten und Module bereitstellen, die den einzigartigen Eingabe-
und Ausgabeerfordernissen eines eingebauten Systems genügen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die oben genannten Mängel, Nachteile
und Probleme werden durch die Erfindung berücksichtigt, die durch Lesen
und Studieren der folgenden Beschreibung zu verstehen sein wird.
-
Es wird ein System angegeben, das
einen Satz von Anwendungsprogramm-Schnittstellen (APIs) für eine Anzahl
von Softwaremodulen und -komponenten für Umgebungen mit eingeschränkten Ressourcen
beinhaltet. Ein Beispiel einer Umgebung mit eingeschränkten Ressourcen
ist ein eingebautes System, wozu eine Vielzahl von Verbrauchergeräten und
spezialisierten Industriesteuerungen, gemeinsam mit Hand- oder Palm-size-PCs,
gehört.
-
Ein Gesichtspunkt des Systems ist
es, dass die Kombination von Komponenten und Modulen in einem Betriebssystem
für Umgebungen
mit eingeschränkten
Ressourcen individualisierbar und flexibel ist. Dies erlaubt es
einem Designer für
ein eingebautes System, nur diejenigen Komponenten und Module aufzunehmen, die
für eine
spezielle Umgebung erforderlich sind. Im Ergebnis wird durch nicht
erforderliche Komponenten nichts an knappem Speicher verbraucht,
was es ermöglicht,
mehr Speicheranwendungen und anderen Modulen und Komponenten zuzuweisen,
die im eingebauten System erforderlich sind.
-
Ein anderer Gesichtspunkt des Systems
besteht darin, dass APIs bereitgestellt werden, die den einzigartigen
Eingabe- und Ausgabeerfordernissen
eines typischen eingebauten Systems genügen. Zum Beispiel verfügen viele
Einbausysteme über
keine Tastatur oder Maus zur Eingabe. Das System stellt APIs für Komponenten
und Module bereit, die alternative Mechanis men bilden, die für Eingabe
sorgen. Zu diesen alternativen Mechanismen gehören APIs zu Handschrifterkennungsmaschinen,
die Striche auf einem berührungsempfindlichen
Schirm "lesen" sowie APIs zu Spracheingabekomponenten, die es einem
Benutzer ermöglichen,
gesprochene Befehle an das System auszugeben. Ferner stellt das
System APIs für
Komponenten bereit, die hörbare
Sprache für
solche Umgebungen ausgeben, in denen ein Anzeigemonitor nicht praxisgerecht
wäre.
-
Ein anderer Gesichtspunkt des Systems
besteht darin, dass die Handhabung von "Speichermangel"-Bedingungen
durch einen Designer für
ein eingebautes System individuell anpassbar ist. Dies ist bei Systemen
mit eingeschränkten
Ressourcen von Bedeutung, da es wahrscheinlicher ist, dass Speichermangelbedingungen
auftreten.
-
Ein weiterer Gesichtspunkt des Systems
ist es, dass eine API für
eine Positionsbestimmung- und Navigierkomponente bereitgestellt
wird. Dies ist für
Umgebungen eines eingebauten Systems von Nutzen, die mobil sind,
wie Automobile, Lastkraftwagen und Schiffe.
-
Die oben zusammengefassten APIs sowie
verschiedene andere APIs werden in den folgenden Abschnitten detailliert
beschrieben.
-
Durch die Erfindung werden Systeme,
Clients, Server, Verfahren und computerlesbare Medien verschiedenen
Inhaltsumfangs beschrieben. Zusätzlich
zu den in dieser Zusammenfassung beschriebenen Gesichtspunkten und
Vorteilen der Erfindung werden weitere Gesichtspunkte und Vorteile
der Erfindung unter Bezugnahme auf die Zeichnungen und durch Lesen
der folgenden detaillierten Beschreibung ersichtlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Diagramm der Hardware und Betriebsumgebung, in deren Zusammenhang
Ausführungsformen
der Erfindung realisiert werden können;
-
2 ist
ein Diagramm zum Veranschaulichen eines Überblicks über beispielhafte Ausführungsformen
eines Betriebssystems für
eine Umgebung mit begrenzten Ressourcen auf Systemebene; und
-
3 ist
ein Diagramm zum weiteren Veranschaulichen der Beziehung von Modulen,
Komponenten und APIs gemäß einer
Ausführungsform
der Erfindung.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
In der folgenden detaillierten Beschreibung
beispielhafter Ausführungsformen
der Erfindung wird auf die beigefügten Zeichnungen Bezug genommen,
die einen Teil derselben bilden und in denen diese durch Veranschaulichung
spezieller beispielhafter Ausführungsformen
dargelegt ist, gemäß denen
sie realisiert werden kann. Diese Ausführungsformen werden in ausreichendem
Detail dazu beschrieben, dass der Fachmann dazu in die Lage versetzt
ist, die Erfindung zu realisieren, und es ist zubeachten, dass andere
Ausführungsformen verwendet
werden können
und dass logische, mechanische, elektrische und andere Änderungen
vorgenommen werden können,
ohne vom Grundgedanken oder Schutzumfang der Erfindung abzuweichen.
Die folgende detaillierte Beschreibung ist daher nicht in beschränkendem
Sinn zu verwenden, und der Schutzumfang der Erfindung ist alleine
durch die beigefügten
Ansprüche
definiert.
-
Die detaillierte Beschreibung ist
in vier Abschnitte unter teilt. Im ersten Abschnitt werden die Hardware und
die Betriebsumgebung, mit denen Ausführungsformen der Erfindung
realisiert werden können,
beschrieben. Im zweiten Abschnitt wird ein Überblick über die Erfindung auf Systemebene
gegeben. Im dritten Abschnitt werden verschiedene APIs angegeben,
die es ermöglichen,
dass Anwendungen eine Schnittstelle mit verschiedenen Modulen und
Komponenten eines Betriebssystems bilden. Schließlich wird, im vierten Abschnitt,
eine Schlussfolgerung zur detaillierten Beschreibung angegeben.
-
Hardware und
Betriebsumgebung
-
Die 1 ist
ein Diagramm der Hardware und der Betriebsumgebung, in deren Zusammenhang
Ausführungsformen
der Erfindung realisiert werden können. Die Beschreibung zur 1 soll für eine kurze,
allgemeine Beschreibung geeigneter Computerhardware und einer geeigneten
Rechenumgebung, in deren Zusammenhang die Erfindung realisiert werden
kann, geben. Obwohl es nicht erforderlich ist, wird die Erfindung im
Allgemeinen Zusammenhang Computer-ausführbarer Befehle, wie Programmmodulen,
beschrieben, die durch einen Computer, wie einen PC, einen Hand-
oder einen Palm-size-Computer, oder ein eingebautes System wie einen
Computer in einem Verbrauchergerät
oder einer spezialisierten Industriesteuerung ausgeführt werden.
Im Allgemeinen enthalten Programmmodule Routinen, Programme, Objekte,
Komponenten, Datenstrukturen usw., die spezielle Aufgaben ausführen oder
spezielle abstrakte Datentypen implementieren.
-
Darüber hinaus erkennt der Fachmann,
dass die Erfindung mit anderen Computersystemkonfigurationen realisiert
werden kann, einschließlich
Handgeräten,
Mehrprozessorsystemen, Verbraucherelektronik auf Mikroprozessor-Basis
oder mit Programmierbarkeit, Netzwerk-PCs, Minicomputern, Großcomputern
und dergleichen. Die Erfindung kann auch in verteilten Re chenumgebungen
ausgeübt
werden, in denen Aufgaben durch Verarbeitungsvorrichtungen ausgeführt werden,
die über
ein Kommunikationsnetz verbunden sind. In einer verteilten Rechenumgebung
können
Programmmodule sowohl in lokalen als auch in entfernten Speichervorrichtungen
liegen.
-
Die beispielhafte Hardware und die
Betriebsumgebung der 1 zum
Realisieren der Erfindung beinhaltet eine Universalrechenvorrichtung
in Form eines Computers 20 mit einer Verarbeitungseinheit 21,
einem Systemspeicher 22 und einem Systembus 23,
der verschiedene Systemkomponenten einschließlich des Systemspeichers funktionsmäßig mit
der Verarbeitungseinheit 21 verbindet. Es kann nur eine
Verarbeitungseinheit 21 oder mehrere vorliegen, so dass
der Prozessor des Computers 20 eine einzelne zentrale Verarbeitungseinheit
(CPU) oder mehrere Verarbeitungseinheiten enthält, was allgemein als Parallelverarbeitungsumgebung bezeichnet
wird. Der Computer 20 kann ein herkömmlicher Computer, ein verteilter
Computer oder ein beliebiger anderer Computertyp sein; die Erfindung
ist diesbezüglich
nicht beschränkt.
-
Der Systembus 23 kann einer
von mehreren Typen von Busstrukturen sein, einschließlich eines Speicherbusses
oder eines Speichercontrollers, eines Peripheriebusses und einer
lokalen Busses unter Verwendung einer beliebigen einer Anzahl von
Busarchitekturen. Der Systemspeicher kann auch einfach als Speicher
bezeichnet werden, und er beinhaltet einen Festwertspeicher (ROM) 24 und
einen Direktzugriffsspeicher (RAM) 25. Im ROM 24 ist
ein grundlegendes Eingabe-/Ausgabesystem (BIOS) 26 gespeichert,
das die Grundroutinen enthält,
die dazu beitragen, Information zwischen Elementen innerhalb des
Computers 20 zu übertragen,
wie während
des Hochfahrens. Bei einer Ausführungsform
der Erfindung enthält
der Computer 20 ferner ein Festplatten-Laufwerk 27 zum
Lesen von einer nicht dargestellte Festplatte und zum Schreiben
auf diese, ein Magnetplatten-Laufwerk 28 zum Lesen von
einer austauschbaren Magnetplatte 29 und zum Schreiben
auf diese sowie ein optisches Plattenlaufwerk 30 zum Lesen
von einer austauschbaren optischen Platte 31 wie einer
CD-ROM oder anderen optischen Medien und zum Schreiben auf diese.
Bei alternativen Ausführungsformen
der Erfindung wird die durch das Festplatten-Laufwerk 27,
das Magnetplatten-Laufwerk 29 und das optische Plattenlaufwerk 30 bereitgestellte
Funktionalität
unter Verwendung von flüchtigem
oder nichtflüchtigem RAM
emuliert, um Energie zu sparen und die Größe des Systems zu verringern.
Bei diesen alternativen Ausführungsformen
kann der RAM im Computersystem fixiert sein, oder es kann eine austauschbare
RAM-Vorrichtung sein, wie eine Kompakt-Flash-Speicherkarte.
-
Bei einer Ausführungsform der Erfindung sind
das Festplatten-Laufwerk 27, das Magnetplatten-Laufwerk 28 und
das optische Plattenlaufwerk 30 durch eine Schnittstelle 32 für das Festplatten-Laufwerk,
eine Schnittstelle 33 für
das Magnetplatten-Laufwerk bzw. eine Schnittstelle 34 für das optische
Plattenlaufwerk mit dem Systembus 23 verbunden. Die Laufwerke
und ihre zugehörigen
Computer-lesbaren Medien sorgen für nichtflüchtigen Speicher Computer-lesbarer
Anweisungen, Datenstrukturen, Programmmodule und andere Daten für den Computer 20.
Es ist vom Fachmann zu beachten, dass in der beispielhaften Betriebsumgebung jeder
beliebige Typ an Computerlesbaren Medien verwendet werden kann,
die durch einen Computer abrufbare Daten speichern können, wie
Magnetkassetten, Flashspeicherkarten, digitale Videoplatten, Bernoulli-Kassetten, Direktzugriffsspeicher
(RAMs), Festwertspeicher (ROMs) und dergleichen.
-
Auf der Festplatte, der Magnetplatte 29,
der optischen Platte 31, dem ROM 24 oder dem RAM 25 kann eine
Anzahl von Programmmodulen gespeichert sein, einschließlich eines
Be triebssystems 35, eines oder mehrerer Anwendungsprogramme 36,
anderer Programmmodule 37 und Programmdaten 38.
Ein Benutzer kann Befehle und Information über Eingabevorrichtungen wie
eine Tastatur 40 und eine Zeigevorrichtunge 42 in
den PC 20 eingeben. Andere Eingabevorrichtungen (nicht dargestellt)
können
ein Mikrofon, ein Joystick, ein Gamepad, eine Satellitenschüssel, ein
Scanner, ein berührungsempfindliches
Tablett oder dergleichen sein. Diese und andere Eingabevorrichtungen
sind häufig über eine
Schnittstelle 46 mit seriellem Port, die mit dem Systembus
verbunden ist, mit der Verarbeitungseinheit 21 verbunden,
jedoch kann eine Verbindung durch andere Schnittstellen vorhanden
sein, wie einen Parallelport, einen Gameport oder einen universal
serial bus (USB). Außerdem
kann die Eingabe in das System durch ein Mikrofon erfolgen, um eine
Audioeingabe zu empfangen.
-
Mit dem Systembus 23 ist über eine
Schnittstelle, wie einen Videoadapter 48, auch ein Monitor 47 oder ein
anderer Typ einer Anzeigevorrichtung verbunden. Bei einer Ausführungsform
der Erfindung verfügt
der Monitor über
ein Flüssigkristalldisplay
(LCD). Zusätzlich
zum Monitor beinhalten Computer typischerweise andere Peripherie-Ausgabevorrichtungen
(nicht dargestellt), wie Lautsprecher und Drucker.
-
Der Computer 20 kann in
einer Netzwerkumgebung unter Verwendung logischer Verbindungen zu
einem oder mehreren entfernten Computers, wie einem entfernten Computer 49,
betrieben werden. Diese logischen Verbindungen werden durch eine
Kommunikationsvorrichtung erzielt, die mit dem Computer 20 oder
einem Teil desselben verbunden ist; die Erfindung ist nicht auf
einen speziellen Typ einer Kommunikationsvorrichtung beschränkt. Der
Ferncomputer 49 kann ein anderer Computer, ein Server,
ein Router, ein Netzwerk-PC, ein Client, ein Peergerät oder ein
anderer gemeinsamer Netzknoten sein, und typischerweise enthält er viele
oder alle der oben in Zusammen hang mit dem Computer 20 beschriebenen
Elemente, obwohl in der 1 nur
ein Speicher 50 dargestellt ist. Zu den in der 1 dargestellten logischen
Verbindungen gehören ein
Nahverkehrsnetz (LAN) 51 und ein Weitverkehrsnetz (WAN) 52.
Derartige Netzumgebungen sind in Büros, Unternehmensweiten Computernetzwerken,
Intranetzen und dem Internet allgemein üblich. Wenn der Computer 20 innerhalb
einer LAN-Netzwerkumgebung verwendet wird, ist er über eine
Netzwerk-Schnittstelle oder einen Adapter 53, der ein Typ
einer Kommunikationsvorrichtung ist, mit dem lokalen Netzwerk 51 verbunden. Wenn
der Computer 20 in einer WAN-Netzwerkumgebung verwendet
wird, beinhaltet er typischerweise ein Modem 54, eine Art
von Kommunikationsvorrichtung, oder irgendeine andere Art von Kommunikationsvorrichtung,
um für
Kommunikationsvorgänge über das
Weitbereichsnetz 52, wie das Internet, zu sorgen. Das Modem 54,
das intern oder extern sein kann, ist über die Seriell-Port-Schnittstelle 46 mit
dem Systembus 23 verbunden. Innerhalb einer Netzwerkumgebung
können
Programmmodule, die relativ zum PC 20, oder Teilen desselben, dargestellt
sind, im entfernten Speicher untergebracht sein. Es ist zu beachter,
dass die dargestellten Netzwerkverbindungen beispielhaft sind und
andere Maßnahmen
und Kommunikationsvorrichtungen dazu verwendet werden können, für eine Kommunikationsstrecke
zwischen den Computern zu sorgen.
-
Es wurde die Hardware- und Betriebsumgebung
beschrieben, in deren Zusammenhang Ausführungsformen der Erfindung
realisiert werden können.
Der Computer, der in Verbindung mit den Ausführungsformen der Erfindung
realisiert werdem können,
kann ein, herkömmlicher
Computer, ein Hand- oder ein Palmsize-Computer, ein Computer in
einem eingebauten System, ein verteilter Computer oder irgendeine
andere Art von Computer sein; die Erfindung ist diesbezüglich nicht
beschränkt.
Ein derartiger Computer beinhaltet typischerweise eine oder mehrere
Verarbeitungseinheiten als Prozessor sowie ein compu terlesbares
Medium wie einen Speicher. Der Computer kann auch eine Kommunikationsvorrichtung
wie einen Netzwerkadapter oder ein Modem enthalten, so dass er dazu
in der Lage ist, kommunizierend mit anderen Computern verbunden
zu werden.
-
Überblick
auf Systemebene
-
Unter Bezugnahme auf die 2 und 3 wird ein Überblick über den Betrieb einer beispielhaften
Ausführungsform
der Erfindung auf Systemebene betrieben. Die Konzepte der Erfindung
werden gemäß Betrieb in
einer Multiverarbeitungs-Multithread-Betriebsumgebung auf einem
Computer, wie dem Computer 20 in der 1, beschrieben. Die beispielhafte Betriebsumgebung
beinhaltet das, was in der Technik als Betriebssystem bekannt ist.
In dieser Umgebung stehen eine oder mehrere Anwendungen, wie eine
Anwendung 226, über eine
Schnittstelle mit verschiedenen Modulen und Komponenten des Betriebssystems
in Verbindung. Außerdem
stehen die verschiedene Module und Komponenten des Betriebssystems über Schnittstellen
miteinander in Verbindung. Schließlich stehen die Module, Komponenten
und Anwendungen mit der im Computer vorhandenen Hardware 202 über das,
was in der Technik als Gerätetreibermodul
bekannt ist, schnittstellenmäßig in Verbindung,
sowie über
eine OEM(Original Equipment Manufacturer)-Adaptionsschicht 208.
Bei einer Ausführungsform
der Erfindung existieren zwei Arten von Gerätetreibern, nämlich eingebaute
Treiber 206 und installierbare Treiber 204. Die
verschiedenen Module werden nun mit weiteren Details beschrieben.
-
Die Kernsystem-Schnittstelle 220 ist
das Modul, über
das Anwendungen auf das Betriebssystem zugreifen können. Die
Kernsystem-Schnittstelle 220 beinhaltet Funktionen zum Übertragen
von API-Aufrufen an den geeigneten Serverprozess des Betriebssystems.
-
Zusätzlich dazu, dass die Kernsystem-Schnittstelle 220 die
ausgewählten
APIs enthält
oder exportiert, beinhaltet sie Komponenten, um das Folgende zu
unterstützen:
-
- – Lokalisierung
- – Zuordnung
von lokalem Heap und Speicher
- – Seriell-Port-Gerätetreiber-Thunks
- – Telefonie-API
(TAPI)
-
Das Shellmodul 222 verwaltet
die Benutzer-Schnittstelle und handhabt Aufgaben wie das Starten
von Softwareanwendungen. Bei einer Ausführungsform der Erfindung sorgt
das Betriebssystem für
Shellkomponenten, die es einem Designer für ein eingebautes System ermöglichen,
eine individualisierte Shell 222 zu entwickeln, die den
Erfordernissen der Zielplattform genügt. In diesen Komponenten sind
Folgende enthalten:
-
- – Eine
Steuerkonsole mit Applets, wie sie für Benutzer von Desktop-Windows
vertraut ist. Es sind die folgenden Applets enthalten: Kommunikationsvorgänge; Display;
Tastatur; Netzwerk; Besitzer; Passwort; Energie; regionale Einstellungen,
Programme entfernen; Einstellungen von Zeigevorrichtungen (Stift);
Töne und
Lautstärke.
- – Eine
Notifizierungs-API, mit der eine Anwendung ihren Namen und ein Ereignis
im System registrieren kann. Wenn ein Ereignis auftritt, startet
der Kernel automatisch die benannte Anwendung. Die API erlaubt es
auch einer Anwendung, ein spezielles Datum und eine Zeit, zu der
die Anwendung starten sollte, zu registrieren.
- – Gemeinsame
Steuerung und gemeinsame Dialoge, die konzipiert sind, dass sie
den Benutzer mit deutlicher, einfacher und bedeutungsvoller Information
versehen, und eine Maßnahme,
um Eingaben in das System und Anwendungen nach Bedarf zu liefern.
- – Ein
Befehlszeilenprozessor (d. h. eine Konsolenanwendung), die einen
Satz von standardmäßigen Eingabe- und
Ausgabe-API-Aufrufen
unterstützt.
- – Verbindungskomponenten
(z. B. zum Unterstützen
entfernter Anwendungsprogrammier-Aufrufe) zwischen der Entwicklungs-Workstation und der
Zielplattform des eingebauten Systems.
-
In Verbindung mit einem Desktop beinhaltet
das Shellmodul 222 auch eine Desktop- und Taskmanager-Komponente,
die wahlweise enthalten oder ausgetauscht sein kann. Die Taskmanager-Komponente
enthält
die folgenden Grundfunktionen:
-
- – eine
Liste über
aktive Tasks aller aktuell laufenden Anwendungen auf oberster Ebene;
- – eine
Start-Taste, die es einem Benutzer erlaubt, eine Softwareanwendung
zu starten;
- – eine
Wechseln-auf-Taste, die es einem Benutzer erlaubt, auf eine im Auflistungskästchen für aktive
Tasks ausgewählte
Anmeldung umzuschalten.
- – Einer
Task-Beenden-Taste, die es einem Benutzer ermöglicht, eine im Auflistungskästchen für aktive
Tasks ausgewählte
Anwendung, zu beenden.
- – Eine
Verlassen-Taste, die es einem Benutzer erlaubt, das Tastmanager-Fenster
zu schließen.
- – Überwachung
des Spannungspegels der Hauptbatterie und einer Reservebatterie
(für batteriebetriebene Targetplattformen)
und Anzeigen eines geeigneten Warndialogkästchens.
- – Überwachen
der Nutzung des Systemspeichers im System und Senden einer Meldung
an alle Fenster auf oberster Ebene, wenn der verfügbare Systemspeicher
unter einen speziellen Schwellenwert fällt. Dies erlaubt es, dass
Anwendungen dadurch auf die Meldung reagieren, dass sie ihren Speichergebrauch
so stark wie möglich
reduzieren.
-
Das Modul 224 für Add-on-Techniken
erlaubt es einem Entwickler für
ein eingebautes System, wahlweise Komponenten wie OLE/COM-Automatisierung,
die die Entwicklung von Anwendungen auf ActiveX-Basis unterstützt, eine
Shell für
einen aktiven Desktop und einen Internetbrowser einzuschließen. Andere
einschließbare
Komponenten sind Laufzeit-Visual-Basic und Java-Script sowie eine
Untergruppe der Microsoft Foundation Classes (MFC). Eine weitere
wahlweise Komponente, die vorhanden sein kann, ist eine Handschrifterkennungsmaschine
mit zugehörigen
APIs. Bei einer Ausführungsform
der Erfindung stehen Handschriftanwendungen über eine Komponente, die für eine Software-Schnittstelle
zu einem berührungsempfindlichen
Eingabegerät
sorgt, schnittstellenmäßig mit
einem solchen in Verbindung.
-
Das Kernelmodul 214 repräsentiert
das grundlegende Funktionsvermögen
des Betriebssystems, wie es auf allen Plattformen vorhanden sein
muss. Das Kernelmodul enthält
Speicherverwaltung, Prozessverwaltung, Ausnahmenhandling und Unterstützung für Multitasking
und Multithreading.
-
Bei einer Ausführungsform der Erfindung ist
der Kernel 214 speziell für kleine, schnelle, eingebaute Geräte konzipiert.
Bei dieser Ausführungsform
unterstütz
der Kernel einen einzelnen 4-GB-Adressenraum (einen Bereich virtueller
Adressen von 2 GB und einen Bereich physikalischer Adressen von
2 GB). Bei einer Ausführungsform
der Erfindung is dieser Adressenraum von 4 GB in 33 "Schlitze" mit
jeweils einer Größe von 32 MB
unterteilt. Der Kernel schützt
jeden Prozess durch Zuweisen eines eindeutigen, offenen Schlitzes
im Speicher zu jedem Prozess. Die Erfindung ist jedoch auf keinen
speziellen Raum oder eine Schlitzgröße physikalischer oder virtueller
Adressen beschränkt,
und es können
andere Bemessungen gewählt
werden, wie es der Fachmann erkennt.
-
Der Kernel 214 schützt Anwendungen
durch Erzeugen einer Ausnahme vor dem Zugriff auf Speicher außerhalb
des zugeordneten Schlitzes. Anwendungen können unter Verwendung der Try- und der Except-Funktionen
innerhalb von Windows CE auf derartige Ausnahmen prüfen und
sie handhaben. Bei einer Ausführungsform
der Erfindung ist das System auf 32 Prozesse beschränkt, jedoch
ist die Anzahl der in einem Prozess laufenden Threads nur durch
den Umfang des verfügbaren
Speichers begrenzt. Der Fachmann erkennt, dass andere Wert für die Maximalanzahl
von Prozessen gewählt
werden können.
-
Das Dateisystemmodul 218 enthält diejenigen
Funktionen, die den Dauerspeicher in der Zielplattform des eingebauten
Systems unterstützen.
Dieser Speicher wird als "Objektspeicher" bezeichnet, und zu ihm
gehören
drei Arten des Speicherns von Benutzerdaten:
-
- – das
Dateisystem. Das Dateisystem unterstützt typischerweise übliche Dateimanipulationsfunktionen,
wie Funktionen zum Erzeugen von Dateien und Verzeichnissen, zum
Lesen und Schreiben von Dateien und zum Abrufen von Datei- und Verzeichnisinformation.
- – Die
Registrierung. Das Registriersystem ist den Registrierungen bei
den Betriebssystemen Windows 95 und Windows NT ähnlich. Die Registrierung für alle Anwendungen,
einschließlich
der im ROM gebündelten
Anwendungen, ist im Objektspeicher gespeichert.
- – Die
Datenbank-API. Das Betriebssystem verfügt, bei einer Ausführungsform
der Erfindung, über
seinen eigenen strukturierten Speicher, um eine Alternative für das Zugänglichmachen
von Benutzer- und Anwendungsdaten in Dateien oder der Registrierung
zu bieten. Zum Beispiel ist eine Datenbank von Nutzen, um Rohdaten
zu speichern, die eine Anwendung verarbeitet, bevor sie dem Endbenutzer
angezeigt werden. Bei Anwendungen in Hand-PCs wird typischerweise
Zeitplan- und Kontaktinformation in Datenbanken gespeichert.
-
Bei einer Ausführungsform der Erfindung ist
das vom Dateisystemmodul 218 verwaltete Dateisystem ein
Transaktionssys tem zum Verländern
der Möglichkeit,
dass Daten durch einen kritischen Fehler, wie einen Spannungsverlust,
verlorengehen. Außerdem
realisiert das Dateisystemmodul 218, bei einer Ausführungsform
der Erfindung, ein Schema (mit Transaktion) des "Spiegels", um Dateisystemoperationen
(ohne Transaktion) zu spiegeln oder zu verfolgen. Der Zweck dieser
Implementierung besteht darin, in der Lage zu sein, ein Dateisystemvolumen
dann wiederherzustellen, wenn die Spannung verlorengeht, während eine
kritische Abfolge von Operationen am Volumen ausgeführt wird.
-
Bei einer Ausführungsform der Erfindung kombiniert
die Betriebsumgebung die Win32-User- und GDI(Graphics Device Interface)-Bibliothek
in ein GWES(Graphics, Windowing, and Events Subsystem)-Modul 212.
Der Ereignismanager und der Fenstermanager sind dem Win32-User analog,
und die Win32-GDI
ist durch eine kleinere GDI ersetzt, die für eingebaute Systeme besser
geeignet ist. Das GWES-Modul 212 beinhaltet Multiplattform-GDI-Komponenten
(zum Unterstützen
eines zugeordneten Anzeigetreibers), die Farb- und Grauskalenanzeige,
Palettenverwaltung, TrueType-Schriftarten, Raster-Schriftarten,
Kursoren und Druckergerät-Kontextinhalte
(DCs) unterstützen.
-
Das GWES-Modul 212 unterstützt auch
eine Fensterverwaltungskomponente, die für API-Funktionen sorgt, die
für die
kleineren Displaygrößen zugeschnitten
sind, die für
eingebettete Betriebssysteme typisch sind.
-
Die Betriebsumgebung der verschiedenen
Ausführungsformen
der Erfindung ist Ereignis-gesteuert. Das GWES-Modul beinhaltet
Komponenten zum Handhaben von Ereignissen, die bei einer Ausführungsform der
Erfindung als Meldungen implementiert sind.
-
Das Kommunikationsmodul 216 beinhaltet
eine Anzahl von Wahlmöglichkeiten
von Kommunikationskomponenten zum Unterstützen von Kommunikationshardware.
Dazu gehören
serielle, parallele und Netzwerk leitungsgebunden und drahtlos)-Kommunikationsvorgänge. Das
Kommunikationsmodul 216 beinhaltet die folgenden auswählbaren
Kommunikationsmerkmale:
-
- – Unterstützung für serielle
I/O.
- – Netzwerkunterstützung einschließlich:
- – NDIS
4.0 für
Nahbereichsnetze
- – PPP
und SLIP für
serielle Verbindungen und Modem-Netzwerkvorgänge
- – Client-seitiger
Fernzugriffsserver (RAS)
- – Internetprotokolle
- – Telefonie-API
(TAPI)
- – Unterstützung von
PC-Karten
- – Unterstützung von
Infrarot-Sendeempfängern
-
Bei einer Ausführungsform der Erfindung muss
ein Designer für
eingebaute Systeme die OEM-Adaptionsschicht 208 entwickeln,
um das plattformspezifische Kernelmodul 214 zu erzeugen.
Das OEM-Adaptionsschicht (OAL)-Modul 208 erlaubt es einem
Entwickler eines eingebauten Systems, das Betriebssystem für eine spezielle
Zielplattform dadurch anzupassen, dass er eine dünne Codeschicht erzeugt, die
sich zwischen dem Kernelmodul 214 und der Hardware 202 der
Zielplattform befindet. Das OAL-Modul 208 ist für eine spezielle CPU
und eine spezielle Zielplattform spezifisch.
-
Das OAL-Modul 208 beinhaltet
Schnittstellen wie die Folgenden:
-
- – Interrupt-Dienstroutine(ISR)-Handler
zum Unterstützen
von Gerätetreibern
- – Echtzeituhr
(RTC)
- – Intervalltimer
(für den
Terminplanerbetrieb verwendet)
-
Bei einer Ausführungsform müssen die
RTC und der Intervalltimer nicht angepasst werden, da sie in der
CPU vorhanden sind. In diesem Fall sind die Schnittstellen eher
im Kernelmodul 214 als in der OAL 208 implementiert.
-
Zusätzlich zur Verwaltung von Funktionen
wie dem Timing und der Spannungsversorgung besteht der Hauptzweck
der OAL darin, die Hardware 202 der Zielplattform dem Kernelmodul 214 zugänglich zu
machen. Das heißt,
dass jeder Hardwareinterrupt-Anforderungsleitung (IRQ) eine Interrupt-Dienstroutine
(ISR) zugeordnet ist. Wenn Interrupts aktiviert werden und ein Interrupt
auftritt, ruft der Kernel die registrierte ISR für diesen Interrupt auf.
-
Eingebaute Treiber 206 sind
Gerätetreiber,
die mit dem GWES-Modul 212 verbunden
werden, wenn das Betriebssystem aufgebaut wird. Beispiele derartiger
Treiber sind der Hinweis-LED-Treiber
oder der Batterietreiber. Diese Treiber werden als "eingebaute Gerätetreiber"
bezeichnet, da sie letztendlich Teil desselben ausführbaren
Bilds wie der Rest des Betriebssystems bilden. Eingebaute Gerätetreiber
verfügen
jeweils über eine
gebräuchliche
Schnittstelle zum Rest des Betriebssystems.
-
Das Gerätemanagermodul 210 ist
ein Modul, das installierbare Gerätetreiber handhabt. Bei einer
Ausführungsform
der Erfindung führt
der Gerätemanager 210 die
folgenden Aufgaben aus:
-
- – er
initialisiert das Laden eines Treibers beim Starten des Systems
oder dann, wenn er einen Hinweis empfängt, dass ein Peripheriegerät eines
Dritten an der Zielplattform angeschlossen wurde. Wenn z. B. eine PC-Karte
eingeführt
wird, versucht der Gerätemanager 210,
einen Gerätetreiber
für diese
PC-Karte zu lokalisieren und zu laden.
- – Er
registriert spezielle Dateisystemeinträge betreffend den Kernel, die
die von Anwendungen verwendeten Stream-I/O- Schnittstellenfunktionen auf die Implementierung
dieser Funktionen in einem installierbaren Gerätetreiber abbilden.
- – Er
findet den geeigneten Gerätetreiber
durch Erhalten einer Plug-and-Play-ID oder durch Aufrufen einer
Erkennungsroutine zum Auffinden eines Treibers, der das Gerät handhaben
kann.
- – Er
lädt und
verfolgt Treiber durch Lesen und Schreiben von Registrierungswerten.
- – Er
gibt Treiber frei, wenn ihre Geräte
nicht mehr benötigt
werden. Zum Beispiel gibt der Gerätemanager 210 einen
PC-Karten-Gerätetreiber
frei, wenn die Karte entfernt wird.
-
Bei einer Ausführungsform der Erfindung existieren
installierbare Gerätetreiber 204 als
eigenständige DLLs
(Dynamic Link Library), die durch den Gerätemanager 210 verwaltet
werden. Die installierbaren Gerätetreiber 204 unterstützen einige
Typen nativer Geräte,
jegliche Peripheriegeräte,
die mit der Zielplattform verbunden werden können, und jegliche Universalgeräte, die
zur Plattform hinzugefügt
werden. Dies deckt Geräte wie
Modems, Drucker, Digitalkameras, PC-Karten (als PCMCIA-Karten bekannt)
und anderes ab.
-
Bei einer Ausführungsform der Erfindung nutzen
installierbare Gerätetreiber 204 eine
gemeinsame Schnittstelle, durch ihre Dienste für Anwendungen zugänglich werden.
Diese Schnittstelle ist Stream-I/O-Schnittstelle.
-
Unter Bezugnahme auf die 3 wird eine Beschreibung
für die
Beziehungen zwischen Komponenten, Modulen und den APIs, die sie
für Anwendungen
zugänglich
machen, angegeben. Ein Modul 308 ist ein Hauptfunktionsblock
einer Betriebsumgebung, wie das Betriebssystem 200 in der 2. Das Modul 308 macht
eine API 302 für
Anwendungen wie eine Anwendung 226 in der 2 zugänglich, wodurch die Anwendung
eine Schnittstelle zu durch das Modul 308 implementierten
Metho den und Funktionen bilden und sie aufrufen kann.
-
Die Module können wahlweise eine oder mehrere
Komponenten 306 beinhalten. Die Komponenten 306 sind
Gruppen von Funktionen und Daten, die für Fähigkeiten in kleinerem Umfang
als die Module 308 sorgen. Wie ein Modul 308,
so macht auch eine Komponente 306 eine API 304 zugänglich,
die andere Anwendungen, Module und Komponenten dazu verwenden können, Methoden
oder Funktionen aufzurufen, die durch die Komponente 306 implementiert
werden.
-
Wie es aus der obigen Erörterung
erkennbar ist, sorgen die verschiedenen Ausführungsformen der Erfindung
für Vorteile
gegenüber
bekannten Systemen. Ein Nutzen besteht darin, dass das Betriebssystem
modular ist. Dies erlaubt es einem Designer eines eingebauten Systems,
eine Betriebsumgebung zu erzeugen, die für ihre einzigartige Hardwareentwicklungs-Plattform und -anwendung
optimiert ist. Der Entwickler kann variierende Kombinationen der
oben beschriebenen Module und Komponenten für den Einbau in die Betriebsumgebung
auswählen.
Zum Beispiel kann ein Entwickler ein eingebettetes Betriebssystem
aufbauen, das den Kernel und eine ausgewählte Gruppe von Kommunikationsmaßnähmen enthält, jedoch
keine graphische Benutzer-Schnittstelle bereitstellt. So ist die
Erfindung auf keine spezielle Kombination von Modulen und Komponenten
beschränkt.
-
Die verschiedenen Ausführungsformen
der Erfindung sorgen auch für
einen Mechanismus für
Entwickler zum Schonen der begrenzten Speicherressourcen eines typischen
eingebauten Systems, da nur diejenigen Module und Komponenten, die über APIs
verfügen,
die für
die Betriebsumgebung erforderlich sind, eingebaut werden müssen.
-
APIs in einem
System mit engeschränkten
Ressourcen
-
Der vorige Abschnitt gab einen Überblick über Module
und Komponenten in einem typischen Betriebssystem für ein System
mit eingeschränkten
Ressourcen auf Systemebene. Dieser Abschnitt gibt, gemeinsam mit
den folgenden Unterabschnitten, neuartige APIs und Datenstrukturen
in Zusammenhang mit den oben beschriebenen Modulen und Komponenten
an. Die unten detailliert angegebenen APIs werden hinsichtlich der Programmiersprache
C/C++ beschrieben. Jedoch ist die Erfindung nicht hierauf beschränkt, und
die APIs können
in jeder beliebigen Programmiersprache definiert und implementiert
werden, wie es der Fachmann erkennt. Ferner sollen die für die API-Funktionen
und -parameter vergebenen Namen für ihre Funktion beschreibend
sein, jedoch könnten
den Funktionen und Parametern andere Namen oder Kennungen zugeordnet
werden, wie es für
den Fachmann ersichtlich ist. Es werden sechs Sätze von APIs und Datenstrukturen
angegeben: Handschrifterkennungs-APIs, Positionsbestimmungs- und
Navigations-APIs, sprachbezogene APIs, Speichermangel-APIs, Datenbank-APIs
und AktiveSync-Datenstrukturen.
-
1. Handschrifterkennungs-APIs
-
Im Add-On-Technologie-Modul 224 (2) ist eine Handschrifterkennungskomponente
verfügbar.
Die Handschrifterkennungskomponente implementiert eine Handschrifterkennungsmaschine.
Bei einer Ausführungsform
der Erfindung empfängt
die Maschine "Tinte" in Form mehrerer Striche auf einem berührungsempfindlichen
Schirm. Die Striche werden dann von Anwendungen unter Verwendung
einer Anzahl von APIs an die Maschine geliefert. Dann versucht die
Maschine, die Striche als alphanumerische Zeichen zu interpretieren.
Die interpretierten Zeichen werden über eine API an die Anwendung
zurückgeliefert.
Bei einer Ausführungsform
der Erfindung wer den die Zeichen als Zeichen in der englischen Sprache
interpretiert. Bei alternativen Ausführungsformen der Erfindung
werden die Zeichen in anderen Sprachen interpretiert.
-
Die Handschrifterkennungskomponente
ist in eingebauten Systemen von besonderem Nutzen, die über ein
berührungsempfindliches
Display aber keine Tastatur verfügen.
Anwendungen, die eine alphanumerische Eingabe benötigen, können die
von der Maschine empfangenen Zeichen so verwenden, als wären sie mit
eine Tastatur eingetippt worden.
-
Weitere Einzelheiten von APIs, die
durch Anwendungen verwendet werden, die eine Schnittstelle zu einer
Handschrifterkennungsmaschine bilden, sind im Unterabschnitt mit
dem Titel "Detaillierte Beschreibung einer Handschrifterkennungs-API" angegeben.
-
2. Positionsbestimmungs-
und Navigations-APIs und Datenstrukturen
-
Im Add-on-Technologien-Modul ist
eine Positionsbestimmungs- und
Navigationskomponente verfügbar.
Die Positionsbestimmungs- und Navigationskomponente erlaubt es einer
Anwendung, eine Schnittstelle zu einer Positionsbestimmungsvorrichtung
(die auch als Positionsbestimmungs- und Navigiervorrichtung bezeichnet
wird) wie einem Apollo-GPS-System zu bilden. Eine derartige Schnittstelle
ist dann von Nutzen, wenn das eingebaute System in einem beweglichen
Gegenstand wie einem Automobil oder einem LKW positioniert ist.
Bei einer Ausführungsform
der Erfindung ist das eingebaute System der Auto-PC.
-
Weitere Einzelheiten zu APIs für das Positionsbestimmungs- und Navigationsmodul
befinden sich um Unterabschnitt mit dem Titel "Detaillierte Beschreibung
einer Postionsbestimmungs- und
Navigations-API". Auch finden sich weitere Einzelheiten zu Datenstrukturen,
wie sie vom Positionsbestimmungs- und Navigationsmodul und zugehörigen APIs
verwendet werden, im Unterabschnitt mit dem Titel "Detaillierte
Beschreibung von Datenstrukturen für ein Positionsbestimmungs-
und Navigationssystem".
-
3. Sprachbezogene
APIs
-
Das Add-On-Technologien-Modul enthält mehrere
sprachbezogene Komponenten, die APIs für Anwendungsnutzung zugänglich machen.
Diese Komponenten beinhalten eine Text-in-Sprache-Komponente, eine
Sprache-in-Text-Komponente und eine Sprachbefehlskomponente. Im
Allgemeinen sind diese Komponenten für Umgebungen vorgesehen, in
denen Eingabe- und Ausgabevorrichtungen eingeschränkt sind
und wenn die Wechselwirkung eines Benutzers mit dem eingebauten
System über
Sprache erfolgt. Ein Beispiel für eine
derartige Umgebung ist der AutoPC. Da der Fahrer beim Bedienen des
Automobils die Hände
benutzen muss, erfolgte die Wechselwirkung mit dem AutoPC über eine
Sprach-Schnittstelle, wobei Eingabebefehle vom Benutzer gesprochen
werden und die Ausgabe des PC von Text in Sprache gewandelt wird.
-
Weitere Einzelheiten zu Text-in-Sprache-APIs
sind im Unterabschnitt mit dem Titel "Detaillierte Beschreibung
einer Sprache-in-Text-API" angegeben. Weitere Einzelheiten zu den
Sprachbefehls- und Sprache-in-Text-APIs sind in den Unterabschnitten
mit den Titeln "Detaillierte Beschreibung einer Sprachbefehls-API",
"Detaillierte Beschreibung von Datenstrukturen für eine Sprachbefehls-API" und
"Detaillierte Beschreibung einer Sprachbefehls-API für einen
AutoPC" angegeben.
-
4. Speichermangel-API
-
Die Speichermangel-API ist eine Komponente
des GWES-Moduls. Diese Komponente erlaubt es einem Entwickler für ein eingebautes
System, die Vorgabeaktion zu ersetzen, wie sie auftritt, wenn das
Betriebssystem erkennt, dass dem System der verfügbare Speicher ausgeht, in
dem Anwendungen laufen oder Daten platziert werden sollen.
-
Die Speichermangelkomponente ist
für ein
Betriebssystem wesentlich, das für
Umgebungen mit begrenzten Ressourcen vorgesehen ist, da diese Bedingung
wahrscheinlicher in einem eingebauten System als einem Desktopsystem
auftritt. Die zugänglich
gemachte API sorgt für
eine standardisierte Weise für
das Betriebssystem, individualisierte Software aufzurufen, die den
speziellen Erfordernissen eines Entwicklers für ein eingebautes System genügt.
-
Weitere Einzelheiten zur Speichermangel-API
sind im Unterabschnitt mit dem Titel "Detaillierte Beschreibung
einer Speichermangel-API" angegeben.
-
5. Datenbank-API
-
Wie es oben unter Bezugnahme auf
die 2 erörtert wurde,
kann das Dateisystemmodul 218 wahlweise eine Datenbankkomponente
enthalten. Die Datenbankkomponente erlaubt es Anwendungen, Datenbanken
als Dateisystemobjekte zu erzeugen und aufrechtzuerhalten. Anwendungen
führen
Anrufe auf verschiedene API-Funktionen aus, die die Datenbank aufrechterhalten.
Zu diesen Funktionen gehören
solche, die neue Datenbanken erzeugen, eine vorhandene Datenbank öffnen, Datenbanken
löschen,
nach speziellen Datensätzen
in Datenbanken suchen, Datensätze
aus Datenbanken lesen und Datensätze
in Datenbanken schreiben. Außerdem
beinhaltet die Datenbank-API Funktionen, die durch eine Liste von
Datenbanken von vorgegebe nem Typ navigieren. Weitere Einzelheiten
hinsichtlich der Datenbank-API sind im Unterabschnitt mit dem Titel
"Detaillierte Beschreibung einer Datenbank-API" angegeben.
-
6. ActiveSync-Datenstrukturen
-
ActiveSync ist eine Komponente, die
im Add-On-Technologien-Modul
verfügbar
ist. Die ActiveSync-Komponente sorgt für einen Dienst, der es Anwendungen
erlaubt, zwei Objekte zu vergleichen, um zu ermitteln, ob eines
der Objekte aktualisiert werden muss, damit die Objekte "synchronisiert",
d. h, gleich sind. Typischerweise sind die Objekte Dateisystemobjekte,
die Anwendungsdaten enthalten. ActiveSync ist dann von besonderem
Nutzen, wenn es bei Hand-PCs angewandt wird. Dies, da der Benutzer
häufig
Daten aktualisiert, die in einem Dateisystemobjekt im Hand-PC aufrechterhalten
werden, und er dann eine Datei in einem Desktop-PC aktualisieren
muss, damit die zwei Dateien dieselben Daten enthalten. Zum Beispiel
sorgen Hand-PCs typischerweise für
eine Anwendung wie einen Manager für persönliche Informationen, der eine
Informationsdatenbank, einschließlich Telefonnummern, aufrechterhält. Wenn
ein Benutzer eine ähnliche
Datenbank von Telefonnummern sowohl im Hand-PC als auch im Destop-PC
aufrechterhält,
ist es wünschenswert, dass
die zwei Telefonverzeichnisse Aktualisierungen widerspiegeln, wie
sie entweder in der Datenbank des Hand-PC oder derjenigen des Desktop-PC
vorgenommen wurden. AktiveSync erlaubt es einem Benutzer, dise zu
bewerkstelligen.
-
Bei einer Ausführungsform der Erfindung sind
mehrere Datenstrukturen dazu verwendet, es zu ermöglichen,
dass ActiveSync Aktualisierungen für entsprechende Objekte korrekt
vergleicht und ausführt.
Die erste Datenstruktur ist die Datenstruktur CONFINFO. Diese Datenstruktur
wird dazu verwendet, Information zu zwei möglicherweise im Widerspruch
stehenden Punkten aufzufinden. Bei einer Ausführungsform der Erfindung präsentiert
ein ActiveSync-Server die in der Datenstruktur CONFINFO enthaltene
Information einem Benutzer über
ein Dialogkästchen,
um es dem Benutzer zu ermöglichen,
eine Option zum Lösen
des Konflikts auszuwählen.
Weitere Einzelheiten hinsichtlich der Datenstruktur CONFINFO sind
im Unterabschnitt mit dem Titel "Detaillierte Beschreibung von Datenstrukturen
für eine
Synchronisier-API" angegeben.
-
Eine zweite von der ActiveSync-Komponente
verwendete Datenstruktur ist die Struktur OBJNOTIFY. Die Datenstruktur
OBJNOTIFY wird dazu verwendet, den ActiveSync-Diensteprovider darüber zu informieren, dass
ein Objekt im Dateisystem geändert
oder gelöscht
wurde. Weitere Einzelheiten hinsichtlich der Datenstruktur OBJNOTIFY
sind im Unterabschnitt mit dem Titel "Detaillierte Beschreibung
von Datenstrukturen für eine
Synchronisier-API" angegeben.
-
Detaillierte Beschreibung
von Datenstrukturen für
eine Synchronisier-API
-
Kapitel 106
-
HREPLITEM
-
Die Struktur HREPLITEM wird als Handle
auf ein von einem Client gespeichertes Datenobjekt verwendet. Sie
wird als generisches Handle zum Verweis auf entweder HREPLOBJ oder
HREPLFLD verwendet.
-
-
HREPLFLD
-
Die Struktur HREPLFLD wird als Handle
auf einen durch einen Client gespeicherten Ordner verwendet
-
-
HREPLOBJ
-
Die Struktur HREPLOBJ wird als Handle
auf ein durch einen Client gespeichertes Objekt verwendet
-
CONFINFO
-
Die Struktur CONFINFO wird dazu verwendet,
Information zu zwei in Konflikt stehenden Punkten aufzufinden. Der
Server liefert diese Information über ein Dialogkästchen an
den Benutzer, damit dieser eine Option zum Lösen des Konflikts auswählen kann.
-
-
-
OBJNOTIFY
-
Die Struktur OBJNOTIFY wird dazu
verwendet, dem ActiveSync-Diensteprovider anzuzeigen, dass ein Objekt
im Windows-CE-Detailsystem geändert
oder gelöscht
wurde.
-
-
-
-
-
OBJUIDATA
-
Die Struktur OBJUIDATA wird von IReplStore::GetObjTypeUIData
dazu verwendet, UI bezogene Daten betreffend einen Objekttyp an
den Speicher zu senden.
-
-
-
REPLSETUP
-
Die Struktur REPLSETUP wird dazu
verwendet, den Objekthandler zu initialisieren.
-
-
-
-
STOREINFO
-
Die Struktur STOREINFO wird dazu
verwendet, eine Instanz des Speichers zu kennzeichnen.
-
-
-
-
DEVINFO
-
Die Struktur DEVINFO wird dazu verwendet,
Information zu einem Gerät
zu speichern.
-
-
-
OBJTYPEINFO
-
Die Struktur OBJTYPEINFO wird dazu
verwendet, Information zu einem Objekttyp zu speichern.
-
-
-
Detaillierte Beschreibung
einer Synchronisier-API
-
Kapitel 8
-
IRepINotify:IUnknowm
-
Ein ActiveSync-Dienstemanager implementiert
IReplNotify:Notify-Schnittstelle, die von einem ActiveSync-Diensteprovider
dazu verwendet werden kann, den ActiveSync-Dienstemanager über bestimmte
Ereignisse zu informieren, die im Speicher des ActiveSync-Diensteproviders
stattfinden.
-
-
-
-
IReplNotify::GetWindow
-
Die Methode IReplNotify::GetWindow
erhält
ein Handle auf das Fenster, das als Elternteil für ein beliebiges modales Dialog-
oder Meldungskästchen
verwendet werden muss, das ein ActiveSync-Diensteprovider anzeigen
möchte.
-
-
-
IReplNotify::OnItemCompleted
-
Die Methode IReplNotify::OnItemCompleted
wird intern vom ActiveSync-Dienstemanager verwendet. Ein ActiveSync-Diensteprovider
sollte diese Methode nie explizit aufrufen.
-
-
IReplNotify::OnItemNotify
-
Die Methode IReplNotify::OnItemNotify
informiert den ActiveSync-Dienstemanager darüber, dass ein Objekt erzeugt,
gelöscht
oder modifiziert wurde.
-
-
-
-
IReplNotify::QueryDevice
-
Die Methode IReplNotify::QueryDevice
wird dazu verwendet, nach Information zu einem Gerät zu fragen.
-
-
-
IReplNotify::SetStatusText
-
Die Methode IReplNotify::SetStatusText
stellt den Text ein, der in der Explorerfenster-Statussteuerung anzuzeigen
ist.
-
-
-
IReplObjHandler::IUnknown
-
Die Schnittstelle IReplObjHandler::IUnknown
implementiert alle erforderliche Funktionen in Zusammenhang mit
der Serialisierung und Deserialisierung eines Objekts
-
IReplObjHandler::DeleteObj
-
Die Methode IReplObjHandler::DeleteObj
informiert den ActiveSync-Diensteprovider darüber, dass ein Objekt gelöscht werden
sollte.
-
-
-
IReplObjHandler::GetPacket
-
Der ActiveSync-Diensteprovider implementiert
IReplObjHandler::GetPacket zum Deserialisieren eines Objekts in
eines oder mehrere Pakete. Diese Pakete werden zwischen dem Gerät auf Windows-CE-Basis und
dem Desktopcomputer durch den ActiveSync-Diensteprovider geliefert.
-
-
-
-
IReplObjHandler::Reset
-
Die Methode IReplObjHandler::Reset
fordert den ActiveSync-Diensteprovider dazu auf, jegliche während der
Serialisierung oder Deserialisierung eines Objekts verwendeten Ressourcen
rückzusetzen
oder freizugeben.
-
-
IReplObjHandler::SetPacket
-
Der ActiveSync-Diensteprovider implementiert
SetPacket, um eines oder mehrere Pakete in ein Objekt zu serialisieren.
Diese Pakete liegen garantiert in derselben Reihenfolge wie beim
-
IReplobjHandler::Setup
-
Die Methode IReplObjHandler::Setup
stellt den ActiveSync-Diensteprovider so ein, dass er dazu bereit ist,
ein Objekt zu serialisieren oder zu zu deserialisieren.
-
-
IReplStore:IUnknown
-
Die Schnittstelle IReplStore:IUnknown
implementiert alle erforderliche Funktionen in Zusammenhang mit
dem Speicher
-
IReplStore::ActivateDialog
-
Die Methode IReplStore::ActivateDialog
aktiviert ein für
den ActiveSync-Diensteprovider spezifisches Dialogkästchen.
-
-
-
-
IReplStore::BytesToObject
-
Die Methode IReplStore::BytesToObject
wandelt beim Laden ein Array von Bytes in ein HREPLOBJ um, das ein
HREPLITEM oder ein HREPLFLD sein kann.
-
-
-
IReplStore::CompareItem
-
Die Methode IReplStore::CompareItem
vergleicht die spezifizierten Handles unter Verwendung von Eintragskennungen
wie Dateinamen oder Datensatznummern.
-
-
-
IReplStore::CompareStoreIDs
-
Die Methode IReplStore::CompareStoreIDs
vergleicht zwei Speicherkennungen, um zu ermitteln, ob sie gleich
sind.
-
-
-
IReplStore::CopyObject
-
Die Methode IReplStore::CopyObject
kopiert einen der Werte HREPLOBJ, der entweder ein HREPLITEM oder
HPRELFLD sein kann, übereinander.
-
-
-
IReplStore::FindFirstItem
-
Die Methode IReplStore::FindFirstItem
liefert ein neues Handle auf das erste Objekt in einem spezifizierten
Ordner zurück,
falls ein solches vorliegt.
-
-
-
IReplStore::FindItemClose
-
Die Methode IReplStore::FindItemClose
schließt
die Ordner-Auflistung ab.
-
-
-
IReplStore::FindNextItem
-
Die Methode IReplStore::FindNextItem
liefert ein neues Einzelpunkthandle für das nächste Objekt in einem spezifizierten
Ordner zurück,
falls eines existiert.
-
-
-
IReplStore::FreeObject
-
Die Methode IReplStore::FreeObject
gibt das spezifizierte Handle HREPLOBJ frei.
-
-
-
IReplStore::GetConflictInfo
-
Die Methode IReplStore::GetConflictInfo
erhält
Information zu zwei in Konflikt stehenden Objekten.
-
-
-
IReplStore::GetFolderInfo
-
Die Methode IReplStore::GetFolgerInfo
erzeugt eine neue Struktur HREPLFLD eines Ordners für den spezifizierten
Objekttypnamen, und sie liefert einen Zeiger an die Schnittstelle
IReplObjHandler zurück,
die dazu verwendet wird, alle Einzelpunkte in diesem Ordner zu serialisieren
und zu deserialisieren.
-
-
-
IReplStore::GetObjTypeUIData
-
Die Methode IReplStore::GetObjTypeUIData
liefert Benutzerschnittstelle (UI)-bezogene Daten zu einem Objekttyp
an den ActiveSync-Dienstema nager.
-
-
IReplStore::GetStoreInfo
-
Die Methode IReplStore::GetStoreInfo
erhält
Inmation der aktuellen Speicherinstanz
-
IReplStore::Initialize
-
Die Methode IReplStore::Initialize
initialsiert den ActiveSync-Diensteprovider betreffend IReplStore.
-
-
-
IReplStore::IsFolderChanged
-
Die Methode IReplStore::IsFolderChanged
bestimmt, ob seit dem letzten Aufruf der Methode irgendein Objekt
in einem spezifizierten Ordner geändert wurde.
-
-
-
IReplStore::IsItemChanged
-
Die Methode IReplStore::IsItemChanged
bestimmt, ob das Objekt geändert
wurde.
-
-
-
IReplStore::IsItemReplicated
-
Die Methode IReplStore::IsItemReplicated
bestimmt, ob ein Einzelpunkt unter Verwendung von vom ActiveSync-Diensteprovider
definierten Regel repliziert werden sollte.
-
-
-
IReplStore::ObjectToBytes
-
Die Methode IReplStore::ObjectToBytes
wandelt HREPLOBJ, das entweder HREPLITEM oder HREPLFLD sein kann,
beim Speichern in Array von Bytes um.
-
-
-
IReplStore::IsValidObject
-
Die Methode IReplStore::IsValidObject
bestimmt, die spezifizierten Handles gültig sind.
-
-
-
IReplStore::RemoveDuplicates
-
Die Methode IReplStore::RemoveDuplicates
findet duplizierte Objekte und entfernt sie aus dem Speicher.
-
-
-
IReplStore::ReportStatus
-
Der ActiveSync-Dienstemanager ruft
die Methode IReplStore::ReportStatus auf, um Information zum Synchronisierstatus
zu erlangen.
-
-
-
-
-
-
IReplStore::UpdateItem
-
Die Methode IReplStore::UpdateItem
aktualisiert Zeitmarkierung, die Änderungszahl und andere im spezifizierten
Handle gespeicherte Informa- zum Objekt.
-
-
-
IEnumReplItem
-
Die Methode IEnumReplItem ermöglicht die
Auflistung einer Ansammlung von Einzelpunkten.
-
-
-
IEnumReplItem::Clone
-
Die Methode IEnumReplItem::Clone
erzeugt eine Kopie des aktuellen Auflistungszustands.
-
-
-
IEnumReplItem::GetFolderHandle
-
Die Methode IEnumReplItem::GetFolderHandle
erfasst ein Handle auf den Ordner (HREPLFLD), der aktuell aufgelistet
wird.
-
-
IEnumReplItem::Next
-
Die Methode IEnumReplItem::Next versucht,
zum nächsten
Einzelpunkt in der Auflistungsabfolge weiterzugehen.
-
-
-
-
IEnumReplItem::Reset
-
Die Methode IEnumReplItem::Reset
setzt die Auflistungsabfolge auf den Anfang zurück.
-
-
IEnumReplItem::Skip
-
Die Methode IEnumReplItem::Skip versucht,
den nächsten
Einzelpunkt in der Auflistungsabfolge zu überspringen.
-
-
-
Detaillierte Beschreibung
einer Datenbank-API
-
Kapitel 19
-
Komponente Fsdbase: Funktionen
-
CeCreateDatabase
-
Die Funktion CeCreateDatabase erzeugt
eine neue Datenbank. Es existiert eine RAPI-Version dieser Funktion,
die ebenfalls als CeCreateDatabase bezeichnet wird.
-
-
-
-
CeDeleteDatabase
-
Die Funktion CeDeleteDatabase entfernt
eine Datenbank aus dem Objektspeicher. Es existiert eine RAPI-Version
dieser Funktion, die ebenfalls als CeDeleteDatabase bezeichnet wird.
-
-
-
CeDeleteRecord
-
Die Funktion CeDeleteRecord löscht einen
Datensatz aus einer Datenbank. Es existiert eine RAPI-Version dieser
Funktion, die ebenfalls als CeDeleteRecord bezeichnet wird.
-
-
-
CeFindFirstDatabase
-
Die Funktion CeFindFirstDatabase öffnet einen
Auflistungskontext für
alle Datenbanken im System. Es existiert eine RAPI-Version dieser
Funktion, die ebenfalls als CeFindFirstDatabase bezeichnet wird.
-
-
-
CeFindNextDatabase
-
Die Funktion CeFindNextDatabase sucht
die nächste
Datenbank in einem Auflistungskontext. Es existiert eine RAPI-Version
dieser Funktion, die ebenfalls als CeFindNextDatabase bezeichnet
wird.
-
-
-
CeOpenDatabase
-
Die Funktion CeOpenDatabase öffnet eine
existierende Datenbank. Es existiert eine RAPI-Version dieser Funktion,
die ebenfalls als CeOpenDatabase bezeichnet wird.
-
-
-
-
CeReadRecordProps
-
Die Funktion CeReadRecordProps liest
Eigenschaften aus dem aktuellen Datensatz. Es existiert eine RAPI-Version
dieser Funktion, die ebenfalls als CeReadRecordProps bezeichnet
wird.
-
-
-
-
-
-
-
CeSeekDatabase
-
Die Funktion CeSeekDatabase sucht
nach dem spezifizierten Datensatz in einer offenen Datenbank. Es
existiert eine RAPI-Version dieser Funktion, die ebenfalls als CeSeekDatabase
bezeichnet wird.
-
-
-
-
-
-
CeSetDatabaseInfo
-
Die Funktion CeSetDatabaseInfo stellt
verschiedene Datenbankparameter ein, einschließlich des Namens, des Typs
und Beschreibungen zur Sortierreihenfolge. Es existiert eine RAPI-Version
dieser Funktion, die ebenfalls als CeSetDatabaseInfo bezeichnet
ist.
-
-
-
CeWriteRecordProps
-
Die Funkion CeWriteRecordProps schreibt
einen Satz von Eigenschaften in einen einzelnen Datensatz, wobei
dieser erzeugt wird, falls es
-
Detaillierte Beschreibung
von Datenstrukturen für
eine Datenbank-API
-
Kapitel 95
-
Komponente Fsdbase: Strukturen
-
CEDBASEINFO
-
Die Struktur CEDBASEINFO enthält Information
zu einem Datenbankobjekt. Diese Struktur wird von den Funktionen
CeSetDatabaseInfo und CeCreateDatabaseEx verwendet.
-
-
-
-
CEOIDINFO
-
Die Struktur CEOIDINFO enthält Information
zu einem Objekt im Objektspeicher.
-
-
-
CEPROPVAL
-
Die Struktur CEPROPVAL enthält einen
Eigenschaftswert.
-
-
-
SORTORDERSPEC
-
Die Struktur SORTORDERSPEC enthält Information
zu einer Sortierreihenfolge in einer Datenbank.
-
-
-
Detaillierte Beschreibung
einer Positionsbestimmungs- und Navigations-API
-
IPosNav
-
Die Schnittstelle IPosNav sorgt für alle Methoden,
die dazu erforderlich sind, die Fähigkeiten von Apollo-GPS zu
nutzen.
-
-
-
IPosNav::CloseHandle
-
Die Methode IPosNav::CloseHandle
wird dazu verwendet, eine P&N-Vorrichtung
zu schließen.
-
-
-
IPosNav::pnapiDeleteDeviceList
-
Die Methode IPosNav::pnapiDeleteDevice
wird dazu verwendet, eine verkettete Liste von PNDEVICE-Strukturen
zu löschen.
-
-
IPosNav::pnapiFindDevices
-
Die Methode IPosNav::pnapiFindDevices
ist von Nutzen, um alle im System angeschlossenen Zeige- und Navigationsvorrichtungen
aufzufinden.
-
-
-
-
IPosNav::pnapiGetData
-
Die Methode IPosNav::pnapiGetData
wird dazu verwendet, verschiedene Typen von Daten von einer P&N-Vorrichtung
zu erhalten.
-
-
-
-
IPosNav::pnapiOpenDevice
-
Die Methode IPosNav::pnapiOpenDevice
wird dazu verwendet, die Handschrifterkennung mit einer GPS-Vorrichtung
zu öffnen.
-
-
-
IPosNav::pnapiSetData
-
Die Methode IPosNav::pnapiSetData
wird dazu verwendet, Daten entweder an die P&N-Vorrichtung oder die Registrierung
zu liefern.
-
-
-
-
-
IPosNav::pnapiStartCall
-
Die Methode IPosNav::pnapiStartCall
startet einen Aufruf zum Erhalten von Daten von der P&N-Vorrichtung und zum
Platzieren derselben in PNAPI-Datenstrukturen.
-
-
-
-
IPosNav::pnapiStartDirectCall
-
Die Methode IPosNav::pnapiStartDirectCall
startet einen Aufruf zum Erhalten von Daten von der P&N-Vorrichtung.
-
-
-
-
-
IPosNav::pnapiStopCall
-
Die Methode IPosNav::pnapiStopCall
wird dazu verwendet, einen gestarteten Aufruf IPosNav:: pnapiStartCall
zu stoppen
-
IPosNav::pnapiStopDirectCall
-
Die Methode IPosNav::pnapiStopDirectCall
wird dazu verwendet, den gestarteten Aufruf IPosNav::pnapiStartDirectCall
zu stoppen
-
IPosNav::pncnvBearingToVelocity
-
Die Methode IPosNav::pncnvBearingToVelocity
wird dazu verwendet, eine Peilung und zwei Geschwindigkeiten in
Geschwindigkeiten für
Ost, Nord und Aufwärts
zu wandeln.
-
-
IPosNav::pncnvDegreesToRadians
-
Die Methode IPosNav::pncnvDegreestoRadians
wird dazu verwendet, Breite/Länge/Höhe-Daten
von Grad in Radian zu wandeln.
-
-
-
IPosNav::pncnvPNTMToWintm
-
Die Methode IPosNav::pncnvPNTMToWintm
wird dazu verwendet, die Zeit im PNTM-Format in das Win32-Format
SYSTEMTIME zu wandeln.
-
-
IPosNav::pncnvRadiansToDegrees
-
Die Methode IPosNav::pncnvRadianstoDegrees
wird dazu verwendet, Breite/Länge/Höhe-Daten
von Radian in Grad zu wandeln.
-
-
IPosNav::pncnvVelocityToBearing
-
Die Methode IPosNav::pncnvVelocityToBearing
wird dazu verwendet, Geschwindigkeitsdaten für Nord/Ost-Aufwärts in eine
Peilung und zwei Geschwindigkeiten umzuwandeln.
-
-
-
IPosNav::pncnvWintmPNTM
-
Die Methode IPosNav::pncnvWintmToPNTM
wird dazu verwendet, die Zeit im Win32-Format in das PNTM2-Format
zu wandeln.
-
-
IDGPS
-
Die Schnittstelle IDGPS sorgt für Methoden
zum Handhaben von Differenz-GPS-Vorrichtungen.
-
-
IDGPS::Close
-
Die Methode IDGPS::Close wird dazu
verwendet, eine DGPS-Vorrichtung zu schließen.
-
-
IDGPS::GetRTCM
-
Die Methode IDGPS::GetRTCM erhält von der
DGPS-Vorrichtung
eine "Radio Technical Commission for Maritime Service (RTCM)"-Meldung.
-
-
IDGPS::GetServiceQuality
-
Die Methode IDGPS::GetServiceQuality
wird dazu verwendet, die Qualität
der Unterstützung
zu bestimmen, die dieser DGPS-Dienst liefern kann.
-
-
IDGPS::Open
-
Die Methode IDGPS::Open wird dazu
verwendet, eine DGPS-Vorrichtung zu öffnen.
-
-
-
Detaillierte Beschreibung
von Datenstrukturen für
eine Positionsbestimmungs- und Navigations-API
-
KAPITEL 19
-
PN3State_t
-
Listet einen Satz verfügbarer Modi
auf.
-
-
PNAccess_t
-
Listet die Zugriffsrechte auf, die
die DGPS-Vorrichtung
an die Anwendung liefern kann.
-
-
PNACCURACY
-
Speichert Genauigkeitseinzelheiten
zur durch die DGPS-Vorrichtung gelieferten Position und zur Zeit, zu
der dieser Einzelheiten das letzte Mal aktualisiert wurden.
-
-
-
PNALMANAC
-
Speichert Einzelheiten des GPS-Almanachs.
-
-
-
PNAVACCURACY
-
Speichert, welche PNACCURACY-Elemente
gültig
sind und welche nicht.
-
-
-
PNAVDEVSTATE
-
Speichert, welche Elemente DEVSTATE
gültig
sind und welche nicht.
-
-
-
PNAVDGPSSTATUS
-
Enthält Statusinformation für Differenz-GPS.
-
-
PNAVINDSTATION
-
Zeigt, welche Elemente PNINDSTATION
gültig
sind und welche nicht.
-
-
-
PNAVPOSLLA
-
Zeigt, welche der Positionselemente
gültig
sind. Es soll die Struktur PNPOSLLA gespiegelt werden.
-
-
PNAVSATELLITE
-
Zeigt, welche Elemente PNSATELLITE
gültig
sind und welche nicht.
-
-
-
PNAVSETTINGS
-
Zeigt, welche Elemente PNSETTINGS
gültig
sind und welche nicht.
-
-
-
PNAVSTATION
-
Zeigt, welche Elemente PNSTATION
gültig
sind und welche nicht.
-
-
PNAVTM
-
Speichert, welche PNTM-Elemente gültig sind
und welche nicht
-
PNAWELENU
-
Zeigt, welche Geschwindigkeitselemente
gültig
sind und welche nicht
-
PNCONFIG
-
Speichert die Daten, die als gesicherte
Konfigurationsdaten für
diese DGPS-Vorrichtung in
-
PNData_t
-
PNdata_t listet die Datentypen auf,
die durch Funktionen wie pnapiGetData und pnapiSetData zu verwenden
sind.
-
-
-
PNDatum_t
-
Listet die Verbindungen zwischen
dem Datum und dem Datumscode auf.
-
-
PNDEVICE
-
Die Struktur PNDEVICE enthält ein Profil
einer GPS-Vorrichtung. Im Fall mehrerer Vorrichtungen ist das letzte
Element in der Struktur ein Zeiger auf eine andere Struktur PNDEVICE,
der dazu verwendet werden kann, eine verkettete Liste von Strukturen
zu erzeugen.
-
-
-
-
PNDeviceState
-
Listet die möglichen Vorrichtungszustände auf.
-
-
PNDEVSTATE
-
Speichert den Zustand der P&N-Vorrichtung
und zu welcher Zeit sie das letzte mal aktualisiert wurde.
-
-
PNDGPSSTATUS
-
Enthält den Differenz-GPS-Status.
-
-
-
-
PNEnv_t
-
Vordefinierte Umgebungen, auf die
P&N-Vorrichtungen
eingestellt werden können.
-
-
-
PNINDSTATION
-
Speichert individuelle Stationsdetails
und die Zeit, zu der jedes zuletzt aktualisiert wurde.
-
-
-
PNPOSITION
-
Speichert die Position und die Zeit,
zu der diese aufgefunden wurde.
-
-
-
PNPOSLLA
-
Enthält Positionsdetails in Längen-, Breiten- und Höhen-Einheiten.
Dies sind die Standardeinheiten für PNAPI.
-
-
-
PNPowerState_t
-
Listet die verschiedenen Energiezustände auf,
die die P&N-Vorrichtung
einnehmen kann.
-
-
PNRTCM1
-
Diese Struktur enthält die Meldung
RTCM.
-
-
-
PNCRTCMISAT
-
Diese Struktur enthält Satellitendaten
für DGPS.
-
-
PNRTCMHEADER
-
Diese Struktur enthält den Header
für eine
RTCM-Meldung.
-
-
PNSATELLITE
-
Speichert individuelle Satellitendaten
-
PNSETTINGS
-
Speichert P&N-Vorrichtungseinstellungen, die
vom Benutzer geändert
werden können.
-
-
-
PNSTATION
-
Enthält die Einzelheiten für alle Stationen,
auf die die P&N-Vorrichtung
Zugriff hat.
-
-
PNStationState_t
-
Listet die Stationszustände auf.
-
-
PNTIME
-
Speichert die Zeit der P&N-Vorrichtung
und diejenige des Computersystems.
-
-
-
PNTM
-
Speichert die Zeit mit Millisekunden-Genauigkeit.
-
-
PNVELBEAR
-
Enthält Geschwindigkeitseinzelheiten
in Form einer Peilung und zweier Geschwindigkeiten.
-
-
-
PNVELENU
-
Enthält Geschwindigkeiteinzelheiten
im Format Ost, Nord, Aufwärts.
-
-
PNVELOCITY
-
Speichert Geschwindigkeiten und die
Zeit, zu denen sie zuletzt aktualisiert wurden.
-
-
Detaillierte Beschreibung
einer Handschrifterkennungs-API
-
-
HsxConfig
-
Die Funktion HwxConfig initialisiert
die Dynamic-link Library (DLL) zur Handschrifterkennung.
-
-
-
HwxCreate
-
Die Funktion HwxCreate erzeugt ein
Handschrifterkennungs-Kontext(HRC = handwriting recognition context)objekt
für die
Erkennungsmaßnahme.
-
-
-
HwxDestroy
-
Die Funktion HwxDestroy zerstört ein Handschrifterkennungs-Kontext(HRC)-Objekt.
-
-
-
HwxSetGuide
-
Die Funktion HwxSetGuide identifiziert
den Ort der Kästchen
auf dem Schirm für
einen spezifizierten Handschrifterkennungskontext (HRC).
-
-
-
HwxAlCValid
-
Die Funktion HwxALCValid definiert
den Satz von Zeichen, die die Erkennungsmaßnahme zurückliefern kann.
-
-
-
-
-
-
HwxALCPriority
-
Die Funktion HwxALCPriority ordnet
die durch die Erkennungsmaßnahme
zurückgelieferten
Zeichen neu so an, dass ausgewählte
Zeichen an der Oberseite der Liste auftreten.
-
-
-
HwxSetPartial
-
Die Funktion HwxSetPartial stellt
die Parameter der Erkennungsmaßnahme
für teilweise
Erkennung ein.
-
-
-
HwxSetAbort
-
Die Funktion HwxSetAbort stellt die
Abrufadresse ein.
-
-
-
HwxInput
-
Die Funktion HwxInput fügt die Schreibfarbe
zum Handschrifterkennungskontext (HRC) hinzu.
-
-
-
HwxEndInput
-
Die Funktion HxwEndInput teilt der
Erkennungsmaßnahme
mit, dass zum Handschrifterkennungs-Kontext(HRC)objekt eine Schreibfarbe
mehr hinzugefügt
werden sollte.
-
-
-
HwxProcess
-
Die Funktion HwxProcess signalisiert
der Erkennungsmaßnahme,
die Information im spezifizierten Handschrifterkennungs-Kontext(HRC)objekt
zu analysieren.
-
-
-
HwxGetResults
-
Die Funktion HwxGetResults findet
die Ergebnisse aus der Erkennung betreffend den Handschrifterkennungskontext
(HRC) heraus.
-
-
-
HwxSetContext
-
Die Funktion HwxSetContext fügt Kontextinformation
zum Handschrifterkennungskontext (HRC) hinzu.
-
-
-
HwxResultsAvailable
-
Die Funktion HwxResultsAvailable
liefert die Anzahl der Zeichen zurück, die für einen Abruf durch HwxGetResults
verfügbar
sind.
-
-
-
GetThreadTimes
-
Die Funktion GetThreadTimes erhält Timinginformation
zu einem spezifizierten Thread.
-
-
Detaillierte Beschreibung
einer Sprache-in-Text-API.
-
KAPITEL 5
-
IVoiceText
-
Die Schnittstelle IVoiceText registriert
eine Anwendung zum Verwenden des Sprache-Text-Objekts, und sie steuert
das Abspielen von Text.
-
-
IVoiceText::AudioPause
-
Unterbricht die Text-in-Sprache-Ausgabe
für einen
Sprache-Text-Site.
-
-
-
IVoiceText::AudioResume
-
Nimmt die Text-in-Sprache-Ausgabe
wieder auf, nachdem sie durch die Mitgliedsfunktion IVoiceText::AudioPause
unterbrochen wurde.
-
-
IVoiceText::Register
-
Registriert eine Anwendung zur Verwendung
von Sprachtext auf einer Site.
-
-
-
-
-
IVoiceText::Speak
-
Startet das Abspielen des spezifizierten
Texts.
-
-
-
-
IVoiceText::stopspeaking
-
Hält
Text an, der aktuell gesprochen wird und schwemmt den gesamten anhängigen Text
aus der Abspielwarteschlange aus.
-
-
-
IVTxtAttributes
-
Die Schnittstelle IVTxtAttributes
erlaubt es einer Anwendung, verschiedene Gesichtspunkte des Betriebs
eines Sprachtextobjekts zu kontrollieren.
-
-
IVTxtAttributes::EnabledGet
-
Findet heraus, ob Sprachtext für eine Sprachtextsite
aktiviert ist.
-
-
-
IVTxtAttributes::EnabledSet
-
Aktiviert oder deaktiviert Sprachtext
für eine
Sprachtextsite.
-
-
IVTxtAttributes::IsSpeaking
-
Zeigt an, ob Text aktuell durch eine
Sprachtextsite gesprochen wird.
-
-
-
IVTxtAttributes::SpeedGet
-
Findet die aktuelle mittlere Sprechgeschwindigkeit
für eine
Sprachtextsite, in Wörtern
pro Minute, auf.
-
-
IVTstAttributes::SpeedSet
-
Stellt die aktuelle mittlere Sprechgeschwindigkeit
für eine
Sprachtextsite, in Wörtern
pro Minute, ein.
-
-
IVTxtAttributes::TTSModeGet
-
Findet den Wert GUID für den aktuellen
Text-in-Sprache-Modus
für eine
Sprachtextsite auf.
-
-
-
IVTxtAttributes::TTSModeGet
-
Stellt den Text-in-Sprache-Modus
für eine
Sprachetextsite ein.
-
-
-
IVtxtNotifySink
-
Die Schnittstelle IVTxtNotifySink
wird von einem Sprachtextobjekt dazu verwendet, eine Anwendung über den
Status des Objekts zu informieren.
-
-
IVTxtNotifySink::SpeakingDone
-
Informiert alle Anwendungen über eine
Sprachtextsite, deren Sprechvorgang beendet ist und für die kein
Text in der Abspielwarteschlange verblieben ist.
-
-
-
IVTxtNotifySink::SpeakingStarted
-
Informiert alle Anwendungen über eine
Sprachtextsite, deren Sprechvorgang startete-
-
-
Detaillierte Beschreibung
einer Sprachbefehls-API
-
Kapitel 4
-
IVCmdAttributes
-
Die Schnittstelle IVCmdAttributes
sorgt für
Methoden zum Einstellen verschiedener Attribute des Sprachbefehlsobjekts
einschließlich
Audioausgabe, eines Erkennungsmodus und ob Erkennung aktiviert ist oder
nicht.
-
-
-
IVCmdAttributes::AwakeStateGet
-
Durch IVCmdAttributes::AwakeStateGet
wird der Aufwachzustand für
eine Sprachbefehlssite aufgefunden.
-
-
IVCmdAttributes::AwakeStateSet
-
Durch IVCmdAttributes::AwakeStateSet
wird der Aufwachzustand für
eine Sprachbefehlssite eingestellt.
-
-
-
IVCmdAttributes::EnabledGet
-
IVCmdAttributes::EnabledGet findet
heraus, ob Spracherkennung für
eine Sprachbefehlssite aktiviert oder deaktiviert ist.
-
-
-
IVCmdAttributes::EnabledSet
-
IVCmdAttributes::EnabledSet aktiviert
oder deaktiviert Spracherkennung für eine Sprachbefehlssite.
-
-
-
-
IVCmdAttributes::SpeakerGet
-
IVCmdAttributes::SpeakerGet findet
den Namen des aktuellen Sprechers für eine Sprachbefehlssite auf.
-
-
-
IVCmdAttributes::SpeakerSet
-
IVCmdAttributes::SpeakerSet stellt
den Namen des aktuellen Sprechers für eine Sprachbefehls-
-
IVCmdAttributes::SRModeGet
-
IVCmdAttributes::SRModeGet findet
den Wert GUID für
den für
die Site verwendeten Spracherkennungsmodus auf.
-
-
IVCmdAttributes::SRModeSet
-
IVCmdAttributes::SRModeSet stellt
den verwendeten Spracherkennungsmodus für eine Sprachbefehlssite ein.
-
-
-
IVCmdAttributes::ThresholdGet
-
IVCmdAttributes::ThresholdGet findet
den Schwellenwert der durch eine Sprachbefehlssite verwendeten Spracherkennungsmaschine
auf.
-
-
-
IVCmdAttributes::ThresholdSet
-
IVCmdAttributes::Thresholdset stellt
den Schwellenwert der durch eine Sprachbefehlssite verwendeten Spracherkennungsmaschine
ein.
-
-
-
IVCmdEnum
-
Die Schnittstelle IVCmdEnum ist eine
Standard OLE-Auflistungs-Schnittstelle. Sie wird von Anwendungen
dazu verwendet, die in der Sprachbefehls-Datenbank gespeicherten
Menüs aufzulisten
-
IVCmdEnum::Clone
-
IVCmdEnum::Clone findet eine andere
Auflistung auf, die denselben Auflistungszustand wie die aktuelle
enthält.
-
-
-
IVCmdEnum::Next
-
IVCmdEnum::Next findet die spezifizierte
Anzahl von Einzelpunkten in der Auflistungsabfolge auf.
-
-
-
IVCmdEnum::Reset
-
IVCmdEnum::Reset setzt die Auflistungsabfolge
auf den Anfang zurück.
-
-
IVCmdEnum::Skip
-
IVCmdEnum::Skip überspringt eine spezifizierte
Anzahl von Elementen in der Auflistungsabfolge.
-
-
IVCmdMenu
-
Die Schnittstelle IVCmdMenu erlaubt
es einer Anwendung, Sprachbefehlsmenüs zu verwalten. Sie beinhaltet
Methoden für
solche Aufgabe wie das Aktivieren und das Deaktivieren von Menüs und das
Hinzufügen und
Löschen
von Phrasen.
-
-
-
-
IVCmdMenu::Activate
-
IVCmdMenu::Activate aktiviert ein
Sprachmenü,
so dass dessen Befehle erkannt werden können.
-
-
-
-
IVCmdMenu::Add
-
IVCmdMenu::Add fügt einen oder mehrere Befehle
zu einem Sprachmenü hinzu.
Die hinzugefügten Befehle
werden an beliebige vorhandene Befehle im Menü angefügt.
-
-
-
IVCmdMenu::Deactivate
-
IVCmdMenu::Deactivate deaktiviert
ein aktives Sprachmenü,
so dass die Anwendung nicht mehr auf dessen Befehle lauscht.
-
-
-
IVCmdMenu::EnabledItem
-
IVCmdMenu::EnableItem führt zu einer
dauerhaften Aktivierung oder Deaktivierung eines Menüpunkts.
Wenn ein Befehl unter Verwendung von EnableItem deaktiviert wird,
wird er nicht in das Menü kompiliert.
-
-
-
IVCmdMenu::Get
-
IVCmdMenu::Get findet Information
zu einem oder mehreren Befehlen in einem Sprachmenü auf.
-
-
-
-
IVCmdMenu::ListGet
-
IVCmdMenu::ListGet findet die in
der aktuellen Liste für
das ausgewählte
Sprachmenü gespeicherten Fragen
auf.
-
-
-
-
IVCmdMenu::ListSet
-
IVCmdMenu::ListSet trägt die Phrasen
in eine Liste für
den Sprachbefehl ein.
-
-
-
-
IVCmdMenu::Num
-
IVCmdMenu::Num findet die Gesamtanzahl
der Befehle in einem Sprachmenü auf.
-
-
-
IVCmdMenu::Remove
-
IVCmdMenu::Remove beseitigt die spezifizierten
Befehle aus dem Sprachmenü.
-
-
-
IVCmdMenu::Set
-
IVCmdMenu::Set trägt Information für einen
oder mehrere Befehle in einem Sprachmenü ein.
-
-
-
-
IVCmdMenu::SetItem
-
IVCmdMenu::SetItem führt zu einer
zeitweiligen Aktivierung oder Deaktivierung eines Befehls in einem Sprachmenü.
-
-
-
IVCmdNotifySink
-
Die IVCmdNotifySink muss durch eine
Anwendung implementiert werden, um Mitteilungen vom Sprachbefehlsobjekt
zu empfangen. Zusätzlich
zum erkannten Befehl kann eine Anwendung auch über Ereignisse wie die folgenden
informiert werden: Anfang und Ende einer Äußerung, Menüaktivierung und Vorliegen einer
Wechselwirkung.
-
-
IVCmdNotifySink::AttribChanged
-
IVCmdNotifySink::AttribChanged informiert
Anwendungen auf einer Sprachbefehlssite, dass ein Siteattribut geändert wurde.
-
-
-
IVCmdNotifySink::CommandOther
-
IVCnmdNotifySink::CommandOther wird
gesendet, wenn eine gesprochene Phrase entweder als aus dem Befehlssatz
einer anderen Anwendung herrührend
erkannt wurde oder nicht erkannt wurde.
-
-
-
-
IVCmdNotifySink::CommandRecognize
-
IVCmdNotifySink;;CommandRecognize
wird gesendet, wenn erkannt wird, dass eine gesprochene Phrase aus
dem Befehlssatz der Anwendungen herrührt.
-
-
-
-
IVCmdNotifySink::CommandStart
-
IVCmdNotifySink::CommandStart wird
gesendet, wenn eine gesprochene Phrase erfasst wird.
-
-
IVCmdNotifySink::Interference
-
IVCmdNotifySink::Interference informiert
die Anwendung darüber,
dass die Maschine aus einem bekannten Grund die Sprache nicht korrekt
nicht erkennen kann.
-
-
-
IVCmdUserWord
-
Die Schnittstelle IVCmdUserWord erlaubt
es einer Anwendung, die sprecherabhängigen und die sprecherunabhängigen Schablonen
zu aktivieren und neue Wörter
zur sprecherabhängigen
Schablone hinzuzufügen.
-
-
-
IVCmdUserWord::AddRemoveSIFile
-
Die Methode IVCmdUserWord::AddRemoveSIFile
installiert oder deinstalliert sprecherunabhängige Schablonenerweiterungsdateien.
-
-
-
IVCmdUserWord::GetPhraseList
-
Die Methode IVCmdUserWord::GetPhraseList
erfasst die Wörter
im installierten Wörterbuch.
-
-
-
IVCmdUserWord::ModifyTraining
-
Die Methode IVCmduserWord::ModifyTraining
erlaubt es einer Anwendung, zu spezifizieren, welche Schablonen
für eine
spezielle Phrase aktiviert werden.
-
-
-
-
IVCmdUserWord::QueryPhrase
-
Die Methode IVCmdUserWord::QueryPhrase
wird dazu verwendet, zu bestimmen, welche Art von Schablonen eine
Phrase aufweist und ob diese aktiviert sind oder nicht.
-
-
-
IVCmdUserWord::Train
-
Die Methode IVCmdUserWord::Train
wird von der Anwendung aufgerufen, um eine Liste benutzerdefinierter
Phrasen zu trainieren.
-
-
-
IVoiceCmd
-
Die Schnittstelle IVoiceCmd registriert
eine Anwendung bei einem Sprachbefehlsobjekt. Sie
-
IVoiceCmd::CmdMimic
-
Die Methode IVoiceCmd::CmdMimic versorgt
eine auf Sprache achtende Anwendung mit dem Äquivalent eines gesprochenen
Sprachbefehls.
-
-
-
IVoiceCmd::MenuCreate
-
Die Methode IVoiceCmd::MenuCreate
erzeugt ein Sprachmenüobjekt
zum Repräsentieren
eines neuen oder existierenden Sprachmenüs für eine Anwendung.
-
-
-
-
-
IVoiceCmd::MenuDelete
-
Die Methode IVoiceCmd::MenuDelete
löscht
ein Menü aus
der Sprachmenü-Datenbank.
-
-
-
IVoiceCmd::MenuEnum
-
Die Methode IVoiceCmd::MenuEnum erzeugt
eine Sprachmenü-Auflistung,
die es einer Anwendung erlaubt, Menüs in der Sprachmenü-Datenbank
aufzulisten.
-
-
-
-
IVoiceCmd::Register
-
Die Methode IVoiceCmd::Register registriert
eine Anwendung für
die Verwendung von Sprachbefehlen auf einer Site. Eine Anwendung
muss diese Funktion aufrufen, bevor sie Sprachbefehle benutzen kann.
-
-
-
-
-
Detaillierte Beschreibung
von Datenstrukturen für
eine Sprachbefehls-API
-
Kapitel 24
-
VCMDCOMMAND
-
Liefert Information zu einem Befehl
in einem Sprachmenü.
-
-
-
-
-
-
-
VCMDNAME
-
Enthält Strings, die eindeutig die
Anwendung und den Status kennzeichnen, zu denen ein Sprachmenü gehört.
-
-
-
VCSITEINFO
-
Liefert Information zum Audiogerät, zum Spracherkennungsmodus
sowie andere Attribute einer Sprachbefehlssite.
-
-
-
Kapitel 25
-
VTSITEINFO
-
Spezifiziert ein Audiogerät, einen
Text-in-Sprache-Modus
und die Sprechgeschwindigkeit für
die Sprachtextsite, und gibt an, ob Sprachtext für die Site zu aktivieren und
zu deaktivieren ist.
-
-
-
Detaillierte Beschreibung
einer Sprachbefehls-API für
einen AutoPC
-
Kapitel 2
-
IAPCSpeech
-
Die Schnittstelle IAPCSpeech ist
eine einfache AutoPC-Sprachschnittstelle auf hoher Ebene.
-
-
IAPCSpeech Methods
-
-
-
IAPCSpeech::AddRef,
-
Die Methode IAPCSpeech::AddRef inkrementiert
den Bezugszählwert
für eine
Schnittstelle an einem Sprachobjekt.
-
-
IAPCSpeech::AddVMenuCommand
-
IAPCSpeech::AddVMenuCommand fügt zum Sprachmenu
pMenu einen Befehl hinzu.
-
-
-
IAPCSpeech::AttribGet
-
IAPCSpeech::AttribGet erhält sprachbezogene
Einstellungen.
-
-
IAPCSpeech::AttribSet
-
IAPCSpeech::AttribSet stellt sprachbezogene
Einstellungen ein oder ändert
sie.
-
-
IAPSpeech::CreateVMenu
-
IAPCSpeech::CreateMenu erzeugt ein
Sprachmenü.
-
-
-
IAPCSpeech::QueryInterface
-
IAPCSpeech::QueryInterface liefert
einen Zeiger auf eine Schnittstelle IAPCSpeech zurück.
-
-
IAPCSpeech:Release
-
Die Methode IAPCSpeech::Release dekrementiert
den Bezugszählwert
für die
aufrufende Schnittstelle an einem Sprachobjekt.
-
-
IAPCSpeech::Speak
-
IAPCSpeech::Speak sagt oder spricht
den in szTTS gespeicherten String unter Verwendung von TTS.
-
-
-
IAPCSpeech::Train
-
IAPCSpeech::Train trainiert die Anwendung,
um einen Benutzerbefehl zu erkennen. Die Funktion beschäftigt sich
jeweils nur mit einem Befehl. Sie blendet ein Trainingsformular
ein, um den Benutzer beim Trainieren der Anwendung zum Erkennen
eines Worts oder eines Befehls zu unterstützen. Die Funktion wird gesperrt,
bis das Training beendet oder aufgehoben wird.
-
-
-
IAPCSpeech::VoiceHelpStop
-
IAPCSpeech::VoiceHelpStop wird von
der Shell aufgerufen, um die Sprachhilfe zu stoppen.
-
-
CreateAPCSpeechObject
-
CreateAPCSpeechObject erzeugt ein
AutoPCSprachobjekt.
-
-
-
-
Detaillierte Beschreibung
einer Speichermangel-API
-
Kapitel 29
-
Speichermangel-Benutzerschnittstellen-Referenz
-
Die Speichermangel-Komponente (Oomui)
ist eine austauschbare Komponente, die das Verhalten des Betriebssystems
Windows CE, einschließlich
verschiedener Dialoge und Meldungen, definiert, wenn eine Speichermangelsituation
erkannt wird.
-
Wenn entschieden wird, die Speichermangel-Komponente
durch eine bedarfsangepasste Speicherkomponente zu ersetzen, sind
alle in diesem Abschnitt beschriebenen, Funktionen zu implementieren.
Microsoft kann, auf Anfrage, für
dieses Bemühen
in Form eines Beispielscodes Unterstützung liefern.
-
OomUI CreateNotRespondingWindow
-
Die Funktion OomUI CreateNotRespondingWindow
erzeugt ein Handle auf einen Meldungsdialog, der anzeigt, dass eine
Anwendung nicht reagiert, und liefert es zurück.
-
-
-
OomUI CreateOomWindow
-
Die Funktion OomUI CreateOomWindow
erzeugt den Speichermangeldialog.
-
-
OomUI FShowOomWindow
-
Die Funktion OomUI FShowWindow wird
aufgerufen, wenn das System bestimmt, dass das Speichermangelfenster
dargestellt werden sollte. Jedoch zeigt sie den Dialog nicht an.
-
-
-
OomUI Initialize
-
Die Funktion OomUI Initialize wird
einmal aufgerufen, um die Speichermangel-Benutzerschnittstelle-Komponente
zu initialisieren.
-
-
-
OomUI NotRespondingWndProc
-
Die Fensterprozedur für den Nichtantwortdialog.
-
-
OomUI OnShow
-
Die Funktion OomUI OnShow wird unmittelbar
aufgerufen, bevor das Speichermangelfenster angezeigt wird.
-
-
OomUI OomWndProc
-
Die Fensterprozedur für den Speichermangeldialog.
-
-
-
OomUI SetWindowsInfo
-
Die Funktion OomUI SetWindowsInfo
versorgt die Speichermangelkomponente mit Information betreffend
die zu schließenden
Fenster.
-
-
OomUICallBack CloseWindow
-
Die Funktion OomUICallback CloseWindow
versucht, ein Fenster zu schließen.
-
-
OomUICallback IsCritical
-
Die Funktion OomUICallback IsCritical
wird von Speichermangelkomponente aufgerufen, um zu bestimmen, ob
der Speicher kritisch niedrig ist.
-
-
OomUICallback NonClientPaint
-
Die Funktion OomUICallback NonClientPaint
wird von der Speichermangelkomponente aufgerufen, um die Nichtclient-Fläche mit
"aktiven" Farben zu übermalen.
-
-
WINDOWINFO
-
Die Struktur WINDOWINFO definiert
das Fensterhandle, den Fensterrahmen sowie Schließoptionen für ein Fenster.
-
-
Schlussfolgerung
-
Es wurden APIs für Module und Komponenten eines
Betriebssystems mit eingeschränkten
Ressourcen beschrieben. Die APIs sorgen für Zugriff auf Spezialhardware
und -software, wie es bei derartigen Systemen mit begrenzten Ressourcen
wünschenswert
ist.
-
Obwohl die spezielle Ausführungsformen
veranschaulicht und beschrieben wurden, erkennt der Fachmann, dass
die speziellen dargestellten Ausführungsformen durch jede Anordnung
ersetzt werden können,
die dazu vorgesehen ist, denselben Zweck zu erzielen. Die vorliegende
Anmeldung soll jegliche Anpassungen oder Variationen der Erfindung
abdecken.
-
Zum Beispiel erkennt der Fachmann,
dass zwar die Ausführungsformen
der Erfindung für
eine Implementierung in einer Umgebung mit begrenzten Ressourcen
beschrieben wurden, die Prinzipien der Erfindung jedoch bei anderen
Umgebungen anwendbar sind. Zum Beispiel können die Sprachbefehl-APIs
an standardmäßige Desktop-Betriebssysteme
angepasst werden, um Benutzer zu unterstützen, die Schwierigkeiten bei der
Verwendung einer herkömmlichen
Tastatur und Maus haben, um für
Eingabe in ein System zu sorgen.
-
Die in dieser Anmeldung gebrauchte
Terminologie soll alle diese Umgebungen beinhalten. Daher ist es
ausdrücklich
beabsichtigt, dass die Erfindung nur durch die folgenden Ansprüche und
deren Äquivalente begrenzt
ist.