DE69908121T2 - Anwendungsprogrammierungsschnittstelle in einem betriebssystem - Google Patents

Anwendungsprogrammierungsschnittstelle in einem betriebssystem Download PDF

Info

Publication number
DE69908121T2
DE69908121T2 DE69908121T DE69908121T DE69908121T2 DE 69908121 T2 DE69908121 T2 DE 69908121T2 DE 69908121 T DE69908121 T DE 69908121T DE 69908121 T DE69908121 T DE 69908121T DE 69908121 T2 DE69908121 T2 DE 69908121T2
Authority
DE
Germany
Prior art keywords
application
location
interface
data
data type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69908121T
Other languages
English (en)
Other versions
DE69908121D1 (de
Inventor
Rejean Gagne
Claude Cajolet
Sharad Mathur
N. Gregory Hullender
Mark Miller
Bruce Johnson
Michael Ginsberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE69908121D1 publication Critical patent/DE69908121D1/de
Application granted granted Critical
Publication of DE69908121T2 publication Critical patent/DE69908121T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Description

  • 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.
  • Figure 00300001
  • HREPLFLD
  • Die Struktur HREPLFLD wird als Handle auf einen durch einen Client gespeicherten Ordner verwendet
  • Figure 00300002
  • HREPLOBJ
  • Die Struktur HREPLOBJ wird als Handle auf ein durch einen Client gespeichertes Objekt verwendet
    Figure 00310001
  • 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.
  • Figure 00310002
  • Figure 00320001
  • OBJNOTIFY
  • Die Struktur OBJNOTIFY wird dazu verwendet, dem ActiveSync-Diensteprovider anzuzeigen, dass ein Objekt im Windows-CE-Detailsystem geändert oder gelöscht wurde.
  • Figure 00330001
  • Figure 00340001
  • Figure 00350001
  • Figure 00360001
  • OBJUIDATA
  • Die Struktur OBJUIDATA wird von IReplStore::GetObjTypeUIData dazu verwendet, UI bezogene Daten betreffend einen Objekttyp an den Speicher zu senden.
  • Figure 00360002
  • Figure 00370001
  • REPLSETUP
  • Die Struktur REPLSETUP wird dazu verwendet, den Objekthandler zu initialisieren.
  • Figure 00370002
  • Figure 00380001
  • Figure 00390001
  • STOREINFO
  • Die Struktur STOREINFO wird dazu verwendet, eine Instanz des Speichers zu kennzeichnen.
  • Figure 00390002
  • Figure 00400001
  • Figure 00410001
  • DEVINFO
  • Die Struktur DEVINFO wird dazu verwendet, Information zu einem Gerät zu speichern.
  • Figure 00410002
  • Figure 00420001
  • OBJTYPEINFO
  • Die Struktur OBJTYPEINFO wird dazu verwendet, Information zu einem Objekttyp zu speichern.
  • Figure 00420002
  • Figure 00430001
  • 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.
  • Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • 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.
  • Figure 00470002
  • Figure 00480001
  • IReplNotify::OnItemCompleted
  • Die Methode IReplNotify::OnItemCompleted wird intern vom ActiveSync-Dienstemanager verwendet. Ein ActiveSync-Diensteprovider sollte diese Methode nie explizit aufrufen.
  • Figure 00480002
  • IReplNotify::OnItemNotify
  • Die Methode IReplNotify::OnItemNotify informiert den ActiveSync-Dienstemanager darüber, dass ein Objekt erzeugt, gelöscht oder modifiziert wurde.
  • Figure 00480003
  • Figure 00490001
  • Figure 00500001
  • IReplNotify::QueryDevice
  • Die Methode IReplNotify::QueryDevice wird dazu verwendet, nach Information zu einem Gerät zu fragen.
  • Figure 00500002
  • Figure 00510001
  • IReplNotify::SetStatusText
  • Die Methode IReplNotify::SetStatusText stellt den Text ein, der in der Explorerfenster-Statussteuerung anzuzeigen ist.
  • Figure 00510002
  • Figure 00520001
  • IReplObjHandler::IUnknown
  • Die Schnittstelle IReplObjHandler::IUnknown implementiert alle erforderliche Funktionen in Zusammenhang mit der Serialisierung und Deserialisierung eines Objekts
    Figure 00520002
    Figure 00530001
    Figure 00540001
  • IReplObjHandler::DeleteObj
  • Die Methode IReplObjHandler::DeleteObj informiert den ActiveSync-Diensteprovider darüber, dass ein Objekt gelöscht werden sollte.
  • Figure 00540002
  • Figure 00550001
  • 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.
  • Figure 00550002
  • Figure 00560001
  • Figure 00570001
  • 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.
  • Figure 00570002
  • 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
    Figure 00580001
  • 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.
  • Figure 00590001
  • IReplStore:IUnknown
  • Die Schnittstelle IReplStore:IUnknown implementiert alle erforderliche Funktionen in Zusammenhang mit dem Speicher
    Figure 00590002
    Figure 00600001
    Figure 00610001
    Figure 00620001
    Figure 00630001
  • IReplStore::ActivateDialog
  • Die Methode IReplStore::ActivateDialog aktiviert ein für den ActiveSync-Diensteprovider spezifisches Dialogkästchen.
  • Figure 00630002
  • Figure 00640001
  • Figure 00650001
  • 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.
  • Figure 00650002
  • Figure 00660001
  • IReplStore::CompareItem
  • Die Methode IReplStore::CompareItem vergleicht die spezifizierten Handles unter Verwendung von Eintragskennungen wie Dateinamen oder Datensatznummern.
  • Figure 00660002
  • Figure 00670001
  • IReplStore::CompareStoreIDs
  • Die Methode IReplStore::CompareStoreIDs vergleicht zwei Speicherkennungen, um zu ermitteln, ob sie gleich sind.
  • Figure 00670002
  • Figure 00680001
  • IReplStore::CopyObject
  • Die Methode IReplStore::CopyObject kopiert einen der Werte HREPLOBJ, der entweder ein HREPLITEM oder HPRELFLD sein kann, übereinander.
  • Figure 00680002
  • Figure 00690001
  • IReplStore::FindFirstItem
  • Die Methode IReplStore::FindFirstItem liefert ein neues Handle auf das erste Objekt in einem spezifizierten Ordner zurück, falls ein solches vorliegt.
  • Figure 00700001
  • Figure 00710001
  • IReplStore::FindItemClose
  • Die Methode IReplStore::FindItemClose schließt die Ordner-Auflistung ab.
  • Figure 00710002
  • Figure 00720001
  • 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.
  • Figure 00720002
  • Figure 00730001
  • IReplStore::FreeObject
  • Die Methode IReplStore::FreeObject gibt das spezifizierte Handle HREPLOBJ frei.
  • Figure 00730002
  • Figure 00740001
  • IReplStore::GetConflictInfo
  • Die Methode IReplStore::GetConflictInfo erhält Information zu zwei in Konflikt stehenden Objekten.
  • Figure 00740002
  • Figure 00750001
  • 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.
  • Figure 00750002
  • Figure 00760001
  • IReplStore::GetObjTypeUIData
  • Die Methode IReplStore::GetObjTypeUIData liefert Benutzerschnittstelle (UI)-bezogene Daten zu einem Objekttyp an den ActiveSync-Dienstema nager.
  • Figure 00770001
  • IReplStore::GetStoreInfo
  • Die Methode IReplStore::GetStoreInfo erhält Inmation der aktuellen Speicherinstanz
    Figure 00770002
    Figure 00780001
  • IReplStore::Initialize
  • Die Methode IReplStore::Initialize initialsiert den ActiveSync-Diensteprovider betreffend IReplStore.
  • Figure 00790001
  • Figure 00800001
  • IReplStore::IsFolderChanged
  • Die Methode IReplStore::IsFolderChanged bestimmt, ob seit dem letzten Aufruf der Methode irgendein Objekt in einem spezifizierten Ordner geändert wurde.
  • Figure 00800002
  • Figure 00810001
  • IReplStore::IsItemChanged
  • Die Methode IReplStore::IsItemChanged bestimmt, ob das Objekt geändert wurde.
  • Figure 00810002
  • Figure 00820001
  • IReplStore::IsItemReplicated
  • Die Methode IReplStore::IsItemReplicated bestimmt, ob ein Einzelpunkt unter Verwendung von vom ActiveSync-Diensteprovider definierten Regel repliziert werden sollte.
  • Figure 00820002
  • Figure 00830001
  • IReplStore::ObjectToBytes
  • Die Methode IReplStore::ObjectToBytes wandelt HREPLOBJ, das entweder HREPLITEM oder HREPLFLD sein kann, beim Speichern in Array von Bytes um.
  • Figure 00840001
  • Figure 00850001
  • IReplStore::IsValidObject
  • Die Methode IReplStore::IsValidObject bestimmt, die spezifizierten Handles gültig sind.
  • Figure 00850002
  • Figure 00860001
  • IReplStore::RemoveDuplicates
  • Die Methode IReplStore::RemoveDuplicates findet duplizierte Objekte und entfernt sie aus dem Speicher.
  • Figure 00860002
  • Figure 00870001
  • IReplStore::ReportStatus
  • Der ActiveSync-Dienstemanager ruft die Methode IReplStore::ReportStatus auf, um Information zum Synchronisierstatus zu erlangen.
  • Figure 00880001
  • Figure 00890001
  • Figure 00900001
  • Figure 00910001
  • Figure 00920001
  • IReplStore::UpdateItem
  • Die Methode IReplStore::UpdateItem aktualisiert Zeitmarkierung, die Änderungszahl und andere im spezifizierten Handle gespeicherte Informa- zum Objekt.
  • Figure 00920002
  • Figure 00930001
  • IEnumReplItem
  • Die Methode IEnumReplItem ermöglicht die Auflistung einer Ansammlung von Einzelpunkten.
  • Figure 00930002
  • Figure 00940001
  • IEnumReplItem::Clone
  • Die Methode IEnumReplItem::Clone erzeugt eine Kopie des aktuellen Auflistungszustands.
  • Figure 00940002
  • Figure 00950001
  • IEnumReplItem::GetFolderHandle
  • Die Methode IEnumReplItem::GetFolderHandle erfasst ein Handle auf den Ordner (HREPLFLD), der aktuell aufgelistet wird.
  • Figure 00950002
  • IEnumReplItem::Next
  • Die Methode IEnumReplItem::Next versucht, zum nächsten Einzelpunkt in der Auflistungsabfolge weiterzugehen.
  • Figure 00950003
  • Figure 00960001
  • Figure 00970001
  • IEnumReplItem::Reset
  • Die Methode IEnumReplItem::Reset setzt die Auflistungsabfolge auf den Anfang zurück.
  • Figure 00970002
  • IEnumReplItem::Skip
  • Die Methode IEnumReplItem::Skip versucht, den nächsten Einzelpunkt in der Auflistungsabfolge zu überspringen.
  • Figure 00970003
  • Figure 00980001
  • 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.
  • Figure 01000001
  • Figure 01010001
  • Figure 01020001
  • CeDeleteDatabase
  • Die Funktion CeDeleteDatabase entfernt eine Datenbank aus dem Objektspeicher. Es existiert eine RAPI-Version dieser Funktion, die ebenfalls als CeDeleteDatabase bezeichnet wird.
  • Figure 01020002
  • Figure 01030001
  • CeDeleteRecord
  • Die Funktion CeDeleteRecord löscht einen Datensatz aus einer Datenbank. Es existiert eine RAPI-Version dieser Funktion, die ebenfalls als CeDeleteRecord bezeichnet wird.
  • Figure 01040001
  • Figure 01050001
  • 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.
  • Figure 01050002
  • Figure 01060001
  • 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.
  • Figure 01060002
  • Figure 01070001
  • CeOpenDatabase
  • Die Funktion CeOpenDatabase öffnet eine existierende Datenbank. Es existiert eine RAPI-Version dieser Funktion, die ebenfalls als CeOpenDatabase bezeichnet wird.
  • Figure 01080001
  • Figure 01090001
  • Figure 01100001
  • CeReadRecordProps
  • Die Funktion CeReadRecordProps liest Eigenschaften aus dem aktuellen Datensatz. Es existiert eine RAPI-Version dieser Funktion, die ebenfalls als CeReadRecordProps bezeichnet wird.
  • Figure 01100002
  • Figure 01110001
  • Figure 01120001
  • Figure 01130001
  • Figure 01140001
  • Figure 01150001
  • 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.
  • Figure 01150002
  • Figure 01160001
  • Figure 01170001
  • Figure 01180001
  • Figure 01190001
  • 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.
  • Figure 01200001
  • Figure 01210001
  • CeWriteRecordProps
  • Die Funkion CeWriteRecordProps schreibt einen Satz von Eigenschaften in einen einzelnen Datensatz, wobei dieser erzeugt wird, falls es
    Figure 01220001
    Figure 01230001
    Figure 01240001
  • 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.
  • Figure 01260001
  • Figure 01270001
  • Figure 01280001
  • CEOIDINFO
  • Die Struktur CEOIDINFO enthält Information zu einem Objekt im Objektspeicher.
  • Figure 01290001
  • Figure 01300001
  • CEPROPVAL
  • Die Struktur CEPROPVAL enthält einen Eigenschaftswert.
  • Figure 01310001
  • Figure 01320001
  • SORTORDERSPEC
  • Die Struktur SORTORDERSPEC enthält Information zu einer Sortierreihenfolge in einer Datenbank.
  • Figure 01320002
  • Figure 01330001
  • 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.
  • Figure 01350001
  • Figure 01360001
  • IPosNav::CloseHandle
  • Die Methode IPosNav::CloseHandle wird dazu verwendet, eine P&N-Vorrichtung zu schließen.
  • Figure 01360002
  • Figure 01370001
  • IPosNav::pnapiDeleteDeviceList
  • Die Methode IPosNav::pnapiDeleteDevice wird dazu verwendet, eine verkettete Liste von PNDEVICE-Strukturen zu löschen.
  • Figure 01380001
  • IPosNav::pnapiFindDevices
  • Die Methode IPosNav::pnapiFindDevices ist von Nutzen, um alle im System angeschlossenen Zeige- und Navigationsvorrichtungen aufzufinden.
  • Figure 01380002
  • Figure 01390001
  • Figure 01400001
  • IPosNav::pnapiGetData
  • Die Methode IPosNav::pnapiGetData wird dazu verwendet, verschiedene Typen von Daten von einer P&N-Vorrichtung zu erhalten.
  • Figure 01400002
  • Figure 01410001
  • Figure 01420001
  • IPosNav::pnapiOpenDevice
  • Die Methode IPosNav::pnapiOpenDevice wird dazu verwendet, die Handschrifterkennung mit einer GPS-Vorrichtung zu öffnen.
  • Figure 01430001
  • Figure 01440001
  • IPosNav::pnapiSetData
  • Die Methode IPosNav::pnapiSetData wird dazu verwendet, Daten entweder an die P&N-Vorrichtung oder die Registrierung zu liefern.
  • Figure 01440002
  • Figure 01450001
  • Figure 01460001
  • Figure 01470001
  • 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.
  • Figure 01470002
  • Figure 01480001
  • Figure 01490001
  • IPosNav::pnapiStartDirectCall
  • Die Methode IPosNav::pnapiStartDirectCall startet einen Aufruf zum Erhalten von Daten von der P&N-Vorrichtung.
  • Figure 01490002
  • Figure 01500001
  • Figure 01510001
  • Figure 01520001
  • IPosNav::pnapiStopCall
  • Die Methode IPosNav::pnapiStopCall wird dazu verwendet, einen gestarteten Aufruf IPosNav:: pnapiStartCall zu stoppen
    Figure 01520002
    Figure 01530001
  • IPosNav::pnapiStopDirectCall
  • Die Methode IPosNav::pnapiStopDirectCall wird dazu verwendet, den gestarteten Aufruf IPosNav::pnapiStartDirectCall zu stoppen
    Figure 01530002
    Figure 01540001
  • 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.
  • Figure 01550001
  • IPosNav::pncnvDegreesToRadians
  • Die Methode IPosNav::pncnvDegreestoRadians wird dazu verwendet, Breite/Länge/Höhe-Daten von Grad in Radian zu wandeln.
  • Figure 01550002
  • Figure 01560001
  • IPosNav::pncnvPNTMToWintm
  • Die Methode IPosNav::pncnvPNTMToWintm wird dazu verwendet, die Zeit im PNTM-Format in das Win32-Format SYSTEMTIME zu wandeln.
  • Figure 01560002
  • IPosNav::pncnvRadiansToDegrees
  • Die Methode IPosNav::pncnvRadianstoDegrees wird dazu verwendet, Breite/Länge/Höhe-Daten von Radian in Grad zu wandeln.
  • Figure 01570001
  • IPosNav::pncnvVelocityToBearing
  • Die Methode IPosNav::pncnvVelocityToBearing wird dazu verwendet, Geschwindigkeitsdaten für Nord/Ost-Aufwärts in eine Peilung und zwei Geschwindigkeiten umzuwandeln.
  • Figure 01570002
  • Figure 01580001
  • IPosNav::pncnvWintmPNTM
  • Die Methode IPosNav::pncnvWintmToPNTM wird dazu verwendet, die Zeit im Win32-Format in das PNTM2-Format zu wandeln.
  • Figure 01580002
  • IDGPS
  • Die Schnittstelle IDGPS sorgt für Methoden zum Handhaben von Differenz-GPS-Vorrichtungen.
  • Figure 01590001
  • IDGPS::Close
  • Die Methode IDGPS::Close wird dazu verwendet, eine DGPS-Vorrichtung zu schließen.
  • Figure 01600001
  • IDGPS::GetRTCM
  • Die Methode IDGPS::GetRTCM erhält von der DGPS-Vorrichtung eine "Radio Technical Commission for Maritime Service (RTCM)"-Meldung.
  • Figure 01600002
  • IDGPS::GetServiceQuality
  • Die Methode IDGPS::GetServiceQuality wird dazu verwendet, die Qualität der Unterstützung zu bestimmen, die dieser DGPS-Dienst liefern kann.
  • Figure 01610001
  • IDGPS::Open
  • Die Methode IDGPS::Open wird dazu verwendet, eine DGPS-Vorrichtung zu öffnen.
  • Figure 01610002
  • Figure 01620001
  • Detaillierte Beschreibung von Datenstrukturen für eine Positionsbestimmungs- und Navigations-API
  • KAPITEL 19
  • PN3State_t
  • Listet einen Satz verfügbarer Modi auf.
  • Figure 01640001
  • PNAccess_t
  • Listet die Zugriffsrechte auf, die die DGPS-Vorrichtung an die Anwendung liefern kann.
  • Figure 01640002
  • PNACCURACY
  • Speichert Genauigkeitseinzelheiten zur durch die DGPS-Vorrichtung gelieferten Position und zur Zeit, zu der dieser Einzelheiten das letzte Mal aktualisiert wurden.
  • Figure 01650001
  • Figure 01660001
  • PNALMANAC
  • Speichert Einzelheiten des GPS-Almanachs.
  • Figure 01660002
  • Figure 01670001
  • PNAVACCURACY
  • Speichert, welche PNACCURACY-Elemente gültig sind und welche nicht.
  • Figure 01670002
  • Figure 01680001
  • PNAVDEVSTATE
  • Speichert, welche Elemente DEVSTATE gültig sind und welche nicht.
  • Figure 01680002
  • Figure 01690001
  • PNAVDGPSSTATUS
  • Enthält Statusinformation für Differenz-GPS.
  • Figure 01690002
  • PNAVINDSTATION
  • Zeigt, welche Elemente PNINDSTATION gültig sind und welche nicht.
  • Figure 01690003
  • Figure 01700001
  • PNAVPOSLLA
  • Zeigt, welche der Positionselemente gültig sind. Es soll die Struktur PNPOSLLA gespiegelt werden.
  • Figure 01710001
  • PNAVSATELLITE
  • Zeigt, welche Elemente PNSATELLITE gültig sind und welche nicht.
  • Figure 01720001
  • Figure 01730001
  • PNAVSETTINGS
  • Zeigt, welche Elemente PNSETTINGS gültig sind und welche nicht.
  • Figure 01730002
  • Figure 01740001
  • PNAVSTATION
  • Zeigt, welche Elemente PNSTATION gültig sind und welche nicht.
  • Figure 01750001
  • PNAVTM
  • Speichert, welche PNTM-Elemente gültig sind und welche nicht
    Figure 01760001
  • PNAWELENU
  • Zeigt, welche Geschwindigkeitselemente gültig sind und welche nicht
    Figure 01770001
  • PNCONFIG
  • Speichert die Daten, die als gesicherte Konfigurationsdaten für diese DGPS-Vorrichtung in
    Figure 01780001
    Figure 01790001
  • PNData_t
  • PNdata_t listet die Datentypen auf, die durch Funktionen wie pnapiGetData und pnapiSetData zu verwenden sind.
  • Figure 01790002
  • Figure 01800001
  • PNDatum_t
  • Listet die Verbindungen zwischen dem Datum und dem Datumscode auf.
  • Figure 01800002
  • 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.
  • Figure 01800003
  • Figure 01810001
  • Figure 01820001
  • PNDeviceState
  • Listet die möglichen Vorrichtungszustände auf.
  • Figure 01830001
  • PNDEVSTATE
  • Speichert den Zustand der P&N-Vorrichtung und zu welcher Zeit sie das letzte mal aktualisiert wurde.
  • Figure 01840001
  • PNDGPSSTATUS
  • Enthält den Differenz-GPS-Status.
  • Figure 01840002
  • Figure 01850001
  • Figure 01860001
  • PNEnv_t
  • Vordefinierte Umgebungen, auf die P&N-Vorrichtungen eingestellt werden können.
  • Figure 01860002
  • Figure 01870001
  • PNINDSTATION
  • Speichert individuelle Stationsdetails und die Zeit, zu der jedes zuletzt aktualisiert wurde.
  • Figure 01870002
  • Figure 01880001
  • PNPOSITION
  • Speichert die Position und die Zeit, zu der diese aufgefunden wurde.
  • Figure 01880002
  • Figure 01890001
  • PNPOSLLA
  • Enthält Positionsdetails in Längen-, Breiten- und Höhen-Einheiten. Dies sind die Standardeinheiten für PNAPI.
  • Figure 01890002
  • Figure 01900001
  • PNPowerState_t
  • Listet die verschiedenen Energiezustände auf, die die P&N-Vorrichtung einnehmen kann.
  • Figure 01900002
  • PNRTCM1
  • Diese Struktur enthält die Meldung RTCM.
  • Figure 01900003
  • Figure 01910001
  • PNCRTCMISAT
  • Diese Struktur enthält Satellitendaten für DGPS.
  • Figure 01920001
  • PNRTCMHEADER
  • Diese Struktur enthält den Header für eine RTCM-Meldung.
  • Figure 01930001
  • PNSATELLITE
  • Speichert individuelle Satellitendaten
    Figure 01940001
    Figure 01950001
    Figure 01960001
  • PNSETTINGS
  • Speichert P&N-Vorrichtungseinstellungen, die vom Benutzer geändert werden können.
  • Figure 01960002
  • Figure 01970001
  • PNSTATION
  • Enthält die Einzelheiten für alle Stationen, auf die die P&N-Vorrichtung Zugriff hat.
  • Figure 01980001
  • PNStationState_t
  • Listet die Stationszustände auf.
  • Figure 01990001
  • PNTIME
  • Speichert die Zeit der P&N-Vorrichtung und diejenige des Computersystems.
  • Figure 01990002
  • Figure 02000001
  • PNTM
  • Speichert die Zeit mit Millisekunden-Genauigkeit.
  • Figure 02000002
  • PNVELBEAR
  • Enthält Geschwindigkeitseinzelheiten in Form einer Peilung und zweier Geschwindigkeiten.
  • Figure 02000003
  • Figure 02010001
  • PNVELENU
  • Enthält Geschwindigkeiteinzelheiten im Format Ost, Nord, Aufwärts.
  • Figure 02010002
  • PNVELOCITY
  • Speichert Geschwindigkeiten und die Zeit, zu denen sie zuletzt aktualisiert wurden.
  • Figure 02020001
  • Detaillierte Beschreibung einer Handschrifterkennungs-API
  • Figure 02040001
  • HsxConfig
  • Die Funktion HwxConfig initialisiert die Dynamic-link Library (DLL) zur Handschrifterkennung.
  • Figure 02040002
  • Figure 02050001
  • HwxCreate
  • Die Funktion HwxCreate erzeugt ein Handschrifterkennungs-Kontext(HRC = handwriting recognition context)objekt für die Erkennungsmaßnahme.
  • Figure 02050002
  • Figure 02060001
  • HwxDestroy
  • Die Funktion HwxDestroy zerstört ein Handschrifterkennungs-Kontext(HRC)-Objekt.
  • Figure 02060002
  • Figure 02070001
  • HwxSetGuide
  • Die Funktion HwxSetGuide identifiziert den Ort der Kästchen auf dem Schirm für einen spezifizierten Handschrifterkennungskontext (HRC).
  • Figure 02070002
  • Figure 02080001
  • HwxAlCValid
  • Die Funktion HwxALCValid definiert den Satz von Zeichen, die die Erkennungsmaßnahme zurückliefern kann.
  • Figure 02080002
  • Figure 02090001
  • Figure 02100001
  • Figure 02110001
  • Figure 02120001
  • 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.
  • Figure 02120002
  • Figure 02130001
  • HwxSetPartial
  • Die Funktion HwxSetPartial stellt die Parameter der Erkennungsmaßnahme für teilweise Erkennung ein.
  • Figure 02130002
  • Figure 02140001
  • HwxSetAbort
  • Die Funktion HwxSetAbort stellt die Abrufadresse ein.
  • Figure 02140002
  • Figure 02150001
  • HwxInput
  • Die Funktion HwxInput fügt die Schreibfarbe zum Handschrifterkennungskontext (HRC) hinzu.
  • Figure 02150002
  • Figure 02160001
  • HwxEndInput
  • Die Funktion HxwEndInput teilt der Erkennungsmaßnahme mit, dass zum Handschrifterkennungs-Kontext(HRC)objekt eine Schreibfarbe mehr hinzugefügt werden sollte.
  • Figure 02160002
  • Figure 02170001
  • HwxProcess
  • Die Funktion HwxProcess signalisiert der Erkennungsmaßnahme, die Information im spezifizierten Handschrifterkennungs-Kontext(HRC)objekt zu analysieren.
  • Figure 02170002
  • Figure 02180001
  • HwxGetResults
  • Die Funktion HwxGetResults findet die Ergebnisse aus der Erkennung betreffend den Handschrifterkennungskontext (HRC) heraus.
  • Figure 02180002
  • Figure 02190001
  • HwxSetContext
  • Die Funktion HwxSetContext fügt Kontextinformation zum Handschrifterkennungskontext (HRC) hinzu.
  • Figure 02200001
  • Figure 02210001
  • HwxResultsAvailable
  • Die Funktion HwxResultsAvailable liefert die Anzahl der Zeichen zurück, die für einen Abruf durch HwxGetResults verfügbar sind.
  • Figure 02210002
  • Figure 02220001
  • GetThreadTimes
  • Die Funktion GetThreadTimes erhält Timinginformation zu einem spezifizierten Thread.
  • Figure 02220002
  • 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.
  • Figure 02240001
  • IVoiceText::AudioPause
  • Unterbricht die Text-in-Sprache-Ausgabe für einen Sprache-Text-Site.
  • Figure 02240002
  • Figure 02250001
  • IVoiceText::AudioResume
  • Nimmt die Text-in-Sprache-Ausgabe wieder auf, nachdem sie durch die Mitgliedsfunktion IVoiceText::AudioPause unterbrochen wurde.
  • Figure 02260001
  • IVoiceText::Register
  • Registriert eine Anwendung zur Verwendung von Sprachtext auf einer Site.
  • Figure 02260002
  • Figure 02270001
  • Figure 02280001
  • Figure 02290001
  • IVoiceText::Speak
  • Startet das Abspielen des spezifizierten Texts.
  • Figure 02290002
  • Figure 02300001
  • Figure 02310001
  • IVoiceText::stopspeaking
  • Hält Text an, der aktuell gesprochen wird und schwemmt den gesamten anhängigen Text aus der Abspielwarteschlange aus.
  • Figure 02310002
  • Figure 02320001
  • IVTxtAttributes
  • Die Schnittstelle IVTxtAttributes erlaubt es einer Anwendung, verschiedene Gesichtspunkte des Betriebs eines Sprachtextobjekts zu kontrollieren.
  • Figure 02320002
  • IVTxtAttributes::EnabledGet
  • Findet heraus, ob Sprachtext für eine Sprachtextsite aktiviert ist.
  • Figure 02330001
  • Figure 02340001
  • IVTxtAttributes::EnabledSet
  • Aktiviert oder deaktiviert Sprachtext für eine Sprachtextsite.
  • Figure 02340002
  • IVTxtAttributes::IsSpeaking
  • Zeigt an, ob Text aktuell durch eine Sprachtextsite gesprochen wird.
  • Figure 02350001
  • Figure 02360001
  • IVTxtAttributes::SpeedGet
  • Findet die aktuelle mittlere Sprechgeschwindigkeit für eine Sprachtextsite, in Wörtern pro Minute, auf.
  • Figure 02360002
  • IVTstAttributes::SpeedSet
  • Stellt die aktuelle mittlere Sprechgeschwindigkeit für eine Sprachtextsite, in Wörtern pro Minute, ein.
  • Figure 02370001
  • IVTxtAttributes::TTSModeGet
  • Findet den Wert GUID für den aktuellen Text-in-Sprache-Modus für eine Sprachtextsite auf.
  • Figure 02380001
  • Figure 02390001
  • IVTxtAttributes::TTSModeGet
  • Stellt den Text-in-Sprache-Modus für eine Sprachetextsite ein.
  • Figure 02390002
  • Figure 02400001
  • IVtxtNotifySink
  • Die Schnittstelle IVTxtNotifySink wird von einem Sprachtextobjekt dazu verwendet, eine Anwendung über den Status des Objekts zu informieren.
  • Figure 02400002
  • IVTxtNotifySink::SpeakingDone
  • Informiert alle Anwendungen über eine Sprachtextsite, deren Sprechvorgang beendet ist und für die kein Text in der Abspielwarteschlange verblieben ist.
  • Figure 02400003
  • Figure 02410001
  • IVTxtNotifySink::SpeakingStarted
  • Informiert alle Anwendungen über eine Sprachtextsite, deren Sprechvorgang startete-
  • Figure 02410002
  • 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.
  • Figure 02430001
  • Figure 02440001
  • IVCmdAttributes::AwakeStateGet
  • Durch IVCmdAttributes::AwakeStateGet wird der Aufwachzustand für eine Sprachbefehlssite aufgefunden.
  • Figure 02450001
  • IVCmdAttributes::AwakeStateSet
  • Durch IVCmdAttributes::AwakeStateSet wird der Aufwachzustand für eine Sprachbefehlssite eingestellt.
  • Figure 02460001
  • Figure 02470001
  • IVCmdAttributes::EnabledGet
  • IVCmdAttributes::EnabledGet findet heraus, ob Spracherkennung für eine Sprachbefehlssite aktiviert oder deaktiviert ist.
  • Figure 02470002
  • Figure 02480001
  • IVCmdAttributes::EnabledSet
  • IVCmdAttributes::EnabledSet aktiviert oder deaktiviert Spracherkennung für eine Sprachbefehlssite.
  • Figure 02480002
  • Figure 02490001
  • Figure 02500001
  • IVCmdAttributes::SpeakerGet
  • IVCmdAttributes::SpeakerGet findet den Namen des aktuellen Sprechers für eine Sprachbefehlssite auf.
  • Figure 02500002
  • Figure 02510001
  • IVCmdAttributes::SpeakerSet
  • IVCmdAttributes::SpeakerSet stellt den Namen des aktuellen Sprechers für eine Sprachbefehls-
    Figure 02520001
  • IVCmdAttributes::SRModeGet
  • IVCmdAttributes::SRModeGet findet den Wert GUID für den für die Site verwendeten Spracherkennungsmodus auf.
  • Figure 02530001
  • IVCmdAttributes::SRModeSet
  • IVCmdAttributes::SRModeSet stellt den verwendeten Spracherkennungsmodus für eine Sprachbefehlssite ein.
  • Figure 02540001
  • Figure 02550001
  • IVCmdAttributes::ThresholdGet
  • IVCmdAttributes::ThresholdGet findet den Schwellenwert der durch eine Sprachbefehlssite verwendeten Spracherkennungsmaschine auf.
  • Figure 02550002
  • Figure 02560001
  • IVCmdAttributes::ThresholdSet
  • IVCmdAttributes::Thresholdset stellt den Schwellenwert der durch eine Sprachbefehlssite verwendeten Spracherkennungsmaschine ein.
  • Figure 02560002
  • Figure 02570001
  • 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
    Figure 02580001
  • IVCmdEnum::Clone
  • IVCmdEnum::Clone findet eine andere Auflistung auf, die denselben Auflistungszustand wie die aktuelle enthält.
  • Figure 02580002
  • Figure 02590001
  • IVCmdEnum::Next
  • IVCmdEnum::Next findet die spezifizierte Anzahl von Einzelpunkten in der Auflistungsabfolge auf.
  • Figure 02590002
  • Figure 02600001
  • IVCmdEnum::Reset
  • IVCmdEnum::Reset setzt die Auflistungsabfolge auf den Anfang zurück.
  • Figure 02600002
  • IVCmdEnum::Skip
  • IVCmdEnum::Skip überspringt eine spezifizierte Anzahl von Elementen in der Auflistungsabfolge.
  • Figure 02610001
  • 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.
  • Figure 02610002
  • Figure 02620001
  • Figure 02630001
  • IVCmdMenu::Activate
  • IVCmdMenu::Activate aktiviert ein Sprachmenü, so dass dessen Befehle erkannt werden können.
  • Figure 02630002
  • Figure 02640001
  • Figure 02650001
  • 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.
  • Figure 02650002
  • Figure 02660001
  • IVCmdMenu::Deactivate
  • IVCmdMenu::Deactivate deaktiviert ein aktives Sprachmenü, so dass die Anwendung nicht mehr auf dessen Befehle lauscht.
  • Figure 02660002
  • Figure 02670001
  • 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.
  • Figure 02670002
  • Figure 02680001
  • IVCmdMenu::Get
  • IVCmdMenu::Get findet Information zu einem oder mehreren Befehlen in einem Sprachmenü auf.
  • Figure 02680002
  • Figure 02690001
  • Figure 02700001
  • IVCmdMenu::ListGet
  • IVCmdMenu::ListGet findet die in der aktuellen Liste für das ausgewählte Sprachmenü gespeicherten Fragen auf.
  • Figure 02700002
  • Figure 02710001
  • Figure 02720001
  • IVCmdMenu::ListSet
  • IVCmdMenu::ListSet trägt die Phrasen in eine Liste für den Sprachbefehl ein.
  • Figure 02720002
  • Figure 02730001
  • Figure 02740001
  • IVCmdMenu::Num
  • IVCmdMenu::Num findet die Gesamtanzahl der Befehle in einem Sprachmenü auf.
  • Figure 02740002
  • Figure 02750001
  • IVCmdMenu::Remove
  • IVCmdMenu::Remove beseitigt die spezifizierten Befehle aus dem Sprachmenü.
  • Figure 02750002
  • Figure 02760001
  • IVCmdMenu::Set
  • IVCmdMenu::Set trägt Information für einen oder mehrere Befehle in einem Sprachmenü ein.
  • Figure 02760002
  • Figure 02770001
  • Figure 02780001
  • IVCmdMenu::SetItem
  • IVCmdMenu::SetItem führt zu einer zeitweiligen Aktivierung oder Deaktivierung eines Befehls in einem Sprachmenü.
  • Figure 02780002
  • Figure 02790001
  • 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.
  • Figure 02800001
  • IVCmdNotifySink::AttribChanged
  • IVCmdNotifySink::AttribChanged informiert Anwendungen auf einer Sprachbefehlssite, dass ein Siteattribut geändert wurde.
  • Figure 02810001
  • Figure 02820001
  • 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.
  • Figure 02820002
  • Figure 02830001
  • Figure 02840001
  • IVCmdNotifySink::CommandRecognize
  • IVCmdNotifySink;;CommandRecognize wird gesendet, wenn erkannt wird, dass eine gesprochene Phrase aus dem Befehlssatz der Anwendungen herrührt.
  • Figure 02840002
  • Figure 02850001
  • Figure 02860001
  • IVCmdNotifySink::CommandStart
  • IVCmdNotifySink::CommandStart wird gesendet, wenn eine gesprochene Phrase erfasst wird.
  • Figure 02870001
  • IVCmdNotifySink::Interference
  • IVCmdNotifySink::Interference informiert die Anwendung darüber, dass die Maschine aus einem bekannten Grund die Sprache nicht korrekt nicht erkennen kann.
  • Figure 02870002
  • Figure 02880001
  • 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.
  • Figure 02890001
  • Figure 02900001
  • IVCmdUserWord::AddRemoveSIFile
  • Die Methode IVCmdUserWord::AddRemoveSIFile installiert oder deinstalliert sprecherunabhängige Schablonenerweiterungsdateien.
  • Figure 02900002
  • Figure 02910001
  • IVCmdUserWord::GetPhraseList
  • Die Methode IVCmdUserWord::GetPhraseList erfasst die Wörter im installierten Wörterbuch.
  • Figure 02910002
  • Figure 02920001
  • IVCmdUserWord::ModifyTraining
  • Die Methode IVCmduserWord::ModifyTraining erlaubt es einer Anwendung, zu spezifizieren, welche Schablonen für eine spezielle Phrase aktiviert werden.
  • Figure 02920002
  • Figure 02930001
  • Figure 02940001
  • 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.
  • Figure 02940002
  • Figure 02950001
  • IVCmdUserWord::Train
  • Die Methode IVCmdUserWord::Train wird von der Anwendung aufgerufen, um eine Liste benutzerdefinierter Phrasen zu trainieren.
  • Figure 02950002
  • Figure 02960001
  • IVoiceCmd
  • Die Schnittstelle IVoiceCmd registriert eine Anwendung bei einem Sprachbefehlsobjekt. Sie
    Figure 02970001
  • IVoiceCmd::CmdMimic
  • Die Methode IVoiceCmd::CmdMimic versorgt eine auf Sprache achtende Anwendung mit dem Äquivalent eines gesprochenen Sprachbefehls.
  • Figure 02970002
  • Figure 02980001
  • IVoiceCmd::MenuCreate
  • Die Methode IVoiceCmd::MenuCreate erzeugt ein Sprachmenüobjekt zum Repräsentieren eines neuen oder existierenden Sprachmenüs für eine Anwendung.
  • Figure 02990001
  • Figure 03000001
  • Figure 03010001
  • Figure 03020001
  • IVoiceCmd::MenuDelete
  • Die Methode IVoiceCmd::MenuDelete löscht ein Menü aus der Sprachmenü-Datenbank.
  • Figure 03020002
  • Figure 03030001
  • IVoiceCmd::MenuEnum
  • Die Methode IVoiceCmd::MenuEnum erzeugt eine Sprachmenü-Auflistung, die es einer Anwendung erlaubt, Menüs in der Sprachmenü-Datenbank aufzulisten.
  • Figure 03030002
  • Figure 03040001
  • Figure 03050001
  • 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.
  • Figure 03050002
  • Figure 03060001
  • Figure 03070001
  • Figure 03080001
  • Detaillierte Beschreibung von Datenstrukturen für eine Sprachbefehls-API
  • Kapitel 24
  • VCMDCOMMAND
  • Liefert Information zu einem Befehl in einem Sprachmenü.
  • Figure 03100001
  • Figure 03110001
  • Figure 03120001
  • Figure 03130001
  • Figure 03140001
  • Figure 03150001
  • VCMDNAME
  • Enthält Strings, die eindeutig die Anwendung und den Status kennzeichnen, zu denen ein Sprachmenü gehört.
  • Figure 03150002
  • Figure 03160001
  • VCSITEINFO
  • Liefert Information zum Audiogerät, zum Spracherkennungsmodus sowie andere Attribute einer Sprachbefehlssite.
  • Figure 03160002
  • Figure 03170001
  • 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.
  • Figure 03180001
  • Figure 03190001
  • Detaillierte Beschreibung einer Sprachbefehls-API für einen AutoPC
  • Kapitel 2
  • IAPCSpeech
  • Die Schnittstelle IAPCSpeech ist eine einfache AutoPC-Sprachschnittstelle auf hoher Ebene.
  • Figure 03210001
  • IAPCSpeech Methods
  • Figure 03210002
  • Figure 03220001
  • IAPCSpeech::AddRef,
  • Die Methode IAPCSpeech::AddRef inkrementiert den Bezugszählwert für eine Schnittstelle an einem Sprachobjekt.
  • Figure 03220002
  • IAPCSpeech::AddVMenuCommand
  • IAPCSpeech::AddVMenuCommand fügt zum Sprachmenu pMenu einen Befehl hinzu.
  • Figure 03230001
  • Figure 03240001
  • IAPCSpeech::AttribGet
  • IAPCSpeech::AttribGet erhält sprachbezogene Einstellungen.
  • Figure 03240002
  • IAPCSpeech::AttribSet
  • IAPCSpeech::AttribSet stellt sprachbezogene Einstellungen ein oder ändert sie.
  • Figure 03240003
  • IAPSpeech::CreateVMenu
  • IAPCSpeech::CreateMenu erzeugt ein Sprachmenü.
  • Figure 03250001
  • Figure 03260001
  • IAPCSpeech::QueryInterface
  • IAPCSpeech::QueryInterface liefert einen Zeiger auf eine Schnittstelle IAPCSpeech zurück.
  • Figure 03270001
  • IAPCSpeech:Release
  • Die Methode IAPCSpeech::Release dekrementiert den Bezugszählwert für die aufrufende Schnittstelle an einem Sprachobjekt.
  • Figure 03270002
  • IAPCSpeech::Speak
  • IAPCSpeech::Speak sagt oder spricht den in szTTS gespeicherten String unter Verwendung von TTS.
  • Figure 03270003
  • Figure 03280001
  • 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.
  • Figure 03280002
  • Figure 03290001
  • IAPCSpeech::VoiceHelpStop
  • IAPCSpeech::VoiceHelpStop wird von der Shell aufgerufen, um die Sprachhilfe zu stoppen.
  • Figure 03290002
  • CreateAPCSpeechObject
  • CreateAPCSpeechObject erzeugt ein AutoPCSprachobjekt.
  • Figure 03290003
  • Figure 03300001
  • Figure 03310001
  • 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.
  • Figure 03330001
  • Figure 03340001
  • OomUI CreateOomWindow
  • Die Funktion OomUI CreateOomWindow erzeugt den Speichermangeldialog.
  • Figure 03340002
  • 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.
  • Figure 03340003
  • Figure 03350001
  • OomUI Initialize
  • Die Funktion OomUI Initialize wird einmal aufgerufen, um die Speichermangel-Benutzerschnittstelle-Komponente zu initialisieren.
  • Figure 03350002
  • Figure 03360001
  • OomUI NotRespondingWndProc
  • Die Fensterprozedur für den Nichtantwortdialog.
  • Figure 03360002
  • OomUI OnShow
  • Die Funktion OomUI OnShow wird unmittelbar aufgerufen, bevor das Speichermangelfenster angezeigt wird.
  • Figure 03370001
  • OomUI OomWndProc
  • Die Fensterprozedur für den Speichermangeldialog.
  • Figure 03370002
  • Figure 03380001
  • OomUI SetWindowsInfo
  • Die Funktion OomUI SetWindowsInfo versorgt die Speichermangelkomponente mit Information betreffend die zu schließenden Fenster.
  • Figure 03380002
  • OomUICallBack CloseWindow
  • Die Funktion OomUICallback CloseWindow versucht, ein Fenster zu schließen.
  • Figure 03390001
  • OomUICallback IsCritical
  • Die Funktion OomUICallback IsCritical wird von Speichermangelkomponente aufgerufen, um zu bestimmen, ob der Speicher kritisch niedrig ist.
  • Figure 03400001
  • OomUICallback NonClientPaint
  • Die Funktion OomUICallback NonClientPaint wird von der Speichermangelkomponente aufgerufen, um die Nichtclient-Fläche mit "aktiven" Farben zu übermalen.
  • Figure 03400002
  • WINDOWINFO
  • Die Struktur WINDOWINFO definiert das Fensterhandle, den Fensterrahmen sowie Schließoptionen für ein Fenster.
  • Figure 03410001
  • 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.

Claims (6)

  1. Computersystem, aufweisend: einen Computer mit einem Prozessor (21) und einem Speicher (22), die miteinander verbunden sind, ein im Prozessor (21) ausgeführtes Betriebssystem (35) mit einer Ortsbestimmungskomponente, ein unter Steuerung durch das Betriebssystem (35) laufendes Anwendungsprogramm (36), und der Ortsbestimmungskomponente zugeordnete Anwendungsprogramm-Interfaces, deren Funktion dem Anwendungsprogramm erlaubt, die Ortsbestimmungskomponente zum Senden und Empfangen von Daten von einer Ortsbestimmungsvorrichtung zu veranlassen, wobei die Anwendungsprogramm-Interfaces aufweisen: ein erstes Interface zum Empfang eines ersten Vorrichtungs-Handle von einer Anwendung, wobei der erste Vorrichtungs-Handle auf die Ortsbestimmungsvorrichtung verweist, sowie zum Zurückgeben eines Statuswerts an die Anwendung, der angibt, ob die Ortsbestimmungsvorrichtung erfolgreich geschlossen wurde, ein zweites Interface zur Zurückgabe einer Liste an Ortsbestimmungsvorrichtungen an die Anwendung, und ein drittes Interface zum Empfang eines Ortsbestimmungsvorrichtungs-Profils von einer Anwendung und zur Rückgabe eines zweiten Vorrichtungs-Handle an die Anwendung, der die Ortsbestimmungsvorrichtung repräsentiert, wobei die Ortsbestimmungsvorrichtung in einen offenen Zustand versetzt wird.
  2. Computersystem nach Anspruch 1, wobei die Anwendungsprogramm-Interfaces aufweisen: ein viertes Interface zum Empfang eines ersten Handle für die Ortsbestimmungsvorrichtung und eines ersten Datentyps von einer Anwendung und zur Rückgabe eines auf dem ersten Datentyp basierenden Datenwerts an die Anwendung, und ein fünftes Interface zum Empfang eines zweiten Handle für die Ortsbestimmungsvorrichtung, eines Datenpuffers mit der Ortsbestimmungsvorrichtung zu sendenden Daten und eines zweiten Datentyps von der Anwendung, sowie zur Rückgabe eines Status an die Anwendung, der angibt, ob der Datenpuffer erfolgreich an die Ortsbestimmungsvorrichtung gesandt wurde.
  3. Computersystem nach Anspruch 2, wobei der erste Datentyp aus Position, Geschwindigkeit, Vorrichtungszustand, Zeit, Positionsgenauigkeit, Vorrichtungsprofil, Konfiguration, Einstellungen, Status eines differentiellen GPS und/oder Almanach besteht.
  4. Computersystem nach Anspruch 2 oder 3, wobei der zweite Datentyp aus Position, Geschwindigkeit, Vorrichtungszustand, Zeit, Positionsgenauigkeit, Vorrichtungsprofil, Konfiguration, Einstellungen, Status eines differentiellen GPS und/oder Almanach besteht.
  5. Computersystem nach Anspruch 1, wobei die Anwendungsprogramm-Interfaces aufweisen: ein sechstes Interface, um einen Vorrichtungs-Handle für die Ortsbestimmungsvorrichtung, einen Datentyp und eine Zeitspanne von der Anwendung zu empfangen und um die Ortsbestimmungskomponente zu veranlassen, in jeder. Zeitspanne einmal Daten, die auf dem Datentyp beruhen, von der Ortsbestimmungsvorrichtung zu gewinnen, und ein siebtes Interface, um einen zweiten Vorrichtungs-Handle für die Ortsbestimmungsvorrichtung und einen Datentyp von einer Anwendung zu empfangen und um die Ortsbestimmungskomponente zu veranlassen, das Gewinnen von Daten des vom Datentyp festgelegten Typs zu beenden.
  6. Computersystem nach Anspruch 1, wobei die Anwendungsprogramm-Interfaces außerdem ein achtes Interface zur Rückgabe der von der Ortsbestimmungsvorrichtung gelieferten Dienstqualität an eine Anwendung enthalten.
DE69908121T 1998-03-23 1999-03-22 Anwendungsprogrammierungsschnittstelle in einem betriebssystem Expired - Lifetime DE69908121T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7894698P 1998-03-23 1998-03-23
US78946P 1998-03-23
PCT/US1999/006223 WO1999049394A1 (en) 1998-03-23 1999-03-22 Application program interfaces in an operating system

Publications (2)

Publication Number Publication Date
DE69908121D1 DE69908121D1 (de) 2003-06-26
DE69908121T2 true DE69908121T2 (de) 2004-04-01

Family

ID=22147177

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69908121T Expired - Lifetime DE69908121T2 (de) 1998-03-23 1999-03-22 Anwendungsprogrammierungsschnittstelle in einem betriebssystem

Country Status (6)

Country Link
US (8) US6671745B1 (de)
EP (1) EP1073957B1 (de)
JP (5) JP4562910B2 (de)
AU (1) AU3109399A (de)
DE (1) DE69908121T2 (de)
WO (1) WO1999049394A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719778B2 (en) 2006-07-21 2014-05-06 Siemens Aktiengesellschaft Interconnection interface for flexible online/offline deployment of an n-layered software application

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
JP4562910B2 (ja) * 1998-03-23 2010-10-13 マイクロソフト コーポレーション オペレーティングシステムのアプリケーション・プログラム・インターフェース
US7137126B1 (en) * 1998-10-02 2006-11-14 International Business Machines Corporation Conversational computing via conversational virtual machine
IL130688A0 (en) * 1999-02-26 2000-06-01 Ibm Bidirectional network language support
TW503355B (en) * 1999-11-17 2002-09-21 Ibm System and method for communication with mobile data processing devices by way of ""mobile software agents""
CA2402389A1 (en) * 2000-03-08 2002-09-19 Shuffle Master, Inc. Computerized gaming system, method and apparatus
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
US7043641B1 (en) 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
US7310801B2 (en) 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6959330B1 (en) * 2000-05-16 2005-10-25 Palmsource, Inc. Sync-time read only memory image binding for limited resource devices
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
WO2002023330A2 (en) 2000-09-11 2002-03-21 Avantgo, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
US20020184348A1 (en) * 2000-09-20 2002-12-05 Lockheed Martin Corporation Object oriented framework architecture for sensing and/or control environments
EP1319203A2 (de) * 2000-09-20 2003-06-18 Lockheed Martin Corporation Objekt-orientierte strukturarchitektur für sensor- und/oder steuerungsumgebungen
US7185014B1 (en) * 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US20020065950A1 (en) * 2000-09-26 2002-05-30 Katz James S. Device event handler
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
US20020087603A1 (en) * 2001-01-02 2002-07-04 Bergman Eric D. Change tracking integrated with disconnected device document synchronization
US7325030B2 (en) * 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
US7231642B2 (en) 2001-03-19 2007-06-12 Mitsubishi Denki Kasbushiki Kaisha Vehicle-mounted multimedia device
US7020867B2 (en) * 2001-03-23 2006-03-28 S2 Technologies, Inc. System and method for automatically generating code templates for communication via a predefined communication interface
US7530076B2 (en) * 2001-03-23 2009-05-05 S2 Technologies, Inc. Dynamic interception of calls by a target device
US6928648B2 (en) * 2001-04-20 2005-08-09 Sun Microsystems, Inc. Method and apparatus for a mobile multimedia java framework
US20030005019A1 (en) * 2001-06-27 2003-01-02 Kuldipsingh Pabla Application frameworks for mobile devices
CA2463922C (en) 2001-06-27 2013-07-16 4 Media, Inc. Improved media delivery platform
US6993642B2 (en) 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
US6819960B1 (en) 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
US7931533B2 (en) * 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US6902481B2 (en) 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US20030079050A1 (en) * 2001-10-19 2003-04-24 Chang Cheng Tsung Computer system with parallel sever architecture
US7251812B1 (en) 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
WO2003045519A1 (en) 2001-11-26 2003-06-05 Igt Pass-through live validation device and method
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
FI114663B (fi) * 2001-12-20 2004-11-30 Nokia Corp Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
US7415270B2 (en) 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
US8079015B2 (en) 2002-02-15 2011-12-13 Telefonaktiebolaget L M Ericsson (Publ) Layered architecture for mobile terminals
US7363033B2 (en) 2002-02-15 2008-04-22 Telefonaktiebolaget Lm Ericsson (Publ) Method of and system for testing equipment during manufacturing
US7286823B2 (en) * 2002-02-15 2007-10-23 Telefonaktiebolaget Lm Ericsson (Publ) Mobile multimedia engine
US7536181B2 (en) 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) Platform system for mobile terminals
US7912930B1 (en) * 2002-02-21 2011-03-22 Oracle International Corporation System and method for resource provisioning
US7103671B2 (en) * 2002-03-14 2006-09-05 Yahoo! Inc. Proxy client-server communication system
US7181511B1 (en) * 2002-04-15 2007-02-20 Yazaki North America, Inc. System and method for using software objects to manage devices connected to a network in a vehicle
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7228526B2 (en) 2002-06-12 2007-06-05 Microsoft Corporation Application imaging infrastructure
KR100498051B1 (ko) * 2002-06-15 2005-07-01 삼성전자주식회사 외부 기기로부터 입력된 데이터의 처리가 가능한 휴대용정보 기기 및 그 방법
US7206851B2 (en) 2002-07-11 2007-04-17 Oracle International Corporation Identifying dynamic groups
US7428523B2 (en) * 2002-07-11 2008-09-23 Oracle International Corporation Portal bridge
US7478407B2 (en) * 2002-07-11 2009-01-13 Oracle International Corporation Supporting multiple application program interfaces
US7447701B2 (en) 2002-07-11 2008-11-04 Oracle International Corporation Automatic configuration of attribute sets
US7428592B2 (en) 2002-07-11 2008-09-23 Oracle International Corporation Securely persisting network resource identifiers
US7512585B2 (en) 2002-07-11 2009-03-31 Oracle International Corporation Support for multiple mechanisms for accessing data stores
US7467142B2 (en) * 2002-07-11 2008-12-16 Oracle International Corporation Rule based data management
US8375113B2 (en) 2002-07-11 2013-02-12 Oracle International Corporation Employing wrapper profiles
US20040054757A1 (en) * 2002-09-14 2004-03-18 Akinobu Ueda System for remote control of computer resources from embedded handheld devices
US7149510B2 (en) 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
US7350211B2 (en) 2002-09-23 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Middleware application environment
US7584471B2 (en) 2002-09-23 2009-09-01 Telefonaktiebolaget L M Ericsson (Publ) Plug-in model
US7389344B2 (en) * 2002-10-30 2008-06-17 American Megatrends, Inc. Methods and apparatus for utilizing scripts to interact with electronic information pages of remote devices
US7500092B2 (en) * 2003-01-17 2009-03-03 International Business Machines Corporation Hardware abstraction for set-top box operating systems
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
JP4433372B2 (ja) * 2003-06-18 2010-03-17 株式会社日立製作所 データアクセスシステム及び方法
US7822831B2 (en) * 2003-07-31 2010-10-26 International Business Machines Corporation Method, system and program product for preserving and restoring mobile device user settings
US7860966B2 (en) * 2003-09-23 2010-12-28 American Power Conversion Corporation User interface provisioning
US7340447B2 (en) * 2003-10-09 2008-03-04 Oracle International Corporation Partitioning data access requests
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7653915B1 (en) 2003-10-10 2010-01-26 Emc Corporation N X M platform combination
US7882488B2 (en) * 2003-10-20 2011-02-01 Robert Zeidman Software tool for synthesizing a real-time operating system
US7444621B2 (en) * 2004-02-20 2008-10-28 Microsoft Corporation Method and system for providing a common operating system
US20050197747A1 (en) * 2004-03-04 2005-09-08 Jason Rappaport In-vehicle computer system
US7249381B2 (en) * 2004-03-29 2007-07-24 Bryte Computer Technologies, Inc. Controller and resource management system and method with improved security for independently controlling and managing a computer system
US20050289554A1 (en) * 2004-06-14 2005-12-29 Nokia Corporation System and method for application management
US7802246B1 (en) * 2004-06-21 2010-09-21 Microsoft Corporation Systems and methods that facilitate software installation customization
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
GB0418766D0 (en) * 2004-08-23 2004-09-22 Koninkl Philips Electronics Nv A computer programmed with gps signal processing programs
US8744852B1 (en) * 2004-10-01 2014-06-03 Apple Inc. Spoken interfaces
CN1913377A (zh) * 2005-08-09 2007-02-14 乐金电子(昆山)电脑有限公司 还原网络设备连接状态的方法及其设备
US7848928B2 (en) * 2005-08-10 2010-12-07 Nuance Communications, Inc. Overriding default speech processing behavior using a default focus receiver
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9037152B1 (en) * 2005-11-12 2015-05-19 Alberto Herrera Small footprint real-time operating system for reactive systems
US8806363B1 (en) * 2005-11-22 2014-08-12 Google Inc. Framed user interface
US20110096174A1 (en) * 2006-02-28 2011-04-28 King Martin T Accessing resources based on capturing information from a rendered document
US20070266239A1 (en) * 2006-03-08 2007-11-15 David Vismans Method for providing a cryptographically signed command
US9038071B2 (en) * 2006-03-30 2015-05-19 Microsoft Technology Licensing, Llc Operating system context isolation of application execution
EP2047362A4 (de) * 2006-08-04 2010-12-29 Lectronix Inc Verfahren und system zur integration und steuerung von komponenten und subsystemen
US7681201B2 (en) * 2006-08-04 2010-03-16 Lectronix Method and system for integrating and controlling components and subsystems
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
EP2102753A4 (de) * 2006-12-22 2013-01-02 Elektrobit Wireless Comm Oy Elektronische einrichtung und computerprogramm
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US20080229319A1 (en) * 2007-03-08 2008-09-18 Benoit Marchand Global Resource Allocation Control
US8127310B1 (en) * 2007-03-26 2012-02-28 Celio Corporation Method and apparatus for dynamically switching display drivers in mobile device operating system
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8478861B2 (en) 2007-07-06 2013-07-02 Axeda Acquisition Corp. Managing distributed devices with limited connectivity
US9703784B2 (en) * 2007-12-24 2017-07-11 Sandisk Il Ltd. Mobile device and method for concurrently processing content according to multiple playlists
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8201029B2 (en) 2008-01-31 2012-06-12 International Business Machines Corporation Method and apparatus for operating system event notification mechanism using file system interface
US20090225040A1 (en) * 2008-03-04 2009-09-10 Microsoft Corporation Central resource for variable orientation user interface
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US7877456B2 (en) * 2008-04-08 2011-01-25 Post Dahl Co. Limited Liability Company Data file forwarding storage and search
US9418219B2 (en) * 2008-04-11 2016-08-16 Microsoft Technology Licensing, Llc Inter-process message security
US8138755B2 (en) * 2008-04-18 2012-03-20 Olympus Ndt Enhanced wireless eddy current probe for a non-destructive inspection system
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US8332365B2 (en) * 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US20100257529A1 (en) * 2009-04-06 2010-10-07 Christopher Wilkerson Efficient systems and methods for consuming and providing power
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8132057B2 (en) * 2009-08-07 2012-03-06 International Business Machines Corporation Automated transition to a recovery kernel via firmware-assisted-dump flows providing automated operating system diagnosis and repair
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8433828B2 (en) 2010-02-26 2013-04-30 Apple Inc. Accessory protocol for touch screen device accessibility
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR102516577B1 (ko) 2013-02-07 2023-04-03 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144949A2 (en) 2013-03-15 2014-09-18 Apple Inc. Training an at least partial voice command system
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3008641A1 (de) 2013-06-09 2016-04-20 Apple Inc. Vorrichtung, verfahren und grafische benutzeroberfläche für gesprächspersistenz über zwei oder mehrere instanzen eines digitaler assistenten
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10021737B2 (en) * 2013-09-17 2018-07-10 Qualcomm Incorporated Techniques for determining common characteristics of groups of wireless access points
US9690854B2 (en) * 2013-11-27 2017-06-27 Nuance Communications, Inc. Voice-enabled dialog interaction with web pages
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
EP3149728B1 (de) 2014-05-30 2019-01-16 Apple Inc. Eingabeverfahren durch einzelne äusserung mit mehreren befehlen
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US9948760B2 (en) 2015-06-26 2018-04-17 Honda Motor Co., Ltd. System and method for controlling vehicle network functions with version control
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US9892253B1 (en) 2016-06-20 2018-02-13 Amazon Technologies, Inc. Buffer overflow exploit detection
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
KR102508988B1 (ko) 2018-09-04 2023-03-09 현대모비스 주식회사 라이다 센싱장치

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807182A (en) * 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
DE3615767A1 (de) * 1986-05-10 1987-11-12 Bayer Ag Verfahren zur herstellung von 4-hydroxy-chinolin-3-carbonsaeuren
US5142619A (en) * 1990-02-21 1992-08-25 International Business Machines Corporation Method and apparatus for visually comparing files in a data processing system
US5278979A (en) * 1990-12-20 1994-01-11 International Business Machines Corp. Version management system using pointers shared by a plurality of versions for indicating active lines of a version
US5327555A (en) * 1991-02-14 1994-07-05 Hewlett-Packard Company Method for reconciling entries in a plurality of schedules
US5613056A (en) * 1991-02-19 1997-03-18 Bright Star Technology, Inc. Advanced tools for speech synchronized animation
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
US5301346A (en) * 1991-06-21 1994-04-05 Cad Forms Technology Inc. Method and apparatus for transferring data between a host device and plurality of portable computers
US5274819A (en) * 1992-03-27 1993-12-28 Central Point Software, Inc. Management system for memory resident computer programs
US5392390A (en) * 1992-04-10 1995-02-21 Intellilink Corp. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5384890A (en) * 1992-09-30 1995-01-24 Apple Computer, Inc. Method and apparatus for providing multiple clients simultaneous access to a sound data stream
US5983179A (en) * 1992-11-13 1999-11-09 Dragon Systems, Inc. Speech recognition system which turns its voice response on for confirmation when it has been turned off without confirmation
US6092043A (en) * 1992-11-13 2000-07-18 Dragon Systems, Inc. Apparatuses and method for training and operating speech recognition systems
US5428707A (en) * 1992-11-13 1995-06-27 Dragon Systems, Inc. Apparatus and methods for training speech recognition systems and their users and otherwise improving speech recognition performance
JP3279684B2 (ja) * 1992-11-17 2002-04-30 株式会社日立製作所 音声インタフェース・ビルダ・システム
US5666530A (en) * 1992-12-02 1997-09-09 Compaq Computer Corporation System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
US6311157B1 (en) 1992-12-31 2001-10-30 Apple Computer, Inc. Assigning meanings to utterances in a speech recognition system
CA2115210C (en) * 1993-04-21 1997-09-23 Joseph C. Andreshak Interactive computer system recognizing spoken commands
JPH0798669A (ja) 1993-08-05 1995-04-11 Hitachi Ltd 分散データベース管理システム
US5408470A (en) * 1993-10-14 1995-04-18 Intel Corporation Deferred synchronization of distributed objects
JP2866591B2 (ja) 1994-01-10 1999-03-08 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジエクトの使用可能性の通知方法及び装置
JPH07219587A (ja) * 1994-01-28 1995-08-18 Canon Inc 音声処理装置および方法
US5699244A (en) * 1994-03-07 1997-12-16 Monsanto Company Hand-held GUI PDA with GPS/DGPS receiver for collecting agronomic and GPS position data
US5592588A (en) * 1994-05-10 1997-01-07 Apple Computer, Inc. Method and apparatus for object-oriented digital audio signal processing using a chain of sound objects
US5897640A (en) * 1994-08-08 1999-04-27 Microsoft Corporation Method and system of associating, synchronizing and reconciling computer files in an operating system
US5669061A (en) * 1994-08-19 1997-09-16 Trimble Navigation Limited Automatic cellular phone tracking
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
CA2136154C (en) * 1994-11-18 1999-08-24 Jay William Benayon User control of multiple memory heaps
US5893125A (en) 1995-01-27 1999-04-06 Borland International, Inc. Non-modal database system with methods for incremental maintenance
DE69637733D1 (de) * 1995-02-13 2008-12-11 Intertrust Tech Corp Systeme und verfahren für ein sicheres übertragung
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
JP3271466B2 (ja) * 1995-03-20 2002-04-02 富士通株式会社 読み上げ装置
US5724506A (en) * 1995-05-05 1998-03-03 Apple Computer, Inc. Replaceable and extensible connection dialog component of a network component system
JP3592803B2 (ja) * 1995-07-28 2004-11-24 株式会社東芝 音声認識装置および音声認識方法
US5812848A (en) * 1995-08-23 1998-09-22 Symantec Corporation Subclassing system for computer that operates with portable-executable (PE) modules
DE19533541C1 (de) * 1995-09-11 1997-03-27 Daimler Benz Aerospace Ag Verfahren zur automatischen Steuerung eines oder mehrerer Geräte durch Sprachkommandos oder per Sprachdialog im Echtzeitbetrieb und Vorrichtung zum Ausführen des Verfahrens
US5832496A (en) 1995-10-12 1998-11-03 Ncr Corporation System and method for performing intelligent analysis of a computer database
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5778389A (en) * 1996-05-23 1998-07-07 Electronic Data Systems Corporation Method and system for synchronizing computer file directories
US5857201A (en) * 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US6138271A (en) * 1996-06-26 2000-10-24 Rockwell Technologies, Llc Operating system for embedded computers
GB2314671A (en) * 1996-06-26 1998-01-07 Gen Electric Electrodeless fluorescent lamp
US5999125A (en) * 1996-07-31 1999-12-07 Motorola, Inc. Method and apparatus for a global positioning data service
US5974238A (en) * 1996-08-07 1999-10-26 Compaq Computer Corporation Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
EP0923708A1 (de) * 1996-09-06 1999-06-23 University Of Florida Tragbares handgerät zur verwaltung digitaler geographischer daten
US5850629A (en) * 1996-09-09 1998-12-15 Matsushita Electric Industrial Co., Ltd. User interface controller for text-to-speech synthesizer
US6018743A (en) * 1996-10-04 2000-01-25 International Business Machines Corporation Framework for object-oriented interface to record file data
US5790114A (en) * 1996-10-04 1998-08-04 Microtouch Systems, Inc. Electronic whiteboard with multi-functional user interface
WO1998017990A1 (en) * 1996-10-18 1998-04-30 Westinghouse Savannah River Company Programmable atmospheric sampling systems and methods
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US5893913A (en) * 1996-11-12 1999-04-13 International Business Machines Corporation Method for synchronizing classes, objects, attributes and object properties across an object-oriented system
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US5926566A (en) * 1996-11-15 1999-07-20 Synaptics, Inc. Incremental ideographic character input method
US6006274A (en) * 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US5813042A (en) * 1997-02-19 1998-09-22 International Business Machines Corp. Methods and systems for control of memory
US5883594A (en) * 1997-02-20 1999-03-16 Trimble Navigation Limited GPS receiver using a message system for reducing power consumption
US6078886A (en) * 1997-04-14 2000-06-20 At&T Corporation System and method for providing remote automatic speech recognition services via a packet network
US5920283A (en) * 1997-05-09 1999-07-06 Conexant Systems, Inc. Receiver engine for global positioning system
US6023712A (en) * 1997-07-30 2000-02-08 Quarterdeck Corporation Method and apparatus for brokering memory resources
US6067852A (en) * 1997-08-26 2000-05-30 University Corporation For Atmospheric Research Method and apparatus using slant-path water delay estimates to correct global positioning satellite survey error
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US6128713A (en) * 1997-09-24 2000-10-03 Microsoft Corporation Application programming interface enabling application programs to control allocation of physical memory in a virtual memory system
US6373504B1 (en) * 1997-09-30 2002-04-16 Sun Microsystems, Inc. Local sorting of downloaded tables
US6125369A (en) * 1997-10-02 2000-09-26 Microsoft Corporation Continuous object sychronization between object stores on different computers
US5949372A (en) * 1997-10-03 1999-09-07 Trimble Navigation Limited Signal injection for calibration of pseudo-range errors in satellite positioning system receivers
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6272545B1 (en) * 1997-10-24 2001-08-07 Microsoft Corporation System and method for interaction between one or more desktop computers and one or more mobile devices
US6442570B1 (en) * 1997-10-27 2002-08-27 Microsoft Corporation Object identification and data communication during an object synchronization process
US6072431A (en) * 1997-11-13 2000-06-06 Trimble Navigation Limited Extensible GPS receiver system
US6081806A (en) * 1998-01-15 2000-06-27 Inventec Corporation Computer database synchronization method
JP3927304B2 (ja) * 1998-02-13 2007-06-06 トヨタ自動車株式会社 ナビゲーション用地図データアクセス方法
GB2334355A (en) * 1998-02-14 1999-08-18 Ibm Storage manager which sets the size of an initial-free area assigned to a requesting application according to statistical data
JP4562910B2 (ja) * 1998-03-23 2010-10-13 マイクロソフト コーポレーション オペレーティングシステムのアプリケーション・プログラム・インターフェース
US6289357B1 (en) * 1998-04-24 2001-09-11 Platinum Technology Ip, Inc. Method of automatically synchronizing mirrored database objects
JP3175692B2 (ja) * 1998-04-28 2001-06-11 日本電気株式会社 コンピュータと携帯端末間のデータ連携システム及びそのデータ連携方法
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
WO2000004564A1 (en) * 1998-07-16 2000-01-27 Mitsubishi Denki Kabushiki Kaisha Synchronous switchgear
US6185484B1 (en) * 1998-08-05 2001-02-06 Eaton Corporation Method of operating a motor vehicle management computer system
US6253215B1 (en) * 1998-08-17 2001-06-26 Sun Microsystems Method, apparatus, and article of manufacture for facilitating resource management for applications having two types of program code
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6408313B1 (en) * 1998-12-16 2002-06-18 Microsoft Corporation Dynamic memory allocation based on free memory size
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6430570B1 (en) 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
US6430576B1 (en) * 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6434602B1 (en) * 1999-09-27 2002-08-13 Natyou Computer Communication Corporation Method, apparatus and article of manufacture for accessing electronic messages
US6505214B1 (en) * 1999-09-28 2003-01-07 Microsoft Corporation Selective information synchronization based on implicit user designation
US6636897B1 (en) * 1999-09-28 2003-10-21 Microsoft Corporation Selective information subset synchronization based on single user action
US6449541B1 (en) * 2000-10-17 2002-09-10 Microsoft Corporation Application-to-component communications helper in a vehicle computer system
US6458007B1 (en) * 2001-04-19 2002-10-01 Larry Verner Balloon holder
US7075550B2 (en) * 2001-11-27 2006-07-11 Bonadio Allan R Method and system for graphical file management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719778B2 (en) 2006-07-21 2014-05-06 Siemens Aktiengesellschaft Interconnection interface for flexible online/offline deployment of an n-layered software application

Also Published As

Publication number Publication date
US7472067B2 (en) 2008-12-30
DE69908121D1 (de) 2003-06-26
JP5852078B2 (ja) 2016-02-03
JP5937533B2 (ja) 2016-06-22
US20050071855A1 (en) 2005-03-31
JP2012208508A (ja) 2012-10-25
JP4562910B2 (ja) 2010-10-13
JP2013164601A (ja) 2013-08-22
US6704807B1 (en) 2004-03-09
EP1073957B1 (de) 2003-05-21
US20050108218A1 (en) 2005-05-19
EP1073957A1 (de) 2001-02-07
US6832381B1 (en) 2004-12-14
US20050097577A1 (en) 2005-05-05
JP2009140521A (ja) 2009-06-25
US20050102687A1 (en) 2005-05-12
WO1999049394A1 (en) 1999-09-30
US7802266B2 (en) 2010-09-21
JP2014067421A (ja) 2014-04-17
JP2002508545A (ja) 2002-03-19
US6671745B1 (en) 2003-12-30
AU3109399A (en) 1999-10-18
US20050066340A1 (en) 2005-03-24

Similar Documents

Publication Publication Date Title
DE69908121T2 (de) Anwendungsprogrammierungsschnittstelle in einem betriebssystem
DE102016125508B4 (de) Auffindbarkeitssystem für Sprachaktionen
DE10114894B4 (de) Softwareverarbeitungsvorrichtung, Softwareverarbeitungsverfahren und Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist
DE19940210B4 (de) Verfahren zum Herstellen eines Computersystems und zum Modifizieren einer grafischen Benutzeroberfläche, die von einem Betriebssystem kontrolliert wird
CN1030804C (zh) 应用多维数据图符的方法与设备
DE112019001533T5 (de) Erweiterung von trainingsdaten für die klassifikation von natürlicher sprache
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
US20040003091A1 (en) Accessing a remote iSeries or AS/400 computer system from an integrated development environment
DE102017122308A1 (de) Kontextabhängige einfügeziel-vorhersage
CA2391717A1 (en) Transferring data and storing metadata across a network
DE19847133A1 (de) System und Verfahren zum Aktualisieren von Zuordnungen von Partitionen zu logischen Laufwerken in einem Computerspeichergerät
DE112010005475T5 (de) Erweiterbarkeit der Suche auf Anwendungen Dritter
DE102021000736A1 (de) Modellbasierte semantische Textsuche
DE112021003943T5 (de) Sprachantwortsysteme auf Grundlage eines personalisierten Wortschatzes und einer Benutzerprofilerstellung - Personalisierte linguistische KI-Engines
DE10120867B4 (de) Computersystem, Verfahren zum Betrieb eines Computersystems, sowie Maschinenlesbare Speichervorrichtung
KR101002486B1 (ko) 수기 인식 개인화 시스템 및 방법
DE602004008151T2 (de) Verfahren und Einrichtung zur Abhängigkeitsauflösung von Client angefragten Ladevorgang
US6389591B1 (en) Method and apparatus for determining preferred controls for an upgradable operating system
DE60213969T2 (de) Vorrichtung und verfahren für lightweight unterstützung in einer set top box
EP0520926A2 (de) Verfahren und Gerät für Klasseninformationsverwaltung
DE19939803A1 (de) Betriebssystem für die Verarbietung von dynamischen und statischen Tasks
DE10331550A1 (de) Computersystem mit anlegbarer Tastatur und Wechselanzeigefunktionen und Verarbeitungsverfahren davon
EP1691274B1 (de) Verfahren und Vorrichtung zum rechnergestützten Erzeugen einer graphischen Benutzeroberfläche auf einem Anzeigemittel
Barker et al. Integrated Information Support System (IISS). Volume 8. User Interface Subsystem. Part 6. Forms Processor User's Manual
Lester et al. Felix, an object-oriented operating system

Legal Events

Date Code Title Description
8364 No opposition during term of opposition