diff --git a/resources/build/help-keyman-com.sh b/resources/build/help-keyman-com.sh index f096a4508a..ce68df0a85 100755 --- a/resources/build/help-keyman-com.sh +++ b/resources/build/help-keyman-com.sh @@ -93,6 +93,7 @@ function upload_keyman_help { windows) # Note: `/windows/src/desktop/help/build.sh web` must be run first upload windows/bin/help/md/desktop products/windows/$VERSION_RELEASE + upload windows/help/engine developer/engine/windows/$VERSION_RELEASE ;; developer) # Note: `/developer/build.sh api` must be run first - covers both uploads diff --git a/windows/docs/engine/api/IKeyman/Apply.md b/windows/docs/engine/api/IKeyman/Apply.md new file mode 100644 index 0000000000..2a82753af6 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Apply.md @@ -0,0 +1,18 @@ +--- +title: IKeyman::Apply Method +--- + +## Introduction + +The `IKeyman::Apply` method applies the changes which have been made +through the current API instantiation to the Keyman Engine. If +[`IKeyman::AutoApply`](AutoApply) is set to `False`, `Apply` must be +called after making changes through the Keyman API. The documentation +for each method that makes changes documents whether or not `Apply` +needs to be called. + +## Specification + +``` clike +void Apply(void) +``` diff --git a/windows/docs/engine/api/IKeyman/AutoApply.md b/windows/docs/engine/api/IKeyman/AutoApply.md new file mode 100644 index 0000000000..644a961eb4 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/AutoApply.md @@ -0,0 +1,21 @@ +--- +title: IKeyman::AutoApply Property +--- + +## Introduction + +The `IKeyman::AutoApply` property determines if the API will apply +changes automatically to the Keyman Engine after each change is made. +Some changes are applied immediately, such as installing a keyboard +layout. However other changes will not be applied unless the +[`Apply`](Apply) method is called, or unless `AutoApply` is set to +`True`. The documentation for each method that makes changes documents +whether or not `Apply` needs to be called. + +`AutoApply` defaults to `True`. + +## Specification + +``` clike +bool AutoApply +``` diff --git a/windows/docs/engine/api/IKeyman/Control.md b/windows/docs/engine/api/IKeyman/Control.md new file mode 100644 index 0000000000..85f1c59a84 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Control.md @@ -0,0 +1,16 @@ +--- +title: IKeyman::Control Property +--- + +## Introduction + +The `IKeyman::Control` property returns the Keyman +[`IKeymanControl`](../IKeymanControl) interface which provides methods +to control various aspects of the Keyman process and user interface +interactions. + +## Specification + +``` clike +readonly IKeymanControl* Control +``` diff --git a/windows/docs/engine/api/IKeyman/Errors.md b/windows/docs/engine/api/IKeyman/Errors.md new file mode 100644 index 0000000000..d580983d59 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Errors.md @@ -0,0 +1,18 @@ +--- +title: IKeyman::Errors Property +--- + +## Introduction + +The `IKeyman::Errors` property returns the Keyman +[`IKeymanErrors`](../IKeymanErrors) interface which provides a list of +errors encountered by the Keyman API, for example when installing a +keyboard or package. When the Keyman API raises an exception, e.g. when +trying to install a corrupt package file, there may be additional +details available in the `Errors` collection. + +## Specification + +``` clike +readonly IKeymanErrors* Errors +``` diff --git a/windows/docs/engine/api/IKeyman/Hotkeys.md b/windows/docs/engine/api/IKeyman/Hotkeys.md new file mode 100644 index 0000000000..410f23e543 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Hotkeys.md @@ -0,0 +1,17 @@ +--- +title: IKeyman::Hotkeys Property +--- + +## Introduction + +The `IKeyman::Hotkeys` property returns the Keyman +[`IKeymanHotkeys`](../IKeymanHotkeys) interface which provides a list of +configured user interface hotkeys. Hotkeys for activating a specific +keyboard layout are not listed here; these are visible under the +[`IKeymanLanguage::Hotkey`](../IKeymanLanguage/Hotkey) property. + +## Specification + +``` clike +readonly IKeymanHotkeys* Hotkeys +``` diff --git a/windows/docs/engine/api/IKeyman/Keyboards.md b/windows/docs/engine/api/IKeyman/Keyboards.md new file mode 100644 index 0000000000..8b4c86caf7 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Keyboards.md @@ -0,0 +1,15 @@ +--- +title: IKeyman::Keyboards Property +--- + +## Introduction + +The `IKeyman::Keyboards` property returns the Keyman +[`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) interface +which provides a list of installed Keyman keyboards. + +## Specification + +``` clike +readonly IKeymanKeyboardsInstalled* Keyboards +``` diff --git a/windows/docs/engine/api/IKeyman/Languages.md b/windows/docs/engine/api/IKeyman/Languages.md new file mode 100644 index 0000000000..6548f1607e --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Languages.md @@ -0,0 +1,15 @@ +--- +title: IKeyman::Languages Property +--- + +## Introduction + +The `IKeyman::Languages` property returns the Keyman +[`IKeymanLanguages`](../IKeymanLanguages) interface which provides a +list of all currently available Windows languages and input methods. + +## Specification + +``` clike +readonly IKeymanLanguages* Languages +``` diff --git a/windows/docs/engine/api/IKeyman/Options.md b/windows/docs/engine/api/IKeyman/Options.md new file mode 100644 index 0000000000..e6e61fdd79 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Options.md @@ -0,0 +1,15 @@ +--- +title: IKeyman::Options Property +--- + +## Introduction + +The `IKeyman::Options` property returns the Keyman +[`IKeymanOptions`](../IKeymanOptions) interface which provides a list of +configuration settings and values in Keyman Engine for Windows. + +## Specification + +``` clike +readonly IKeymanOptions* Options +``` diff --git a/windows/docs/engine/api/IKeyman/Packages.md b/windows/docs/engine/api/IKeyman/Packages.md new file mode 100644 index 0000000000..2f43648051 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Packages.md @@ -0,0 +1,15 @@ +--- +title: IKeyman::Packages Property +--- + +## Introduction + +The `IKeyman::Packages` property returns the Keyman +[`IKeymanPackagesInstalled`](../IKeymanPackagesInstalled) interface +which provides a list of installed Keyman keyboard packages. + +## Specification + +``` clike +readonly IKeymanPackagesInstalled* Packages +``` diff --git a/windows/docs/engine/api/IKeyman/Refresh.md b/windows/docs/engine/api/IKeyman/Refresh.md new file mode 100644 index 0000000000..37f2021b8c --- /dev/null +++ b/windows/docs/engine/api/IKeyman/Refresh.md @@ -0,0 +1,19 @@ +--- +title: IKeyman::Refresh Method +--- + +## Introduction + +When the `CoKeyman` object is instantiated, the Keyman API takes a +snapshot of the installed keyboards and various settings in Keyman +Engine. The `IKeyman::Refresh` method refreshes this snapshot with the +current Keyman and system configuration. After `Refresh` is called, any +references to interfaces held by the API consumer must be discarded, as +the API implementation releases them and creates new instances, even if +the object in question has had no changes. + +## Specification + +``` clike +void Refresh(void) +``` diff --git a/windows/docs/engine/api/IKeyman/SystemInfo.md b/windows/docs/engine/api/IKeyman/SystemInfo.md new file mode 100644 index 0000000000..135960650d --- /dev/null +++ b/windows/docs/engine/api/IKeyman/SystemInfo.md @@ -0,0 +1,15 @@ +--- +title: IKeyman::SystemInfo Property +--- + +## Introduction + +The `IKeyman::SystemInfo` property returns the Keyman +[`IKeymanSystemInfo`](../IKeymanSystemInfo) interface which describes +the current system configuration. + +## Specification + +``` clike +readonly IKeymanSystemInfo* SystemInfo +``` diff --git a/windows/docs/engine/api/IKeyman/index.md b/windows/docs/engine/api/IKeyman/index.md new file mode 100644 index 0000000000..15b1bb2a07 --- /dev/null +++ b/windows/docs/engine/api/IKeyman/index.md @@ -0,0 +1,92 @@ +--- +title: IKeyman Interface +--- + +## Introduction + +The `IKeyman` interface is the top-level interface for the Keyman Engine +for Windows API. The `IKeyman` interface can be instantiated with the +`CoKeyman` coclass; it will also be returned from a call to +`CreateObject("kmcomapi.Keyman")`. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeyman`** + +## Properties + +[`AutoApply`](AutoApply) +: Determines whether settings changes are applied to Keyman Engine + automatically as they are made. + +[`Control`](Control) read only +: Returns an [`IKeymanControl`](../IKeymanControl) interface that + provides methods for controlling the Keyman process and user + interface. + +[`Errors`](Errors) read only +: Returns an [`IKeymanErrors`](../IKeymanErrors) interface that lists + errors that the API incurred when undertaking various processes. + +[`Hotkeys`](Hotkeys) read only +: Returns an [`IKeymanHotkeys`](../IKeymanHotkeys) interface that + lists all of the configured interface hotkeys. + +[`Keyboards`](Keyboards) read only +: Returns an + [`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) + interface that lists all of the currently installed Keyman + keyboards. + +[`Languages`](Languages) read only +: Returns an [`IKeymanLanguages`](../IKeymanLanguages) interface that + lists all of the currently avilable Windows languages and input + methods. + +[`Options`](Options) read only +: Returns an [`IKeymanOptions`](../IKeymanOptions) interface that + lists all of the configuration settings and values for Keyman + Engine. + +[`Packages`](Packages) read only +: Returns an [`IKeymanPackagesInstalled`](../IKeymanPackagesInstalled) + interface that lists all of the currently installed Keyman packages. + +[`SystemInfo`](SystemInfo) read only +: Returns an [`IKeymanSystemInfo`](../IKeymanSystemInfo) interface + that describes the current system configuration. + +## Methods + +[`Apply()`](Apply) +: Apply all settings changes to Keyman Engine. + +[`Refresh()`](Refresh) +: Refresh the snapshot of keyboards and settings which is captured + when the object is instantiated. + +## Examples + +### VBScript + +This example can be saved with a .vbs extension to run through Windows +Scripting. This is similar to the uninstall script that Keyman Desktop +generates for packages which have a Start Menu Uninstall entry. + +``` basic +dim kmcom, package +Set kmcom = CreateObject("keymanapi.Keyman") +n = kmcom.Packages.IndexOf("SamplePackage") +if n >= 0 then + Set package = kmcom.Packages(n) + if msgbox("Uninstall package "+package.Description+"?", vbOKCancel, "Keyman Desktop") = vbOK then + package.Uninstall(True) + end if +else + msgbox "The package SamplePackage could not be found." +end if +``` diff --git a/windows/docs/engine/api/IKeymanBCP47Canonicalization/GetCanonicalTag.md b/windows/docs/engine/api/IKeymanBCP47Canonicalization/GetCanonicalTag.md new file mode 100644 index 0000000000..1c7f6ab001 --- /dev/null +++ b/windows/docs/engine/api/IKeymanBCP47Canonicalization/GetCanonicalTag.md @@ -0,0 +1,28 @@ +--- +title: IKeymanBCP47Canonicalization::GetCanonicalTag Method +--- + +## Introduction + +The `IKeymanBCP47Canonicalization::GetCanonicalTag` method returns a +canonical tag according to data from [SIL +langtags.json](https://github.com/silnrsi/langtags). The method will +convert ISO639-3 language tags, ISO639-1 language tags, remove +suppressed script tags, and append a default region if one is not +present. + +**Note:** This tag may not always be identical to a Windows canonical +tag. A region subtag may be present in the canonical tag which may later +be removed by Windows, if Windows believes the language is used in only +one region. + +## Specification + +``` clike +string GetCanonicalTag(string Tag) +``` + +## Parameters + +`Tag` +: The BCP 47 tag to canonicalize. diff --git a/windows/docs/engine/api/IKeymanBCP47Canonicalization/index.md b/windows/docs/engine/api/IKeymanBCP47Canonicalization/index.md new file mode 100644 index 0000000000..1dae3965d0 --- /dev/null +++ b/windows/docs/engine/api/IKeymanBCP47Canonicalization/index.md @@ -0,0 +1,26 @@ +--- +title: IKeymanBCP47Canonicalization Interface +--- + +## Introduction + +The `IKeymanBCP47Canonicalization` interface adds functions for +canonicalizing BCP 47 tags. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanBCP47Canonicalization`** + + +## Methods + +[`GetCanonicalTag()`](GetCanonicalTag) +: Finds a canonical tag according to data from SIL langtags.json. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanCollection/Count.md b/windows/docs/engine/api/IKeymanCollection/Count.md new file mode 100644 index 0000000000..02721f38d6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanCollection/Count.md @@ -0,0 +1,14 @@ +--- +title: IKeymanCollection::Count Property +--- + +## Introduction + +The `IKeymanCollection::Count` property returns the number of elements +in the collection. + +## Specification + +``` clike +readonly long Count +``` diff --git a/windows/docs/engine/api/IKeymanCollection/Refresh.md b/windows/docs/engine/api/IKeymanCollection/Refresh.md new file mode 100644 index 0000000000..2a34d5e2a6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanCollection/Refresh.md @@ -0,0 +1,21 @@ +--- +title: IKeymanCollection::Refresh() Method +--- + +## Introduction + +The `IKeymanCollection::Refresh()` method refreshes the collection. All +existing elements in the collection are invalidated, even if nothing has +changed. + +Generally, it is better to call the top-level +[`IKeyman::Refresh`](../IKeyman/Refresh) as that will ensure that the +Keyman API snapshot is internally consistent. See +[`IKeyman::Refresh`](../IKeyman/Refresh) for more information on Keyman +API snapshots. + +## Specification + +``` clike +void Refresh(void) +``` diff --git a/windows/docs/engine/api/IKeymanCollection/_NewEnum.md b/windows/docs/engine/api/IKeymanCollection/_NewEnum.md new file mode 100644 index 0000000000..615a8d130c --- /dev/null +++ b/windows/docs/engine/api/IKeymanCollection/_NewEnum.md @@ -0,0 +1,17 @@ +--- +title: IKeymanCollection::_NewEnum() Method +--- + +## Introduction + +The `IKeymanCollection::_NewEnum()` method instantiates an enumerator +for the collection. This is required for COM enumeration of the +collection. Generally, languages provide a method of iterating over a +collection that uses `_NewEnum()` internally, and you will not be +required to call this directly. + +## Specification + +``` clike +IUnknown* _NewEnum(void) +``` diff --git a/windows/docs/engine/api/IKeymanCollection/index.md b/windows/docs/engine/api/IKeymanCollection/index.md new file mode 100644 index 0000000000..897aac294f --- /dev/null +++ b/windows/docs/engine/api/IKeymanCollection/index.md @@ -0,0 +1,61 @@ +--- +title: IKeymanCollection Interface +--- + +## Introduction + +The `IKeymanCollection` interface is the base interface for all +collections in Keyman Engine for Windows API. The `Items[]` property is +implemented in sub-interfaces. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanCollection`** +> > +> > > [`IKeymanErrors`](../IKeymanErrors) +> > > [`IKeymanHotkeys`](../IKeymanHotkeys) +> > > [`IKeymanKeyboardLanguages`](../IKeymanKeyboardLanguages) +> > > +> > > > [`IKeymanKeyboardLanguagesFile`](../IKeymanKeyboardLanguagesFile) +> > > > [`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) +> > > > +> > > > > [`IKeymanKeyboardLanguagesInstalled2`](../IKeymanKeyboardLanguagesInstalled2) +> > > +> > > [`IKeymanKeyboardOptions`](../IKeymanKeyboardOptions) +> > > [`IKeymanKeyboards`](../IKeymanKeyboards) +> > > +> > > > [`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) +> > > > +> > > > > [`IKeymanKeyboardsInstalled2`](../IKeymanKeyboardsInstalled2) +> > > > +> > > > [`IKeymanPackageContentKeyboards`](../IKeymanPackageContentKeyboards) +> > > +> > > [`IKeymanLanguages`](../IKeymanLanguages) +> > > [`IKeymanOptions`](../IKeymanOptions) +> > > [`IKeymanPackageContentFiles`](../IKeymanPackageContentFiles) +> > > [`IKeymanPackageContentFonts`](../IKeymanPackageContentFonts) +> > > [`IKeymanPackagesInstalled`](../IKeymanPackagesInstalled) +> > > +> > > > [`IKeymanPackagesInstalled2`](../IKeymanPackagesInstalled2) + + +## Properties + +[`Count`](Count) read only +: Returns the number of items in the collection. + +## Methods + +[`_NewEnum()`](_NewEnum) +: Instantiates an enumerator for the collection. This is required for + COM enumeration of the collection. + + + +[`Refresh()`](Refresh) +: Refreshes the collection from the current Keyman Engine + configuration. diff --git a/windows/docs/engine/api/IKeymanControl/ActiveLanguage.md b/windows/docs/engine/api/IKeymanControl/ActiveLanguage.md new file mode 100644 index 0000000000..9c642a0b53 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/ActiveLanguage.md @@ -0,0 +1,17 @@ +--- +title: IKeymanControl::ActiveLanguage Property +--- + +## Introduction + +The `IKeymanControl::ActiveLanguage` property sets or returns the last +active [`IKeymanLanguage`](../IKeymanLanguage) for the current thread. + +This is a convenience wrapper for the Windows +`ITfInputProcessorProfileMgr::ActivateProfile` method. + +## Specification + +``` clike +IKeymanLanguage* ActiveLanguage +``` diff --git a/windows/docs/engine/api/IKeymanControl/IsConfigurationOpen.md b/windows/docs/engine/api/IKeymanControl/IsConfigurationOpen.md new file mode 100644 index 0000000000..6db0da2834 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/IsConfigurationOpen.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::IsConfigurationOpen() Method +--- + +## Introduction + +The `IKeymanControl::IsConfigurationOpen()` method returns `True` if +Keyman Configuration is currently running. + +## Specification + +``` clike +bool IsConfigurationOpen(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/IsKeymanRunning.md b/windows/docs/engine/api/IKeymanControl/IsKeymanRunning.md new file mode 100644 index 0000000000..37fd918f5c --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/IsKeymanRunning.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::IsKeymanRunning() Method +--- + +## Introduction + +The `IKeymanControl::IsKeymanRunning()` method returns `True` if Keyman +Engine is currently running. + +## Specification + +``` clike +bool IsKeymanRunning(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/IsOnlineUpdateCheckOpen.md b/windows/docs/engine/api/IKeymanControl/IsOnlineUpdateCheckOpen.md new file mode 100644 index 0000000000..3201b3ce92 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/IsOnlineUpdateCheckOpen.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::IsOnlineUpdateCheckOpen() Method +--- + +## Introduction + +The `IKeymanControl::IsOnlineUpdateCheckOpen()` method returns `True` if +the Keyman Desktop online update check tool is currently running. + +## Specification + +``` clike +bool IsOnlineUpdateCheckOpen(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/IsTextEditorOpen.md b/windows/docs/engine/api/IKeymanControl/IsTextEditorOpen.md new file mode 100644 index 0000000000..e339289e40 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/IsTextEditorOpen.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::IsTextEditorOpen() Method +--- + +## Introduction + +The `IKeymanControl::IsTextEditorOpen()` method returns `True` if the +Keyman Desktop text editor is currently running. + +## Specification + +``` clike +bool IsTextEditorOpen(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/IsVisualKeyboardOpen.md b/windows/docs/engine/api/IKeymanControl/IsVisualKeyboardOpen.md new file mode 100644 index 0000000000..f39a98d7c9 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/IsVisualKeyboardOpen.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::IsVisualKeyboardOpen() Method +--- + +## Introduction + +The `IKeymanControl::IsVisualKeyboardOpen()` method returns `True` if +the on screen keyboard is running. + +## Specification + +``` clike +bool IsVisualKeyboardOpen(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/LastActiveWindow.md b/windows/docs/engine/api/IKeymanControl/LastActiveWindow.md new file mode 100644 index 0000000000..52faabdb8d --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/LastActiveWindow.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::LastActiveWindow Property +--- + +## Introduction + +The `IKeymanControl::LastActiveWindow` property returns the last active +window handle, excluding Keyman windows such as the On Screen Keyboard. + +## Specification + +``` clike +readonly long LastActiveWindow +``` diff --git a/windows/docs/engine/api/IKeymanControl/LastFocusWindow.md b/windows/docs/engine/api/IKeymanControl/LastFocusWindow.md new file mode 100644 index 0000000000..10436b8165 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/LastFocusWindow.md @@ -0,0 +1,15 @@ +--- +title: IKeymanControl::LastFocusWindow Property +--- + +## Introduction + +The `IKeymanControl::LastFocusWindow` property returns the last focused +window handle, irrespective of process, excluding Keyman windows such as +the On Screen Keyboard. + +## Specification + +``` clike +readonly long LastFocusWindow +``` diff --git a/windows/docs/engine/api/IKeymanControl/OpenConfiguration.md b/windows/docs/engine/api/IKeymanControl/OpenConfiguration.md new file mode 100644 index 0000000000..abdef469fd --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/OpenConfiguration.md @@ -0,0 +1,16 @@ +--- +title: IKeymanControl::OpenConfiguration() Method +--- + +## Introduction + +The `IKeymanControl::OpenConfiguration()` method starts Keyman +Configuration (kmshell.exe). It is better to call this method than to +launch kmshell.exe directly as this method handles paths and parameter +changes across versions of Keyman Engine. + +## Specification + +``` clike +void OpenConfiguration(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/OpenDiagnostics.md b/windows/docs/engine/api/IKeymanControl/OpenDiagnostics.md new file mode 100644 index 0000000000..70b11ba5aa --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/OpenDiagnostics.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::OpenDiagnostics() Method +--- + +## Introduction + +The `IKeymanControl::OpenDiagnostics()` method opens the Keyman +diagnostics tool (tsysinfo.exe). + +## Specification + +``` clike +void OpenDiagnostics(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/OpenHelp.md b/windows/docs/engine/api/IKeymanControl/OpenHelp.md new file mode 100644 index 0000000000..3af4500e34 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/OpenHelp.md @@ -0,0 +1,19 @@ +--- +title: IKeymanControl::OpenHelp() Method +--- + +## Introduction + +The `IKeymanControl::OpenHelp()` method opens Keyman Desktop help at the +specified topic. + +## Specification + +``` clike +void OpenHelp(string Topic) +``` + +## Parameters + +`Topic` +: The string identifier for the topic. diff --git a/windows/docs/engine/api/IKeymanControl/OpenTextEditor.md b/windows/docs/engine/api/IKeymanControl/OpenTextEditor.md new file mode 100644 index 0000000000..ec76f11e28 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/OpenTextEditor.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::OpenTextEditor() Method +--- + +## Introduction + +The `IKeymanControl::OpenTextEditor()` method opens Keyman Desktop Text +Editor. + +## Specification + +``` clike +void OpenTextEditor(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/OpenUpdateCheck.md b/windows/docs/engine/api/IKeymanControl/OpenUpdateCheck.md new file mode 100644 index 0000000000..3463364e91 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/OpenUpdateCheck.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::OpenUpdateCheck() Method +--- + +## Introduction + +The `IKeymanControl::OpenUpdateCheck()` method opens Keyman Desktop +online update check tool. + +## Specification + +``` clike +void OpenUpdateCheck(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/ShowKeyboardWelcome.md b/windows/docs/engine/api/IKeymanControl/ShowKeyboardWelcome.md new file mode 100644 index 0000000000..31edc44b8a --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/ShowKeyboardWelcome.md @@ -0,0 +1,20 @@ +--- +title: IKeymanControl::ShowKeyboardWelcome() Method +--- + +## Introduction + +The `IKeymanControl::ShowKeyboardWelcome()` method opens the keyboard +welcome.htm for the keyboard in a HTML window hosted by kmshell.exe. + +## Specification + +``` clike +void ShowKeyboardWelcome(IKeymanKeyboardInstalled* Keyboard) +``` + +## Parameters + +`Keyboard` +: The installed keyboard for which the documentation should be + displayed. diff --git a/windows/docs/engine/api/IKeymanControl/StartKeyman.md b/windows/docs/engine/api/IKeymanControl/StartKeyman.md new file mode 100644 index 0000000000..e3f0989206 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/StartKeyman.md @@ -0,0 +1,16 @@ +--- +title: IKeymanControl::StartKeyman() Method +--- + +## Introduction + +The `IKeymanControl::StartKeyman()` method starts Keyman Engine +(keyman.exe). It is better to call this method than to launch keyman.exe +directly, as this method handles paths and parameter changes across +versions of Keyman Engine. + +## Specification + +``` clike +void StartKeyman(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/StartVisualKeyboard.md b/windows/docs/engine/api/IKeymanControl/StartVisualKeyboard.md new file mode 100644 index 0000000000..452ee91c4b --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/StartVisualKeyboard.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::StartVisualKeyboard() Method +--- + +## Introduction + +The `IKeymanControl::StartVisualKeyboard()` method starts the on screen +keyboard. + +## Specification + +``` clike +void StartVisualKeyboard(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/StopKeyman.md b/windows/docs/engine/api/IKeymanControl/StopKeyman.md new file mode 100644 index 0000000000..6dc81271e2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/StopKeyman.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::StopKeyman() Method +--- + +## Introduction + +The `IKeymanControl::StopKeyman()` method stops Keyman Engine +(keyman.exe). + +## Specification + +``` clike +void StopKeyman(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/StopVisualKeyboard.md b/windows/docs/engine/api/IKeymanControl/StopVisualKeyboard.md new file mode 100644 index 0000000000..6714919540 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/StopVisualKeyboard.md @@ -0,0 +1,14 @@ +--- +title: IKeymanControl::StopVisualKeyboard() Method +--- + +## Introduction + +The `IKeymanControl::StopVisualKeyboard()` method stops the on screen +keyboard. + +## Specification + +``` clike +void StopVisualKeyboard(void) +``` diff --git a/windows/docs/engine/api/IKeymanControl/index.md b/windows/docs/engine/api/IKeymanControl/index.md new file mode 100644 index 0000000000..4ca94ff2f9 --- /dev/null +++ b/windows/docs/engine/api/IKeymanControl/index.md @@ -0,0 +1,110 @@ +--- +title: IKeymanControl Interface +--- + +## Introduction + +The `IKeymanControl` interface controls the operation of Keyman Engine +and provides methods to trigger Keyman Engine's user interface. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanControl`** + + +## Properties + +[`ActiveLanguage`](ActiveLanguage) +: Returns or sets the currently active keyboard + language. + + + +[`LastActiveWindow`](LastActiveWindow) read only +: Returns the last active window handle, excluding Keyman windows such + as the On Screen Keyboard. + + + +[`LastFocusWindow`](LastFocusWindow) read only +: Returns the last focus window handle, irrespective of process. + +## Methods + +[`IsConfigurationOpen()`](IsConfigurationOpen) +: Returns `True` if Keyman Configuration is currently running. + + + +[`IsKeymanRunning()`](IsKeymanRunning) +: Returns `True` if Keyman Engine is currently running. + + + +[`IsOnlineUpdateCheckOpen()`](IsOnlineUpdateCheckOpen) +: Returns `True` if the Keyman Desktop online update check tool is + currently running. + + + +[`IsTextEditorOpen()`](IsTextEditorOpen) +: Returns `True` if the Keyman Desktop text editor is currently + running. + + + +[`IsVisualKeyboardOpen()`](IsVisualKeyboardOpen) +: Returns `True` if the on screen keyboard is running. + + + +[`OpenConfiguration()`](OpenConfiguration) +: Starts Keyman Configuration. + + + +[`OpenDiagnostics()`](OpenDiagnostics) +: Opens the Keyman diagnostics tool. + + + +[`OpenHelp()`](OpenHelp) +: Opens Keyman Desktop help at the specific topic. + + + +[`OpenTextEditor()`](OpenTextEditor) +: Opens Keyman Desktop text editor. + + + +[`OpenUpdateCheck()`](OpenUpdateCheck) +: Opens Keyman Desktop online update check tool. + + + +[`ShowKeyboardWelcome()`](ShowKeyboardWelcome) +: Loads the welcome.htm file in a window for the selected keyboard. + + + +[`StartKeyman()`](StartKeyman) +: Starts Keyman Engine, if it isn't already running. + + + +[`StartVisualKeyboard()`](StartVisualKeyboard) +: Starts the on screen keyboard, if it isn't already visible. + + + +[`StopKeyman()`](StopKeyman) +: Stops Keyman Engine. + + + +[`StopVisualKeyboard()`](StopVisualKeyboard) +: Stops the on screen keyboard. diff --git a/windows/docs/engine/api/IKeymanError/Description.md b/windows/docs/engine/api/IKeymanError/Description.md new file mode 100644 index 0000000000..fbfb0fea2c --- /dev/null +++ b/windows/docs/engine/api/IKeymanError/Description.md @@ -0,0 +1,15 @@ +--- +title: IKeymanError::Description Property +--- + +## Introduction + +The `IKeymanError::Description` property returns a human-readable +description of the error intended for display; see +[`ErrorCode`](ErrorCode) for the text of each error. + +## Specification + +``` clike +readonly string Description +``` diff --git a/windows/docs/engine/api/IKeymanError/ErrorCode.md b/windows/docs/engine/api/IKeymanError/ErrorCode.md new file mode 100644 index 0000000000..9dd809017e --- /dev/null +++ b/windows/docs/engine/api/IKeymanError/ErrorCode.md @@ -0,0 +1,63 @@ +--- +title: IKeymanError::ErrorCode Property +--- + +## Introduction + +The `IKeymanError::ErrorCode` property returns an integer error code for +the error. + +## Specification + +``` clike +readonly long ErrorCode +``` + +## Defined Error Codes + +| Code | Identifier | Message | Source | +|----|----|----|----| +| 0xA0000200 | KMN_E_Install_InvalidFile | The file %0:s could not be installed because of the following error: %1:s | InstallKeyboard | +| 0xA0000201 | KMN_E_Install_AlreadyInstalled | A keyboard with the name %0:s is already installed. | InstallKeyboard | +| 0xA0000202 | KMN_E_Install_FailureToCreateDirectories | Failure to create directories for keyboard %0:s. | InstallKeyboard | +| 0xA0000203 | KMN_E_Uninstall_InvalidKeyboard | The keyboard %0:s could not be uninstalled because it was invalid. | UninstallKeyboard | +| 0xA0000204 | KMN_E_Uninstall_KeyboardPartOfPackage | The keyboard %0:s could not be uninstalled because it was part of package %1:s. | UninstallKeyboard | +| 0xA0000205 | KMN_E_Uninstall_AdminKeyboardInstalled | You do not have sufficient privileges to uninstall keyboard %0:s. | UninstallKeyboard | +| 0x20000206 | KMN_W_UninstallFileNotFound | The file %0:s was not found during the uninstall. | UninstallKeyboard | +| 0x20000207 | KMN_W_UninstallFileInUse | The file %0:s is currently in use and will be removed after the next reboot. | UninstallKeyboard | +| 0x20000208 | KMN_W_UninstallError_UnableToDeleteKeyboardRegistrySetting | Unable to delete keyboard %0:s registry key %1:s | UninstallKeyboard | +| 0x20000209 | KMN_W_UninstallError_UnableToRemoveDirectory | Unable to remove directory for keyboard %0:s (error %1:s) | UninstallKeyboard | +| 0xA000020A | KMN_E_PackageInstall_UnableToGetTempPath | Unable to find a temp path to install package. | InstallPackage | +| 0xA000020B | KMN_E_PackageInstall_UnableToGetTempFileName | Unable to get a temp file name to install package. | InstallPackage | +| 0xA000020C | KMN_E_PackageInstall_UnableToCreateTemporaryDirectory | Unable to create temporary folder to install package. | InstallPackage | +| 0xA000020D | KMN_E_PackageInstall_UnableToFindInfFile | Unable to locate inf file from package - it may be damaged. Please download the package again and try again. | InstallPackage | +| 0xA000020E | KMN_E_PackageInstall_PackageAlreadyInstalled | The package is already installed. | InstallPackage | +| 0xA000020F | KMN_E_PackageInstall_UnableToCopyFile | Unable to copy file %0:s for the package to %1:s - you may have insufficient privileges, or you may have run out of disk space. | InstallPackage | +| 0x20000210 | KMN_W_InstallPackage_UnableToFindProgramsFolder | Unable to find Start Menu folder | InstallPackage | +| 0x20000211 | KMN_W_InstallPackage_UnableToCreateStartMenuEntry | Unable to create Start Menu entry %0:s | InstallPackage | +| 0x20000212 | KMN_W_InstallPackage_CannotRunExternalProgram | Cannot run external program %0:s (error %1:s) | InstallPackage | +| 0x20000213 | KMN_W_InstallFont_CannotInstallFont | Cannot install font %0:s (error %2:d: %1:s) | InstallFont | +| 0x20000214 | KMN_W_InstallFont_CannotInstallFontAdmin | Cannot install font registry settings: %0:s | InstallFont | +| 0xA0000215 | KMN_E_Collection_InvalidIndex | Index %0:s out of bounds | Collection | +| 0xA0000216 | KMN_E_PackageUninstall_NotFound | Cannot find the package to uninstall | UninstallPackage | +| 0xA0000217 | KMN_E_PackageUninstall_AdminRequired | This package requires administrator access to uninstall | UninstallPackage | +| 0x20000218 | KMN_W_PackageUninstall_FileInUse | The file %0:s is in use and will be removed on next reboot | UninstallPackage | +| 0x20000219 | KMN_W_UninstallFont_FontInUse | The font %0:s is in use and will be removed on next reboot. Please reboot before attempting to install any additional fonts | UninstallFont | +| 0xA000021A | KMN_E_VisualKeyboard_Install_AlreadyInstalled | A visual keyboard is already installed for keyboard %0:s | InstallVisualKeyboard | +| 0xA000021B | KMN_E_VisualKeyboard_Install_CouldNotInstall | The visual keyboard %0:s could not be installed | InstallVisualKeyboard | +| 0xA000021C | KMN_E_VisualKeyboard_Install_KeyboardNotInstalled | The visual keyboard %0:s could not be installed because the keyboard %1:s was not found | InstallVisualKeyboard | +| 0xA000021D | KMN_E_KeymanControl_CannotLoadKeyman32 | Could not load keyman32.dll. Windows returned the error code %0:8x (%1:s) | Control | +| 0xA000021E | KMN_E_KeymanControl_CannotStartProduct | Could not find %0:s to start Keyman Product %1:s | Control | +| 0xA000021F | KMN_E_KeymanControl_CannotRegisterControllerWindow | Could not register controller window | Control | +| 0xA0000220 | KMN_E_KeymanControl_CannotUnregisterControllerWindow | Could not unregister controller window | Control | +| 0xA0000221 | KMN_E_KeyboardInstall_UnableToCopyFile | Unable to copy file %0:s to %1:s - you may have insufficient privileges, or you may have run out of disk space. | InstallKeyboard | +| 0xA0000222 | KMN_E_Install_KeyboardMustBeInstalledByAdmin | Error installing keyboard %0:s: Keyman requires keyboards to be installed by administrator | InstallKeyboard | +| 0x20000223 | KMN_W_KeyboardUninstall_ProfileNotFound | A language profile for %0:s could not be uninstalled for %1:s (it may be missing) | UninstallKeyboardLanguageProfile | +| 0xA0000224 | KMN_E_ProfileInstall_MustBeAllUsers | You do not have sufficient privileges to install the language profile for %0:s | InstallKeyboardLanguageProfile | +| 0xA0000225 | KMN_E_ProfileUninstall_MustBeAllUsers | You do not have sufficient privileges to uninstall the language profile for %0:s | UninstallKeyboardLanguageProfile | +| 0xA0000226 | KMN_E_ProfileInstall_KeyboardNotFound | The keyboard %0:s is not installed | InstallKeyboardLanguageProfile | +| 0xA0000227 | KMN_E_RecompileMnemonicLayout_mcompileFailed | The keyboard %2:s was not generated because mcompile failed to start with error %0:d (%1:s) | RecompileMnemonicKeyboard | +| 0xA0000228 | KMN_E_RecompileMnemonicLayout_mcompileError | The keyboard %2:s was not generated because mcompile failed with error %0:d: %1:s | RecompileMnemonicKeyboard | +| 0xA0000229 | KMN_E_RecompileMnemonicLayout_mcompileUnexpected | The keyboard %0:s was not generated due to an unknown error. | RecompileMnemonicLayout | +| 0x2000022A | KMN_W_KeyboardInstall_InvalidIcon | The icon for keyboard %0:s was not converted due to an error: %1:s | InstallKeyboard | +| 0x2000022B | KMN_W_TSF_COMError | Error %0:s updating TSF | TSF | diff --git a/windows/docs/engine/api/IKeymanError/Severity.md b/windows/docs/engine/api/IKeymanError/Severity.md new file mode 100644 index 0000000000..0dfa0d7f34 --- /dev/null +++ b/windows/docs/engine/api/IKeymanError/Severity.md @@ -0,0 +1,23 @@ +--- +title: IKeymanError::Severity Property +--- + +## Introduction + +The `IKeymanError::Severity` property returns the severity level of the +error. + +## Specification + +``` clike +readonly KeymanErrorSeverity Severity +``` + +## Severity Levels + +| Value | Name | +|-------|------------| +| 0 | kesFatal | +| 1 | kesError | +| 2 | kesWarning | +| 3 | kesHint | diff --git a/windows/docs/engine/api/IKeymanError/index.md b/windows/docs/engine/api/IKeymanError/index.md new file mode 100644 index 0000000000..691768e6b2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanError/index.md @@ -0,0 +1,32 @@ +--- +title: IKeymanError Interface +--- + +## Introduction + +The `IKeymanError` interface provides information about an error that +Keyman Engine encountered. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanError`** + + +## Properties + +[`ErrorCode`](ErrorCode) read only +: Returns an integer code for the error. + + + +[`Description`](Description) read only +: Returns a human-readable description of the error. + + + +[`Severity`](Severity) read only +: Returns a `KeymanErrorSeverity` value for the error. diff --git a/windows/docs/engine/api/IKeymanErrors/Clear.md b/windows/docs/engine/api/IKeymanErrors/Clear.md new file mode 100644 index 0000000000..f23ac277a6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanErrors/Clear.md @@ -0,0 +1,14 @@ +--- +title: IKeymanErrors::Clear Method +--- + +## Introduction + +The `IKeymanErrors::Clear` method removes all +[`IKeymanError`](../IKeymanError) entries from the collection. + +## Specification + +``` clike +void Clear(void) +``` diff --git a/windows/docs/engine/api/IKeymanErrors/Items.md b/windows/docs/engine/api/IKeymanErrors/Items.md new file mode 100644 index 0000000000..e5cd965665 --- /dev/null +++ b/windows/docs/engine/api/IKeymanErrors/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanErrors::Items[Index] Property +--- + +## Introduction + +The `IKeymanErrors::Items[Index]` property returns a +[`IKeymanError`](../IKeymanError) reference identified by `Index`. If +the index is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanError* Items[long Index] +``` + +## Parameters + +Index +: A zero-based integer index . diff --git a/windows/docs/engine/api/IKeymanErrors/index.md b/windows/docs/engine/api/IKeymanErrors/index.md new file mode 100644 index 0000000000..3ed1954845 --- /dev/null +++ b/windows/docs/engine/api/IKeymanErrors/index.md @@ -0,0 +1,28 @@ +--- +title: IKeymanErrors Interface +--- + +## Introduction + +The `IKeymanErrors` interface lists errors encountered by Keyman Engine +in a previous command such as installing a package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanErrors`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanError`](../IKeymanError) reference at `Index`. + +## Methods + +[`Clear()`](Clear) +: Clears the collection. diff --git a/windows/docs/engine/api/IKeymanHotkey/Clear.md b/windows/docs/engine/api/IKeymanHotkey/Clear.md new file mode 100644 index 0000000000..7b1fb856a1 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/Clear.md @@ -0,0 +1,19 @@ +--- +title: IKeymanHotkey::Clear() Method +--- + +## Introduction + +The `IKeymanHotkey::Clear()` method clears the hotkey value. + +Changes to the hotkey will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called for a keyboard hotkey, or after +[`IKeymanHotkeys::Apply`](../IKeymanHotkeys/Apply) is called for other +hotkeys. + +## Specification + +``` clike +void Clear(void) +``` diff --git a/windows/docs/engine/api/IKeymanHotkey/IsEmpty.md b/windows/docs/engine/api/IKeymanHotkey/IsEmpty.md new file mode 100644 index 0000000000..d6550be6d4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/IsEmpty.md @@ -0,0 +1,14 @@ +--- +title: IKeymanHotkey::IsEmpty() Method +--- + +## Introduction + +The `IKeymanHotkey::IsEmpty()` method returns `True` if the hotkey value +is zero, or empty. + +## Specification + +``` clike +boolean IsEmpty(void) +``` diff --git a/windows/docs/engine/api/IKeymanHotkey/Modifiers.md b/windows/docs/engine/api/IKeymanHotkey/Modifiers.md new file mode 100644 index 0000000000..b515273da8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/Modifiers.md @@ -0,0 +1,28 @@ +--- +title: IKeymanHotkey::Modifiers Property +--- + +## Introduction + +The `IKeymanHotkey::Modifiers` property controls the set of modifiers +associated with the hotkey. + +Changes to the hotkey will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called for a keyboard hotkey, or after +[`IKeymanHotkeys::Apply`](../IKeymanHotkeys/Apply) is called for other +hotkeys. + +## Specification + +``` clike +KeymanHotkeyModifiers Modifiers +``` + +## Modifier Values + +| Value | Modifier | +|---------|----------| +| 0x10000 | HK_ALT | +| 0x20000 | HK_CTRL | +| 0x40000 | HK_SHIFT | diff --git a/windows/docs/engine/api/IKeymanHotkey/RawValue.md b/windows/docs/engine/api/IKeymanHotkey/RawValue.md new file mode 100644 index 0000000000..1fd2eb6ebd --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/RawValue.md @@ -0,0 +1,21 @@ +--- +title: IKeymanHotkey::RawValue Property +--- + +## Introduction + +The `IKeymanHotkey::RawValue` property sets or returns the raw hotkey +value, which is the [`Modifiers`](Modifiers) property bitwise or-ed with +the [`VirtualKey`](VirtualKey) property. + +Changes to the hotkey will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called for a keyboard hotkey, or after +[`IKeymanHotkeys::Apply`](../IKeymanHotkeys/Apply) is called for other +hotkeys. + +## Specification + +``` clike +long RawValue +``` diff --git a/windows/docs/engine/api/IKeymanHotkey/Target.md b/windows/docs/engine/api/IKeymanHotkey/Target.md new file mode 100644 index 0000000000..ae492b28e3 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/Target.md @@ -0,0 +1,30 @@ +--- +title: IKeymanHotkey::Target Property +--- + +## Introduction + +The `IKeymanHotkey::Target` property returns the target of the hotkey. +For a hotkey associated with a keyboard, this will always be +`khKeyboard`. + +## Specification + +``` clike +readonly KeymanHotkeyTarget Target +``` + +## Target Values + +| Value | Target | Notes | +|----|----|----| +| 0 | khKeymanOff | Switches to first Windows keyboard which is not a Keyman keyboard | +| 1 | khKeyboardMenu | Opens the Keyman keyboard menu from the notification area | +| 2 | khVisualKeyboard | Opens the On Screen Keyboard page in the on screen keyboard. If the On Screen Keyboard page is already visible, closes the on screen keyboard | +| 3 | khKeymanConfiguration | Opens Keyman Configuration | +| 4 | khKeyboardUsage | Deprecated. Has no effect in Keyman 14 and later versions. | +| 5 | khFontHelper | Opens the Font Helper page in the on screen keyboard. If the Font Helper page is already visible, closes the on screen keyboard | +| 6 | khCharacterMap | Opens the Character Map page in the on screen keyboard. If the Character Map page is already visible, closes the on screen keyboard | +| 7 | khTextEditor | Opens the Keyman Text Editor | +| 8 | khLanguageSwitch | Opens the Language Switcher | +| 9 | khKeyboard | Selects or Toggles the keyboard associated with the hotkey. | diff --git a/windows/docs/engine/api/IKeymanHotkey/VirtualKey.md b/windows/docs/engine/api/IKeymanHotkey/VirtualKey.md new file mode 100644 index 0000000000..f2ede709a5 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/VirtualKey.md @@ -0,0 +1,20 @@ +--- +title: IKeymanHotkey::VirtualKey Property +--- + +## Introduction + +The `IKeymanHotkey::VirtualKey` property sets or returns the virtual key +associated with the hotkey. + +Changes to the hotkey will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called for a keyboard hotkey, or after +[`IKeymanHotkeys::Apply`](../IKeymanHotkeys/Apply) is called for other +hotkeys. + +## Specification + +``` clike +long VirtualKey +``` diff --git a/windows/docs/engine/api/IKeymanHotkey/index.md b/windows/docs/engine/api/IKeymanHotkey/index.md new file mode 100644 index 0000000000..1dbe026e73 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkey/index.md @@ -0,0 +1,50 @@ +--- +title: IKeymanHotkey Interface +--- + +## Introduction + +The `IKeymanHotkey` interface describes a hotkey associated with an +action or a keyboard. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanHotkey`** + + +## Properties + +[`Modifiers`](Modifiers) +: Returns a set of modifier keys used by the hotkey. + + + +[`RawValue`](RawValue) +: Returns the raw hotkey value, a combination of `Modifiers` and + `VirtualKey`. + + + +[`Target`](Target) read only +: Returns the action that will be taken when the hotkey is pressed by + the user. + + + +[`VirtualKey`](VirtualKey) +: Returns the Windows virtual key code of the hotkey. + +## Methods + +[`Clear()`](Clear) +: Clears the hotkey value. It does not remove the hotkey from the + collection. + + + +[`IsEmpty()`](IsEmpty) +: Returns `True` if the hotkey is empty. diff --git a/windows/docs/engine/api/IKeymanHotkeys/Apply.md b/windows/docs/engine/api/IKeymanHotkeys/Apply.md new file mode 100644 index 0000000000..a707d4f479 --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkeys/Apply.md @@ -0,0 +1,14 @@ +--- +title: IKeymanHotkeys::Apply() Method +--- + +## Introduction + +The `IKeymanHotkeys::Apply()` method applies changes to the keyboard +hotkeys to Keyman Engine. + +## Specification + +``` clike +void Apply(void) +``` diff --git a/windows/docs/engine/api/IKeymanHotkeys/Items.md b/windows/docs/engine/api/IKeymanHotkeys/Items.md new file mode 100644 index 0000000000..4b04b449ff --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkeys/Items.md @@ -0,0 +1,22 @@ +--- +title: IKeymanHotkeys::Items[Index] Property +--- + +## Introduction + +The `IKeymanHotkeys::Items[Index]` property returns an +[`IKeymanHotkey`](../IKeymanHotkey) reference to the hotkey by `Index`. +If the hotkey is not found, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. +The `Index` is the enumerated type `KeymanHotkeyTarget`. + +## Specification + +``` clike +readonly IKeymanHotkey* Items[KeymanHotkeyTarget Index] +``` + +## Parameters + +Index +: The [target](../IKeymanHotkey/Target) of the hotkey. diff --git a/windows/docs/engine/api/IKeymanHotkeys/Reset.md b/windows/docs/engine/api/IKeymanHotkeys/Reset.md new file mode 100644 index 0000000000..c8f51e6b1e --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkeys/Reset.md @@ -0,0 +1,15 @@ +--- +title: IKeymanHotkeys::Reset() Method +--- + +## Introduction + +The `IKeymanHotkeys::Reset()` method resets the value of all hotkeys in +the collection to empty. [`Apply`](Apply) must be called for the changes +to take effect. + +## Specification + +``` clike +void Reset(void) +``` diff --git a/windows/docs/engine/api/IKeymanHotkeys/index.md b/windows/docs/engine/api/IKeymanHotkeys/index.md new file mode 100644 index 0000000000..451d9a07ff --- /dev/null +++ b/windows/docs/engine/api/IKeymanHotkeys/index.md @@ -0,0 +1,33 @@ +--- +title: IKeymanHotkeys Interface +--- + +## Introduction + +The `IKeymanHotkeys` interface lists hotkeys configured for Keyman +Engine. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanHotkeys`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanHotkey`](../IKeymanHotkey) reference for the + hotkey identified by `Index`. + +## Methods + +[`Apply()`](Apply) +: Applies changes to the hotkeys in the collection to Keyman Engine. + + +[`Reset()`](Reset) +: Resets all hotkeys in the collection to empty. diff --git a/windows/docs/engine/api/IKeymanKeyboard/Bitmap.md b/windows/docs/engine/api/IKeymanKeyboard/Bitmap.md new file mode 100644 index 0000000000..7dd57e9791 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Bitmap.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboard::Bitmap Property +--- + +## Introduction + +The `IKeymanKeyboard::Bitmap` property returns an `IPicture` reference +to the icon included in the keyboard file as specified by +[`&bitmap`](/developer/language/reference/bitmap). If no icon is +included, a default icon is returned. + +## Specification + +``` clike +readonly IPicture* Bitmap +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/Copyright.md b/windows/docs/engine/api/IKeymanKeyboard/Copyright.md new file mode 100644 index 0000000000..07bfb1237f --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Copyright.md @@ -0,0 +1,15 @@ +--- +title: IKeymanKeyboard::Copyright Property +--- + +## Introduction + +The `IKeymanKeyboard::Copyright` property returns the +[`©right`](/developer/language/reference/copyright) string from the +keyboard file. + +## Specification + +``` clike +readonly string Copyright +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/DefaultBCP47Languages.md b/windows/docs/engine/api/IKeymanKeyboard/DefaultBCP47Languages.md new file mode 100644 index 0000000000..31ad705159 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/DefaultBCP47Languages.md @@ -0,0 +1,19 @@ +--- +title: IKeymanKeyboard::DefaultBCP47Languages Property +--- + +## Introduction + +The `IKeymanKeyboard::DefaultBCP47Languages` property returns the +[`ðnologuecode`](/developer/language/reference/ethnologuecode) string +from the keyboard file. The first language code in the string is the +primary language. + +This is informational data and may not be the same as the currently +linked languages for the keyboard. + +## Specification + +``` clike +readonly string DefaultBCP47Languages +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/DefaultHotkey.md b/windows/docs/engine/api/IKeymanKeyboard/DefaultHotkey.md new file mode 100644 index 0000000000..9884556200 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/DefaultHotkey.md @@ -0,0 +1,18 @@ +--- +title: IKeymanKeyboard::DefaultHotkey Property +--- + +## Introduction + +The `IKeymanKeyboard::DefaultHotkey` property returns the +[`&hotkey`](/developer/language/reference/hotkey) value from the +keyboard file. + +This is informational data and may not be the same as the currently +configured hotkey for the keyboard. + +## Specification + +``` clike +readonly IKeymanHotkey* DefaultHotkey +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/DefaultPrimaryLanguage.md b/windows/docs/engine/api/IKeymanKeyboard/DefaultPrimaryLanguage.md new file mode 100644 index 0000000000..ae7abd7664 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/DefaultPrimaryLanguage.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboard::DefaultPrimaryLanguage Property +--- + +## Introduction + +The `IKeymanKeyboard::DefaultPrimaryLanguage` property returns the +[`&language`](/developer/language/reference/language) value from the +keyboard file. + +This is informational data and may not be the same as the currently +linked languages for the keyboard. + +In the future, this will be deprecated in favour of +[`DefaultBCP47Languages`](DefaultBCP47Languages). + +## Specification + +``` clike +readonly long DefaultPrimaryLanguage +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/DefaultWindowsLanguages.md b/windows/docs/engine/api/IKeymanKeyboard/DefaultWindowsLanguages.md new file mode 100644 index 0000000000..67fd74a4f9 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/DefaultWindowsLanguages.md @@ -0,0 +1,22 @@ +--- +title: IKeymanKeyboard::DefaultWindowsLanguages Property +--- + +## Introduction + +The `IKeymanKeyboard::DefaultWindowsLanguages` property returns the +[`&windowslanguages`](/developer/language/reference/windowslanguages) +value from the keyboard file. + +This is informational data and may not be the same as the currently +linked languages for the keyboard. This is a space separated list of +hexadecimal coded Windows LANGID values. + +In the future, this will be deprecated in favour of +[`DefaultBCP47Languages`](DefaultBCP47Languages). + +## Specification + +``` clike +readonly long DefaultWindowsLanguages +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/Encodings.md b/windows/docs/engine/api/IKeymanKeyboard/Encodings.md new file mode 100644 index 0000000000..54c97f969f --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Encodings.md @@ -0,0 +1,24 @@ +--- +title: IKeymanKeyboard::Encodings Property +--- + +## Introduction + +The `IKeymanKeyboard::Encodings` property returns the supported +encodings for the keyboard. Most keyboards should be `keUnicode`, but +some legacy keyboards may return `keANSI`. It is possible for a keyboard +to support both `keUnicode` and `keANSI` but these keyboards are rare +and not recommended for general use. + +## Specification + +``` clike +readonly KeymanKeyboardEncodings Encodings +``` + +## Encodings + +| Value | Name | +|-------|-----------| +| 1 | keANSI | +| 2 | keUnicode | diff --git a/windows/docs/engine/api/IKeymanKeyboard/Filename.md b/windows/docs/engine/api/IKeymanKeyboard/Filename.md new file mode 100644 index 0000000000..b61ca04576 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Filename.md @@ -0,0 +1,20 @@ +--- +title: IKeymanKeyboard::Filename Property +--- + +## Introduction + +The `IKeymanKeyboard::Filename` property returns the fully qualified +filename of the keyboard .kmx file. If the parent interface is +[`IKeymanKeyboardFile`](../IKeymanKeyboardFile), then the filename is +the same as the file used to instantiate the interface; otherwise, the +file will be in the Keyman keyboard store, and should not be moved out +of the store except by calling the +[`IKeymanKeyboardInstalled::Uninstall`](../IKeymanKeyboardInstalled/Uninstall) +method. + +## Specification + +``` clike +readonly string Filename +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/GetCharsUsed.md b/windows/docs/engine/api/IKeymanKeyboard/GetCharsUsed.md new file mode 100644 index 0000000000..b2c60116c7 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/GetCharsUsed.md @@ -0,0 +1,18 @@ +--- +title: IKeymanKeyboard::Version GetCharsUsed Method +--- + +## Introduction + +The `IKeymanKeyboard::GetCharsUsed` method returns the character +repertoire of the keyboard layout, that is, the Unicode characters that +the keyboard generates and references. This can be helpful for +determining support for a given keyboard, e.g. related fonts, and is +built up by scanning all the keyboard output and context strings in the +keyboard layout. + +## Specification + +``` clike +string GetCharsUsed(void) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/ID.md b/windows/docs/engine/api/IKeymanKeyboard/ID.md new file mode 100644 index 0000000000..e3288f3ac6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/ID.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboard::ID Property +--- + +## Introduction + +The `IKeymanKeyboard::ID` property returns the base name of the keyboard +.kmx file, sans extension. The full filename, including path, of the +keyboard is available in the [`Filename`](Filename) property. + +No two keyboards can share the same identifier in a Keyman Engine +installation. The identifier is case insensitive and should consist of +letters, digits and underscores, although some legacy identifiers may +contain other characters as well. The initial character of an identifier +should be a letter. + +## Specification + +``` clike +readonly string ID +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/LayoutType.md b/windows/docs/engine/api/IKeymanKeyboard/LayoutType.md new file mode 100644 index 0000000000..051c7d5675 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/LayoutType.md @@ -0,0 +1,25 @@ +--- +title: IKeymanKeyboard::LayoutType Property +--- + +## Introduction + +The `IKeymanKeyboard::LayoutType` property returns the value of the +[`&mnemoniclayout`](/developer/language/reference/mnemoniclayout) store. +A keyboard layout that is mnemonic (`kltMnemonic`) is remapped by Keyman +Engine according to the current Latin script-based base layout, whereas +a keyboard layout that is positional (`kltPositional`) is not affected +by the current base layout. + +## Specification + +``` clike +readonly KeymanKeyboardLayoutType LayoutType +``` + +## Layout Types + +| Code | Value | Description | +|----|----|----| +| kltPositional | 0 | The keyboard layout is not affected by the current base layout. | +| kltMnemonic | 1 | The keyboard layout has been remapped to match the current Latin script-based base layout. | diff --git a/windows/docs/engine/api/IKeymanKeyboard/Message.md b/windows/docs/engine/api/IKeymanKeyboard/Message.md new file mode 100644 index 0000000000..2749d19135 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Message.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboard::Message Property +--- + +## Introduction + +The `IKeymanKeyboard::Message` property returns the +[`&message`](/developer/language/reference/message) string from the +keyboard file. This value is typically displayed when a keyboard is +installed and in the configuration user interface. + +## Specification + +``` clike +readonly string Message +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/Name.md b/windows/docs/engine/api/IKeymanKeyboard/Name.md new file mode 100644 index 0000000000..f422889541 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Name.md @@ -0,0 +1,22 @@ +--- +title: IKeymanKeyboard::Name Property +--- + +## Introduction + +The `IKeymanKeyboard::Name` property returns the +[`&name`](/developer/language/reference/name) string from the keyboard +file. This name is shown to the user in the Keyman Engine user interface +and in the Windows keyboard picker. + +The `Name` property is not related to the [`ID`](ID) property or the + +Filename + +property. + +## Specification + +``` clike +readonly string Name +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/Version.md b/windows/docs/engine/api/IKeymanKeyboard/Version.md new file mode 100644 index 0000000000..95295c22db --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/Version.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboard::Version Property +--- + +## Introduction + +The `IKeymanKeyboard::Version` property returns the +[`&keyboardversion`](/developer/language/reference/keyboardversion) +string from the keyboard file. This represents the current version of +the keyboard file, and is in the form of a dotted numeric string. + +The `Version` property is not related to the +[`&version`](/developer/language/reference/version) store, which +determines the minimum Keyman Engine version which a keyboard can be run +under. + +## Specification + +``` clike +readonly string Version +``` diff --git a/windows/docs/engine/api/IKeymanKeyboard/index.md b/windows/docs/engine/api/IKeymanKeyboard/index.md new file mode 100644 index 0000000000..a7d4488bac --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboard/index.md @@ -0,0 +1,82 @@ +--- +title: IKeymanKeyboard Interface +--- + +## Introduction + +The `IKeymanKeyboard` interface describes a keyboard in Keyman Engine +for Windows API. It is a base class and describes both installed +keyboards and keyboard files. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanKeyboard`** +> > +> > > [`IKeymanKeyboardFile`](../IKeymanKeyboardFile) +> > > +> > > > [`IKeymanKeyboardFile2`](../IKeymanKeyboardFile2) +> > > +> > > [`IKeymanKeyboardInstalled`](../IKeymanKeyboardInstalled) + +## Properties + +[`Bitmap`](Bitmap) read only +: Returns the [`&bitmap`](/developer/language/reference/bitmap) icon + from the keyboard file as an `IPicture`. + +[`Copyright`](Copyright) read only +: Returns the [`©right`](/developer/language/reference/copyright) + string from the keyboard file. + +[`DefaultBCP47Languages`](DefaultBCP47Languages) read only +: Returns the set of default language ids for the keyboard as a + space-separated list of BCP 47 codes. The first code in the list is + the primary language. + +[`DefaultHotkey`](DefaultHotkey) read only +: Returns the default hotkey for the keyboard. + +[`DefaultPrimaryLanguage`](DefaultPrimaryLanguage) read only +: Returns the default primary language id for the keyboard. + +[`DefaultWindowsLanguages`](DefaultWindowsLanguages) read only +: Returns the set of default language ids for the keyboard as a + space-separated list of hexadecimal strings. + +[`Encodings`](Encodings) read only +: Returns the set of encodings supported by the keyboard layout. + +[`Filename`](Filename) read only +: Returns the fully-qualified filename of the keyboard file. + +[`ID`](ID) read only +: Returns the identifier for the keyboard, which is the base name of + the keyboard file without extension. + +[`LayoutType`](LayoutType) read only +: Returns the layout type of the keyboard as specified by the + [`&mnemoniclayout`](/developer/language/reference/mnemoniclayout) + store. + +[`Message`](Message) read only +: Returns the [`&message`](/developer/language/reference/message) + string from the keyboard file. + +[`Name`](Name) read only +: Returns the [`&name`](/developer/language/reference/name) from the + keyboard file. + +[`Version`](Version) read only +: Returns the + [`&keyboardversion`](/developer/language/reference/keyboardversion) + string from the keyboard file. + +## Methods + +[`GetCharsUsed()`](GetCharsUsed) +: Returns a string with every Unicode character used or generated by + the keyboard. diff --git a/windows/docs/engine/api/IKeymanKeyboardFile/Install.md b/windows/docs/engine/api/IKeymanKeyboardFile/Install.md new file mode 100644 index 0000000000..bd66a121e7 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardFile/Install.md @@ -0,0 +1,47 @@ +--- +title: IKeymanKeyboardFile::Install Method +--- + +## Introduction + +The `IKeymanKeyboardFile::Install` method installs the keyboard file +(.kmx) into Keyman Engine for Windows. This includes copying the file +into the Keyman Engine keyboard store, adding registry settings, and +installing the Windows input method. As installing Windows input methods +is an asynchronous process, this method may not be complete when it +returns. + +This method adds the keyboard to the default language as specified in +the +[`IKeymanKeyboard::DefaultBCP47Languages`](../IKeymanKeyboard/DefaultBCP47Languages) +property. This method is the same as calling +[`IKeymanKeyboardsInstalled::Install`](../IKeymanKeyboardsInstalled/Install) +and passing the +[`IKeymanKeyboard::Filename`](../IKeymanKeyboard/Filename) property from +this instance. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(bool Force) +``` + +## Parameters + +`Force` +: If `True`, overwrites an existing keyboard entry. + +## See also + +[`IKeymanKeyboardsInstalled::Install`](../IKeymanKeyboardsInstalled/Install) +: Installs a keyboard file and input method for default language + +[`IKeymanKeyboardsInstalled::Install2`](../IKeymanKeyboardsInstalled2/Install2) +: Installs a keyboard file, optionally with input method for default + language + +[`IKeymanKeyboardFile2::Install2`](../IKeymanKeyboardFile2/Install2) +: Installs a keyboard file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanKeyboardFile/Languages.md b/windows/docs/engine/api/IKeymanKeyboardFile/Languages.md new file mode 100644 index 0000000000..aae9d15cc7 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardFile/Languages.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboardFile::Languages Property +--- + +## Introduction + +The `IKeymanKeyboardFile::Languages` property returns an +[`IKeymanKeyboardLanguagesFile`](../IKeymanKeyboardLanguagesFile) +reference which lists the BCP 47 languages that are suggested for use +with the keyboard, as extracted from the package metadata. + +## Specification + +``` clike +readonly IKeymanKeyboardLanguagesFile* Languages +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardFile/index.md b/windows/docs/engine/api/IKeymanKeyboardFile/index.md new file mode 100644 index 0000000000..dd62427b4c --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardFile/index.md @@ -0,0 +1,31 @@ +--- +title: IKeymanKeyboardFile Interface +--- + +## Introduction + +The `IKeymanKeyboardFile` interface describes a keyboard file. The file +will not have been installed but can be any keyboard file on disk. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanKeyboard`](../IKeymanKeyboard) +> > +> > > **`IKeymanKeyboardFile`** +> > > +> > > > [`IKeymanKeyboardFile2`](../IKeymanKeyboardFile2) + +## Properties + +[`Languages`](Languages) +: Lists the languages associated with the keyboard, as retrieved from + package metadata. + +## Methods + +[`Install()`](Install) +: Installs the keyboard file into Keyman Engine for Windows. diff --git a/windows/docs/engine/api/IKeymanKeyboardFile2/Install2.md b/windows/docs/engine/api/IKeymanKeyboardFile2/Install2.md new file mode 100644 index 0000000000..5af6979a79 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardFile2/Install2.md @@ -0,0 +1,50 @@ +--- +title: IKeymanKeyboardFile2::Install2 Method +--- + +## Introduction + +The `IKeymanKeyboardFile2::Install2` method installs the keyboard file +(.kmx) into Keyman Engine for Windows. This includes copying the file +into the Keyman Engine keyboard store, adding registry settings, and +optionally installing the Windows input method. As installing Windows +input methods is an asynchronous process, this method may not be +complete when it returns. + +This method adds the keyboard to the default language as specified in +the +[`IKeymanKeyboard::DefaultBCP47Languages`](../IKeymanKeyboard/DefaultBCP47Languages) +property. This method is the same as calling +[`IKeymanKeyboardsInstalled::Install`](../IKeymanKeyboardsInstalled/Install) +and passing the +[`IKeymanKeyboard::Filename`](../IKeymanKeyboard/Filename) property from +this instance. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(bool Force, bool InstallDefaultLanguage) +``` + +## Parameters + +`Force` +: If `True`, overwrites an existing keyboard entry. + +`InstallDefaultLanguage` +: If `True`, installs the Windows input method for the default + language. + +## See also + +[`IKeymanKeyboardsInstalled::Install`](../IKeymanKeyboardsInstalled/Install) +: Installs a keyboard file and input method for default language + +[`IKeymanKeyboardsInstalled::Install2`](../IKeymanKeyboardsInstalled2/Install2) +: Installs a keyboard file, optionally with input method for default + language + +[`IKeymanKeyboardFile::Install`](../IKeymanKeyboardFile/Install) +: Installs a keyboard file and input method for default language diff --git a/windows/docs/engine/api/IKeymanKeyboardFile2/index.md b/windows/docs/engine/api/IKeymanKeyboardFile2/index.md new file mode 100644 index 0000000000..fbbc57b3ea --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardFile2/index.md @@ -0,0 +1,30 @@ +--- +title: IKeymanKeyboardFile2 Interface +--- + +## Introduction + +The `IKeymanKeyboardFile2` interface describes a keyboard file. The file +will not have been installed but can be any keyboard file on disk. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanKeyboard`](../IKeymanKeyboard) +> > +> > > [`IKeymanKeyboardFile`](../IKeymanKeyboardFile) +> > > +> > > > **`IKeymanKeyboardFile2`** + +## Methods + +[`Install2()`](Install2) +: Installs the keyboard file into Keyman Engine for Windows, with + option to install default language at same time. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/IconFilename.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/IconFilename.md new file mode 100644 index 0000000000..11e498c122 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/IconFilename.md @@ -0,0 +1,17 @@ +--- +title: IKeymanKeyboardInstalled::IconFilename Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::IconFilename` property returns the fully +qualified filename of a Windows .ico file that is generated from the +icon resource contained within the keyboard when the keyboard is +installed. This icon file is used when Keyman creates a Windows input +method associated with the Keyman keyboard layout. + +## Specification + +``` clike +readonly string IconFilename +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/InstallVisualKeyboard.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/InstallVisualKeyboard.md new file mode 100644 index 0000000000..88f66d2d8b --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/InstallVisualKeyboard.md @@ -0,0 +1,30 @@ +--- +title: IKeymanKeyboardInstalled::InstallVisualKeyboard Method +--- + +## Introduction + +The `IKeymanKeyboardInstalled::InstallVisualKeyboard` method installs a +visual keyboard file (.kvk) and associates it with the keyboard. The +visual keyboard file is copied into the Keyman keyboard store. If a +visual keyboard is already installed for the keyboard, then the new +visual keyboard replaces the old one. + +Typically, a keyboard and visual keyboard will be installed together as +part of a package, but this method can be helpful for testing and +development of keyboards. + +Changes associated with calling this method are applied immediately; +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +does not need to be called. + +A visual keyboard can be uninstalled with +[`IKeymanVisualKeyboard::Uninstall`](../IKeymanVisualKeyboard/Uninstall). + +This method requires elevated privileges. + +## Specification + +``` clike +void InstallVisualKeyboard(string Filename) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/KeymanID.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/KeymanID.md new file mode 100644 index 0000000000..b77e5025e4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/KeymanID.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboardInstalled::KeymanID Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::KeymanID` property returns the integer +identifier for the keyboard used internally by Keyman Engine. This +number is generated when Keyman Engine starts and may be changed at any +time. + +## Specification + +``` clike +readonly long KeymanID +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/Languages.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/Languages.md new file mode 100644 index 0000000000..663fe31c4a --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/Languages.md @@ -0,0 +1,17 @@ +--- +title: IKeymanKeyboardInstalled::Languages Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::Languages` property returns an +[`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) +reference which lists the Windows languages with which the keyboard is +currently associated, as well as any suggested languages for the +keyboard that are not currently installed. + +## Specification + +``` clike +readonly IKeymanKeyboardLanguagesInstalled* Languages +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/Loaded.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/Loaded.md new file mode 100644 index 0000000000..37f69faf67 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/Loaded.md @@ -0,0 +1,17 @@ +--- +title: IKeymanKeyboardInstalled::Loaded Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::Loaded` property controls whether or not +the keyboard is currently available for use and visible to the user in +the keyboard picker. When this property is changed, +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +must be called to apply the setting to Keyman Engine. + +## Specification + +``` clike +bool Loaded +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/Options.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/Options.md new file mode 100644 index 0000000000..f52e837607 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/Options.md @@ -0,0 +1,18 @@ +--- +title: IKeymanKeyboardInstalled::Options Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::Options` property returns an +[`IKeymanKeyboardOptions`](../IKeymanKeyboardOptions) reference which +lists the user-configurable options for the keyboard layout. Changes to +this collection will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called. + +## Specification + +``` clike +readonly IKeymanKeyboardOptions* Options +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/OwnerPackage.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/OwnerPackage.md new file mode 100644 index 0000000000..615e367efb --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/OwnerPackage.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboardInstalled::OwnerPackage Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::OwnerPackage` property returns an +[`IKeymanPackageInstalled`](../IKeymanPackageInstalled) reference for +the package which contained this keyboard when it was installed. If the +keyboard was installed standalone, then `OwnerPackage` returns `null`. + +## Specification + +``` clike +readonly IKeymanPackageInstalled* OwnerPackage +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/Uninstall.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/Uninstall.md new file mode 100644 index 0000000000..0b7815ebb4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/Uninstall.md @@ -0,0 +1,26 @@ +--- +title: IKeymanKeyboardInstalled::Uninstall Method +--- + +## Introduction + +The `IKeymanKeyboardInstalled::Uninstall` method uninstalls the keyboard +file (.kmx) and related artefacts from Keyman Engine for Windows. This +includes deleting the files from the Keyman Engine keyboard store, +removing registry settings, and removing Windows input methods. + +This method removes the keyboard layout from all languages it is +associated with. + +Changes associated with calling this method are applied immediately; +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +does not need to be called. However, changes to the Windows input +methods are applied asynchronously. + +This method requires elevated privileges. + +## Specification + +``` clike +void Uninstall(bool void) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/VisualKeyboard.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/VisualKeyboard.md new file mode 100644 index 0000000000..6fa8aeb434 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/VisualKeyboard.md @@ -0,0 +1,19 @@ +--- +title: IKeymanKeyboardInstalled::VisualKeyboard Property +--- + +## Introduction + +The `IKeymanKeyboardInstalled::VisualKeyboard` property returns an +[`IKeymanVisualKeyboard`](../IKeymanVisualKeyboard) reference for the +visual keyboard associated with this keyboard. If no visual keyboard is +installed for this keyboard, then `VisualKeyboard` returns `null`. + +A visual keyboard can be installed with +[`InstallVisualKeyboard()`](InstallVisualKeyboard). + +## Specification + +``` clike +readonly IKeymanVisualKeyboard* VisualKeyboard +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardInstalled/index.md b/windows/docs/engine/api/IKeymanKeyboardInstalled/index.md new file mode 100644 index 0000000000..04fe7d283b --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardInstalled/index.md @@ -0,0 +1,79 @@ +--- +title: IKeymanKeyboardInstalled Interface +--- + +## Introduction + +The `IKeymanKeyboardInstalled` interface describes a keyboard file that +has been installed and allows modification of [keyboard option +values](Options) for the keyboard file. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanKeyboard`](../IKeymanKeyboard) +> > +> > > **`IKeymanKeyboardInstalled`** + +## Properties + +[`IconFilename`](IconFilename) read only +: Returns the string filename of the icon file associated with the + keyboard. When the keyboard is installed the icon file is generated + from the icon resource contained within the keyboard. + + + +[`KeymanID`](KeymanID) read only +: Returns the integer identifier for the keyboard used internally by + Keyman Engine. + + + +[`Languages`](Languages) read only +: Returns an + [`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) + reference which lists the Windows languages with which the keyboard + is currently associated. + + + +[`Loaded`](Loaded) +: Determines whether the keyboard layout is selectable by the user. + When unloaded, the keyboard is removed from the user's keyboard + picker. + + + +[`Options`](Options) read only +: Returns an [`IKeymanKeyboardOptions`](../IKeymanKeyboardOptions) + reference which lists the user-configurable options for the keyboard + layout. + + + +[`OwnerPackage`](OwnerPackage) read only +: If the keyboard was installed as part of a package, returns the + [`IKeymanPackageInstalled`](../IKeymanPackageInstalled) reference + for the package; otherwise returns `null`. + + + +[`VisualKeyboard`](VisualKeyboard) read only +: If an associated visual keyboard is installed, returns the + [`IKeymanVisualKeyboard`](../IKeymanVisualKeyboard) reference for + the visual keyboard; otherwise returns `null`. + +## Methods + +[`InstallVisualKeyboard()`](InstallVisualKeyboard) +: Installs a visual keyboard file into Keyman Engine for Windows and + associates it with the keyboard. + + + +[`Uninstall()`](Uninstall) +: Uninstalls the keyboard from Keyman Engine for Windows. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguage/BCP47Code.md b/windows/docs/engine/api/IKeymanKeyboardLanguage/BCP47Code.md new file mode 100644 index 0000000000..c55902c0f5 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguage/BCP47Code.md @@ -0,0 +1,14 @@ +--- +title: IKeymanKeyboardLanguage::BCP47Code Property +--- + +## Introduction + +The `IKeymanKeyboardLanguage::BCP47Code` property returns the BCP 47 +code for the language. + +## Specification + +``` clike +readonly string BCP47Code +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguage/LangID.md b/windows/docs/engine/api/IKeymanKeyboardLanguage/LangID.md new file mode 100644 index 0000000000..f0060f6397 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguage/LangID.md @@ -0,0 +1,15 @@ +--- +title: IKeymanKeyboardLanguage::LangID Property +--- + +## Introduction + +The `IKeymanKeyboardLanguage::LangID` property returns a Windows LANGID +for the Windows language. If the language does not have a LangID +defined, then this returns `0`. + +## Specification + +``` clike +readonly long LangID +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguage/Name.md b/windows/docs/engine/api/IKeymanKeyboardLanguage/Name.md new file mode 100644 index 0000000000..96330a92c3 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguage/Name.md @@ -0,0 +1,15 @@ +--- +title: IKeymanKeyboardLanguage::Name Property +--- + +## Introduction + +The `IKeymanKeyboardLanguage::Name` property returns the name of the +language, usually supplied in the metadata in the package the keyboard +is a part of. + +## Specification + +``` clike +readonly BSTR Name +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguage/OwnerKeyboard.md b/windows/docs/engine/api/IKeymanKeyboardLanguage/OwnerKeyboard.md new file mode 100644 index 0000000000..d04f317314 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguage/OwnerKeyboard.md @@ -0,0 +1,15 @@ +--- +title: IKeymanKeyboardLanguage::OwnerKeyboard Property +--- + +## Introduction + +The `IKeymanKeyboardLanguage::OwnerKeyboard` property returns +[`IKeymanKeyboard`](../IKeymanKeyboard) reference for the keyboard that +this interface belongs to. + +## Specification + +``` clike +readonly IKeymanKeyboard* OwnerKeyboard +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguage/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguage/index.md new file mode 100644 index 0000000000..fd838635c0 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguage/index.md @@ -0,0 +1,40 @@ +--- +title: IKeymanKeyboardLanguage Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguage` interface lists a language associated with +a keyboard in Keyman Engine for Windows API. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanKeyboardLanguage`** +> > +> > > [`IKeymanKeyboardLanguageInstalled`](../IKeymanKeyboardLanguageInstalled) +> > > +> > > > [`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2) + +## Properties + +[`BCP47Code`](BCP47Code) read only +: Returns a BCP 47 code for the Windows language. + + + +[`LangID`](LangID) read only +: Returns a Windows LANGID for the Windows language. + + + +[`OwnerKeyboard`](OwnerKeyboard) read only +: Returns the keyboard associated with the language. + + + +[`Name`](Name) read only +: Returns the language name for the language. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Install.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Install.md new file mode 100644 index 0000000000..df5e2d7bba --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Install.md @@ -0,0 +1,24 @@ +--- +title: IKeymanKeyboardLanguageInstalled::Install Method +--- + +## Introduction + +**Deprecated:** this function is deprecated as of Keyman 14.0. Instead, +use the functions in +[`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2). + +The `IKeymanKeyboardLanguageInstalled::Install` method adds this +keyboard layout to the Windows language, and if it is the first input +method for the language, adds the language as well. This is the best way +to install a language that is a suggested language for the keyboard. + +This method is asynchronous. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(void) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/IsInstalled.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/IsInstalled.md new file mode 100644 index 0000000000..75581a002e --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/IsInstalled.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboardLanguageInstalled::IsInstalled Property +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled::IsInstalled` property returns +`TRUE` if the keyboard is currently associated with this language in +Windows. If the language is not currently installed, then it is a +suggested language for the keyboard, per the package metadata. + +## Specification + +``` clike +readonly BOOL IsInstalled +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/OwnerKeyboard.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/OwnerKeyboard.md new file mode 100644 index 0000000000..a0e7f745da --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/OwnerKeyboard.md @@ -0,0 +1,15 @@ +--- +title: IKeymanKeyboardLanguageInstalled::OwnerKeyboard Property +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled::OwnerKeyboard` property returns +[`IKeymanKeyboardInstalled`](../IKeymanKeyboardInstalled) reference for +the keyboard that this language profile belongs to. + +## Specification + +``` clike +readonly IKeymanKeyboardInstalled* OwnerKeyboard +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/ProfileGUID.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/ProfileGUID.md new file mode 100644 index 0000000000..fb245f6e4c --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/ProfileGUID.md @@ -0,0 +1,16 @@ +--- +title: IKeymanKeyboardLanguageInstalled::ProfileGUID Property +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled::ProfileGUID` property returns the +profile GUID associated with the Text Services Framework (TSF) Text +Input Processor (TIP) installed for this keyboard, for this language. If +the language is not currently installed, then returns `GUID_NULL`. + +## Specification + +``` clike +readonly GUID ProfileGUID +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Uninstall.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Uninstall.md new file mode 100644 index 0000000000..a49cca00f3 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/Uninstall.md @@ -0,0 +1,19 @@ +--- +title: IKeymanKeyboardLanguageInstalled::Uninstall Method +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled::Uninstall` method removes this +keyboard layout from the Windows language, and if it is the last input +method for the language, removes the language as well. + +This method is asynchronous. + +This method requires elevated privileges. + +## Specification + +``` clike +void Uninstall(void) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/index.md new file mode 100644 index 0000000000..74dd3598ca --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled/index.md @@ -0,0 +1,48 @@ +--- +title: IKeymanKeyboardLanguageInstalled Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled` interface lists a Windows +language associated with a keyboard in Keyman Engine for Windows API, or +a suggested language available for installation for the keyboard. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanKeyboardLanguage`](../IKeymanKeyboardLanguage) +> > +> > > **`IKeymanKeyboardLanguageInstalled`** +> > > +> > > > [`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2) + +## Properties + +[`OwnerKeyboard`](OwnerKeyboard) read only +: Returns the keyboard associated with the language. + +[`ProfileGUID`](ProfileGUID) read only +: Returns the profile GUID associated with the Text Services Framework + (TSF) Text Input Processor (TIP) installed for this keyboard, for + this language, or `GUID_NULL` if the language is not currently + installed. + +[`IsInstalled`](IsInstalled) read only +: Returns `TRUE` if the language is currently installed for this + keyboard. + +## Methods + +[`Install()`](Install) +: Deprecated in 14.0. If not already installed, adds this keyboard + layout to the Windows language, and if necessary installs the + Windows language as well. + +[`Uninstall()`](Uninstall) +: Removes this keyboard layout from the Windows language, and if it is + the last input method for the language, removes the language as + well. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/FindInstallationLangID.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/FindInstallationLangID.md new file mode 100644 index 0000000000..17db4f3712 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/FindInstallationLangID.md @@ -0,0 +1,59 @@ +--- +title: IKeymanKeyboardLanguageInstalled2::FindInstallationLangID Method +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled2::FindInstallationLangID` method +finds a LANGID for the language, which can then be passed into +[`IKeymanKeyboardLanguageInstalled2::RegisterTip`](RegisterTip) and +[`IKeymanKeyboardLanguageInstalled2::InstallTip`](InstallTip) to +complete registration. + +If the BCP 47 tag does not have a corresponding system LANGID, then +Windows will allocate one of four transient LANGIDs to the tag. These +LANGIDs can differ between systems. In this situation, Windows installs +a temporary placeholder system keyboard which Keyman then replaces as it +completes the installation process. + +## Specification + +``` clike +bool FindInstallationLangID(long* LangID, string* TemporaryKeyboardID, bool *RegistrationRequired, tagKeymanInstallFlags Flags); +``` + +## Parameters + +`LangID` +: On success, this is filled with the corresponding `LANGID`. + +`TemporaryKeyboardID` +: On success, and if the `kifInstallTransientLanguage` flag is + specified, this may contain a string which should be passed to + `InstallTip` to be replaced with the Keyman keyboard. Internally, + this string conforms to the Windows API `InstallLayoutorTip` format. + +`RegistrationRequired` +: If `True`, a call to `RegisterTip` will be required to complete + installation of this language, as Keyman is not currently registered + for this language with the Text Services Framework. + +`Flags` +: Can be `0` or `kifInstallTransientLanguage`. If + `kifInstallTransientLanguage` is specified, then Keyman will install + a transient language (Windows 8 or later) for BCP 47 tags that do + not have a corresponding system LANGID. + +## Returns + +Returns `True` if a corresponding `LANGID` was found. + +## See also + +[`InstallTip()`](InstallTip) +: Installs a registered language profile (persists over reboot) for + the current user. + +[`RegisterTip()`](RegisterTip) +: Registers a language profile in Text Services Framework for this + language (requires elevation). diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/InstallTip.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/InstallTip.md new file mode 100644 index 0000000000..37b2fe9747 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/InstallTip.md @@ -0,0 +1,38 @@ +--- +title: IKeymanKeyboardLanguageInstalled2::InstallTip Method +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled2::InstallTip` installs a +registered Keyman Text Services Framework Text Input Processor (TIP) +input method for the specified language for the current user. The input +method is installed persistently over reboots. + +## Specification + +``` clike +void InstallTip(long LangID, string TemporaryKeyboardID); +``` + +## Parameters + +`LangID` +: The `LANGID` to install, which can be found with + [`FindInstallationLangID`](FindInstallationLangID). + +`TemporaryKeyboardID` +: This value should be passed unmodified from the value returned from + `FindInstallationLangID`. It allows Keyman to replace a temporary + Windows keyboard with the desired Keyman keyboard, for transient + LANGIDs. + +## See also + +[`FindInstallationLangID()`](FindInstallationLangID) +: Finds a Windows LANGID for this language's BCP 47 code, including + optionally installing a transient language if required. + +[`RegisterTip()`](RegisterTip) +: Registers a language profile in Text Services Framework for this + language (requires elevation). diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/IsRegistered.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/IsRegistered.md new file mode 100644 index 0000000000..255c2d5633 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/IsRegistered.md @@ -0,0 +1,26 @@ +--- +title: IKeymanKeyboardLanguageInstalled2::IsRegistered Method +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled2::IsRegistered` returns `True` if +a Keyman Text Services Framework Text Input Processor (TIP) input method +is registered for the specified language. + +## Specification + +``` clike +bool IsRegisterTip(); +``` + +## Returns + +Returns `True` if the Keyman TIP is registered for this keyboard +language. + +## See also + +[`RegisterTip()`](RegisterTip) +: Registers a language profile in Text Services Framework for this + language (requires elevation). diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/RegisterTip.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/RegisterTip.md new file mode 100644 index 0000000000..2c0270147b --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/RegisterTip.md @@ -0,0 +1,31 @@ +--- +title: IKeymanKeyboardLanguageInstalled2::RegisterTip Method +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled2::RegisterTip` registers a Keyman +Text Services Framework Text Input Processor (TIP) input method for the +specified language. This method requires elevation. + +## Specification + +``` clike +void RegisterTip(long LangID); +``` + +## Parameters + +`LangID` +: The `LANGID` to register, which can be found with + [`FindInstallationLangID`](FindInstallationLangID). + +## See also + +[`FindInstallationLangID()`](FindInstallationLangID) +: Finds a Windows LANGID for this language's BCP 47 code, including + optionally installing a transient language if required. + +[`InstallTip()`](InstallTip) +: Installs a registered language profile (persists over reboot) for + the current user. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/index.md new file mode 100644 index 0000000000..d7cedb371f --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguageInstalled2/index.md @@ -0,0 +1,46 @@ +--- +title: IKeymanKeyboardLanguageInstalled2 Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguageInstalled2` interface adds extension +functions for installing languages. These functions should be used in +preference to the now-deprecated +[`IKeymanKeyboardLanguagesInstalled::Install`](../IKeymanKeyboardLanguagesInstalled/Install) +and +[`IKeymanKeyboardLanguagesInstalled::InstallByLangID`](../IKeymanKeyboardLanguagesInstalled/InstallByLangID) +methods. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanKeyboardLanguage`](../IKeymanKeyboardLanguage) +> > +> > > [`IKeymanKeyboardLanguageInstalled`](../IKeymanKeyboardLanguageInstalled) +> > > +> > > > **`IKeymanKeyboardLanguageInstalled2`** + +## Methods + +[`FindInstallationLangID()`](FindInstallationLangID) +: Finds a Windows LANGID for this language's BCP 47 code, including + optionally installing a transient language if required. + +[`InstallTip()`](InstallTip) +: Installs a registered language profile (persists over reboot) for + the current user. + +[`IsRegistered()`](IsRegistered) +: Returns true if there is an associated registered language profile. + +[`RegisterTip()`](RegisterTip) +: Registers a language profile in Text Services Framework for this + language (requires elevation). + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguages/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguages/index.md new file mode 100644 index 0000000000..8713b52e06 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguages/index.md @@ -0,0 +1,25 @@ +--- +title: IKeymanKeyboardLanguages Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguages` interface lists the Windows languages +associated with a keyboard in Keyman Engine for Windows API. This +interface has no members; see the child interfaces for details. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanKeyboardLanguages`** +> > > +> > > > [`IKeymanKeyboardLanguagesFile`](../IKeymanKeyboardLanguagesFile) +> > > > [`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) +> > > > +> > > > > [`IKeymanKeyboardLanguagesInstalled2`](../IKeymanKeyboardLanguagesInstalled2) + diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/Items.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/Items.md new file mode 100644 index 0000000000..c48eccc74b --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboardLanguagesFile::Items[Index] Property +--- + +## Introduction + +The `IKeymanKeyboardLanguagesFile::Items[Index]` property returns a +reference to the installed language identified by `Index`. If the index +is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanKeyboardLanguage* Items[long Index] +``` + +## Parameters + +Index +: A zero-based index. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/index.md new file mode 100644 index 0000000000..83c1edef90 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesFile/index.md @@ -0,0 +1,26 @@ +--- +title: IKeymanKeyboardLanguagesFile Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguagesFile` interface lists the languages +associated with a keyboard file in Keyman Engine for Windows API. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboardLanguages`](../IKeymanKeyboardLanguages) +> > > +> > > > **`IKeymanKeyboardLanguagesFile`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanKeyboardLanguage`](../IKeymanKeyboardLanguage) + reference for the language identified by `Index`. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Install.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Install.md new file mode 100644 index 0000000000..df831d047c --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Install.md @@ -0,0 +1,30 @@ +--- +title: IKeymanKeyboardLanguagesInstalled::Install Method +--- + +## Introduction + +**Deprecated:** this function is deprecated as of Keyman 14.0. Instead, +use the functions in +[`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2). + +The `IKeymanKeyboardLanguagesInstalled::Install` adds the keyboard +layout to the referenced BCP 47 language code in Windows. If the +language code is not yet installed, this method installs it as well. + +This method is asynchronous. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(string Bcp47Code) +``` + +## Parameters + +`Bcp47Code` +: The BCP 47 code to associate the keyboard with. Windows will + normalize these codes so after installation you may find the layout + available under a normalized code and not the one you expected. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/InstallByLangID.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/InstallByLangID.md new file mode 100644 index 0000000000..dcaa7a8aaf --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/InstallByLangID.md @@ -0,0 +1,28 @@ +--- +title: IKeymanKeyboardLanguagesInstalled::InstallByLangID Method +--- + +## Introduction + +**Deprecated:** this function is deprecated as of Keyman 14.0. Instead, +use the functions in +[`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2). + +The `IKeymanKeyboardLanguagesInstalled::InstallByLangID` adds the +keyboard layout to the referenced LangID language code in Windows. If +the language code is not yet installed, this method installs it as well. + +This method is asynchronous. + +This method requires elevated privileges. + +## Specification + +``` clike +void InstallByLangID(long LangID) +``` + +## Parameters + +`LangID` +: The language ID code to associate the keyboard with. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Items.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Items.md new file mode 100644 index 0000000000..946e523e8f --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboardLanguagesInstalled::Items[Index] Property +--- + +## Introduction + +The `IKeymanKeyboardLanguagesInstalled::Items[Index]` property returns a +reference to the installed language identified by `Index`. If the index +is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanKeyboardLanguageInstalled* Items[long Index] +``` + +## Parameters + +Index +: A zero-based index. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/index.md new file mode 100644 index 0000000000..64c1d7e520 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled/index.md @@ -0,0 +1,45 @@ +--- +title: IKeymanKeyboardLanguagesInstalled Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguagesInstalled` interface lists the languages +associated with a keyboard in Keyman Engine for Windows API. This list +is the set of languages currently installed for use, or suggested for +the keyboard by the keyboard developer. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboardLanguages`](../IKeymanKeyboardLanguages) +> > > +> > > > **`IKeymanKeyboardLanguagesInstalled`** +> > > > +> > > > > [`IKeymanKeyboardLanguagesInstalled2`](../IKeymanKeyboardLanguagesInstalled2) + +## Properties + +[`Items[Index]`](Items) read only +: Returns an + [`IKeymanKeyboardLanguageInstalled`](../IKeymanKeyboardLanguageInstalled) + reference for the language identified by `Index`. + +## Methods + +[`Install()`](Install) +: **Deprecated in 14.0.** Associates the keyboard layout with the + referenced BCP 47 language code in Windows, and if necessary + installs the language as well. + + + +[`InstallByLangID()`](InstallByLangID) +: **Deprecated in 14.0.** Associates the keyboard layout with the + referenced legacy LANGID language code in Windows, and if necessary + installs the language as well. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/Add.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/Add.md new file mode 100644 index 0000000000..0f0aa5fecd --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/Add.md @@ -0,0 +1,24 @@ +--- +title: IKeymanKeyboardLanguagesInstalled2::Add Method +--- + +## Introduction + +The `IKeymanKeyboardLanguagesInstalled2::Add` adds an entry to the +in-memory list in preparation for registration and installation with the +functions in the +[`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2) +interface. + +## Specification + +``` clike +IKeymanKeyboardLanguagesInstalled Add(string Bcp47Tag) +``` + +## Parameters + +`Bcp47Tag` +: The BCP 47 tag to associate the keyboard with. Windows will + normalize these codes so after installation you may find the layout + available under a normalized code and not the one you expected. diff --git a/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/index.md b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/index.md new file mode 100644 index 0000000000..e7392686b4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardLanguagesInstalled2/index.md @@ -0,0 +1,33 @@ +--- +title: IKeymanKeyboardLanguagesInstalled2 Interface +--- + +## Introduction + +The `IKeymanKeyboardLanguagesInstalled2` adds an extension method to +allow for adding a new language in preparation to register and install +it. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboardLanguages`](../IKeymanKeyboardLanguages) +> > > +> > > > [`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) +> > > > +> > > > > **`IKeymanKeyboardLanguagesInstalled2`** + +## Methods + +[`Add()`](Add) +: Adds a new language to the in-memory list in preparation for + registration and installation. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanKeyboardOption/Name.md b/windows/docs/engine/api/IKeymanKeyboardOption/Name.md new file mode 100644 index 0000000000..5fed0c0cbc --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOption/Name.md @@ -0,0 +1,14 @@ +--- +title: IKeymanKeyboardOption::Name Property +--- + +## Introduction + +The `IKeymanKeyboardOption::Name` property returns the name of the +option as defined by the keyboard developer. + +## Specification + +``` clike +readonly string Name +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardOption/Value.md b/windows/docs/engine/api/IKeymanKeyboardOption/Value.md new file mode 100644 index 0000000000..310b03cf18 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOption/Value.md @@ -0,0 +1,18 @@ +--- +title: IKeymanKeyboardOption::Value Property +--- + +## Introduction + +The `IKeymanKeyboardOption::Value` property controls the current value +of the option. Valid values depend on the keyboard layout. + +Changes to this value will be applied after +[`IKeymanKeyboardsInstalled::Apply`](../IKeymanKeyboardsInstalled/Apply) +is called. + +## Specification + +``` clike +string Value +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardOption/index.md b/windows/docs/engine/api/IKeymanKeyboardOption/index.md new file mode 100644 index 0000000000..776e5304ed --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOption/index.md @@ -0,0 +1,29 @@ +--- +title: IKeymanKeyboardOption Interface +--- + +## Introduction + +The `IKeymanKeyboardOption` interface lists an option associated with a +specific keyboard. The options are defined by the keyboard developer +through the [variable stores](/developer/language/guide/variable-stores) +feature. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanKeyboardOption`** + +## Properties + +[`Name`](Name) read only +: Returns the name of the option as defined by the keyboard developer. + + + +[`Value`](Value) +: Controls the current value of the option. Valid values depend on the + keyboard layout. diff --git a/windows/docs/engine/api/IKeymanKeyboardOptions/IndexOf.md b/windows/docs/engine/api/IKeymanKeyboardOptions/IndexOf.md new file mode 100644 index 0000000000..0c82464263 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOptions/IndexOf.md @@ -0,0 +1,17 @@ +--- +title: IKeymanKeyboardOptions::IndexOf Method +--- + +## Introduction + +The `IKeymanKeyboardOptions::IndexOf` method returns the zero-based +index of the option in the array that has a name matching the `Name` +parameter. + +If no option matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string Name) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardOptions/Items.md b/windows/docs/engine/api/IKeymanKeyboardOptions/Items.md new file mode 100644 index 0000000000..0f69401b98 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOptions/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanKeyboardOptions::Items[Index] Property +--- + +## Introduction + +The `IKeymanKeyboardOptions::Items[Index]` property returns a reference +to the keyboard option by `Index`. If the option is not found, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanKeyboardOption* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based index, or a string referencing the option by + [`IKeymanKeyboardOption::Name`](../IKeymanKeyboardOption/Name). diff --git a/windows/docs/engine/api/IKeymanKeyboardOptions/index.md b/windows/docs/engine/api/IKeymanKeyboardOptions/index.md new file mode 100644 index 0000000000..9a727539db --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardOptions/index.md @@ -0,0 +1,35 @@ +--- +title: IKeymanKeyboardOptions Interface +--- + +## Introduction + +The `IKeymanKeyboardOptions` interface lists options associated with a +specific keyboard. The options are defined by the keyboard developer +through the [variable stores](/developer/language/guide/variable-stores) +feature. + +These options are distinct from the +[`IKeymanOptions`](../IKeymanOptions) which control the operation of +Keyman Engine. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanKeyboardOptions`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanKeyboardOption`](../IKeymanKeyboardOption) + reference for the option identified by `Index`. + + + +[`IndexOf()`](IndexOf) +: Gets the index of an option by ID in the collection. diff --git a/windows/docs/engine/api/IKeymanKeyboards/IndexOf.md b/windows/docs/engine/api/IKeymanKeyboards/IndexOf.md new file mode 100644 index 0000000000..cdd19f4295 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboards/IndexOf.md @@ -0,0 +1,18 @@ +--- +title: IKeymanKeyboards::IndexOf Method +--- + +## Introduction + +The `IKeymanKeyboards::IndexOf` method returns the zero-based index of +the keyboard in the array that has an ID matching the `ID` parameter. +The ID is formed from the base name of the keyboard, i.e. excluding path +and extension, and is case insensitive. + +If no keyboard matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string ID) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboards/index.md b/windows/docs/engine/api/IKeymanKeyboards/index.md new file mode 100644 index 0000000000..128403618e --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboards/index.md @@ -0,0 +1,29 @@ +--- +title: IKeymanKeyboards Interface +--- + +## Introduction + +The `IKeymanKeyboards` interface is the base interface for the a list of +keyboards in Keyman Engine for Windows API. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanKeyboards`** +> > > +> > > > [`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) +> > > > +> > > > > [`IKeymanKeyboardsInstalled2`](../IKeymanKeyboardsInstalled2) +> > > > +> > > > [`IKeymanPackageContentKeyboards`](../IKeymanPackageContentKeyboards) + +## Methods + +[`IndexOf()`](IndexOf) +: Find the index of a keyboard by ID diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled/Apply.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Apply.md new file mode 100644 index 0000000000..f388feb2ff --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Apply.md @@ -0,0 +1,24 @@ +--- +title: IKeymanKeyboardsInstalled::Apply Method +--- + +## Introduction + +The `IKeymanKeyboardsInstalled::Apply` method applies any changes which +have been made to the collection to the Keyman Engine. `Apply` must be +called if [`IKeyman::AutoApply`](../IKeyman/AutoApply) is set to +`False`, after making any changes through the Keyman API. The +documentation for each method that makes changes documents whether or +not `Apply` needs to be called. + +Generally, it is better to call the top-level +[`IKeyman::Apply`](../IKeyman/Apply) as that will ensure that changes to +be applied will be consistently applied from all parts of the API at +once. It is also faster than calling each collection's `Apply` method +separately in order. + +## Specification + +``` clike +void Apply(void) +``` diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled/GetKeyboardFromFile.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled/GetKeyboardFromFile.md new file mode 100644 index 0000000000..79a2b58faa --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled/GetKeyboardFromFile.md @@ -0,0 +1,20 @@ +--- +title: IKeymanKeyboardsInstalled::GetKeyboardFromFile Method +--- + +## Introduction + +The `IKeymanKeyboardsInstalled::GetKeyboardFromFile` method loads the +keyboard file referred to by Filename and returns details about the +file. It does not install the keyboard for use. + +## Specification + +``` clike +IKeymanKeyboardFile* GetKeyboardFromFile(string Filename) +``` + +## Parameters + +Filename +: The fully-qualified path to the .kmx file to be loaded. diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled/Install.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Install.md new file mode 100644 index 0000000000..0f37733bf9 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Install.md @@ -0,0 +1,44 @@ +--- +title: IKeymanKeyboardsInstalled::Install Method +--- + +## Introduction + +The `IKeymanKeyboardsInstalled::Install` installs a keyboard file (.kmx) +into Keyman Engine for Windows. This includes copying the file into the +Keyman Engine keyboard store, adding registry settings, and installing +the Windows input method. As installing Windows input methods is an +asynchronous process, this method may not be complete when it returns. + +This method adds the keyboard to the default language as specified in +the +[`IKeymanKeyboard::DefaultBCP47Languages`](../IKeymanKeyboard/DefaultBCP47Languages) +property. + +## Specification + +``` clike +void Install(string Filename, bool Force) +``` + +## Parameters + +`Filename` +: The fully-qualified path to the .kmx file to be installed. This file + will be copied to the Keyman keyboard store. + +`Force` +: If `True`, overwrites an existing keyboard entry. + +## See also + +[`IKeymanKeyboardsInstalled::Install2`](../IKeymanKeyboardsInstalled2/Install2) +: Installs a keyboard file, optionally with input method for default + language + +[`IKeymanKeyboardFile::Install`](../IKeymanKeyboardFile/Install) +: Installs a keyboard file and input method for default language + +[`IKeymanKeyboardFile2::Install2`](../IKeymanKeyboardFile2/Install2) +: Installs a keyboard file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled/Items.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Items.md new file mode 100644 index 0000000000..6a2fac15e8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled/Items.md @@ -0,0 +1,22 @@ +--- +title: IKeymanKeyboardsInstalled::Items[Index] Property +--- + +## Introduction + +The `IKeymanKeyboardsInstalled::Items[Index]` property returns a +reference to the installed keyboard identified by `Index`. If the +keyboard is not found, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanKeyboardInstalled* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index or the string + [`IKeymanKeyboard::ID`](../IKeymanKeyboard/ID) of the keyboard. diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled/index.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled/index.md new file mode 100644 index 0000000000..057cecc6a8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled/index.md @@ -0,0 +1,42 @@ +--- +title: IKeymanKeyboardsInstalled Interface +--- + +## Introduction + +The `IKeymanKeyboardsInstalled` interface lists the installed keyboards +in Keyman Engine for Windows API. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboards`](../IKeymanKeyboards) +> > > +> > > > **`IKeymanKeyboardsInstalled`** +> > > > +> > > > > [`IKeymanKeyboardsInstalled2`](../IKeymanKeyboardsInstalled2) + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanKeyboardInstalled`](../IKeymanKeyboardInstalled) + reference for the keyboard identified by `Index`. + +## Methods + +[`GetKeyboardFromFile()`](GetKeyboardFromFile) +: Returns an [`IKeymanKeyboardFile`](../IKeymanKeyboardFile) reference + for a keyboard file on disk. + +[`Install()`](Install) +: Installs the referenced keyboard file into Keyman Engine for + Windows. + +[`Apply()`](Apply) +: Applies changes made to the keyboards in the collection to Keyman + Engine for Windows. diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled2/Install2.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled2/Install2.md new file mode 100644 index 0000000000..7402560be2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled2/Install2.md @@ -0,0 +1,48 @@ +--- +title: IKeymanKeyboardsInstalled2::Install2 Method +--- + +## Introduction + +The `IKeymanKeyboardsInstalled2::Install2` installs a keyboard file +(.kmx) into Keyman Engine for Windows. This includes copying the file +into the Keyman Engine keyboard store, adding registry settings, and +optionally installing the Windows input method. As installing Windows +input methods is an asynchronous process, this method may not be +complete when it returns. + +If the input method is installed, this method adds the keyboard to the +default language as specified in the +[`IKeymanKeyboard::DefaultBCP47Languages`](../IKeymanKeyboard/DefaultBCP47Languages) +property. + +## Specification + +``` clike +void Install2(string Filename, bool Force, bool InstallDefaultLanguage) +``` + +## Parameters + +`Filename` +: The fully-qualified path to the .kmx file to be installed. This file + will be copied to the Keyman keyboard store. + +`Force` +: If `True`, overwrites an existing keyboard entry. + +`InstallDefaultLanguage` +: If `True`, installs the Windows input method for the default + language. + +## See also + +[`IKeymanKeyboardsInstalled::Install`](../IKeymanKeyboardsInstalled/Install) +: Installs a keyboard file and input method for default language + +[`IKeymanKeyboardFile::Install`](../IKeymanKeyboardFile/Install) +: Installs a keyboard file and input method for default language + +[`IKeymanKeyboardFile2::Install2`](../IKeymanKeyboardFile2/Install2) +: Installs a keyboard file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanKeyboardsInstalled2/index.md b/windows/docs/engine/api/IKeymanKeyboardsInstalled2/index.md new file mode 100644 index 0000000000..164dd12456 --- /dev/null +++ b/windows/docs/engine/api/IKeymanKeyboardsInstalled2/index.md @@ -0,0 +1,32 @@ +--- +title: IKeymanKeyboardsInstalled2 Interface +--- + +## Introduction + +The `IKeymanKeyboardsInstalled2` interface adds an extension function +for installing additional keyboards. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboards`](../IKeymanKeyboards) +> > > +> > > > [`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) +> > > > +> > > > > **`IKeymanKeyboardsInstalled2`** + +## Methods + +[`Install2()`](Install2) +: Installs the referenced keyboard file into Keyman Engine for + Windows, with option to install default language at same time. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanLanguage/BCP47Code.md b/windows/docs/engine/api/IKeymanLanguage/BCP47Code.md new file mode 100644 index 0000000000..4affb2ed7f --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/BCP47Code.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::BCP47Code Property +--- + +## Introduction + +The `IKeymanLanguage::BCP47Code` property returns a BCP 47 code for the +Windows language, on operating systems that support it. + +## Specification + +``` clike +readonly string BCP47Code +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/HKL.md b/windows/docs/engine/api/IKeymanLanguage/HKL.md new file mode 100644 index 0000000000..5621803b05 --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/HKL.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::HKL Property +--- + +## Introduction + +The `IKeymanLanguage::HKL` property returns a Windows HKL for the input +method. + +## Specification + +``` clike +readonly long HKL +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/Hotkey.md b/windows/docs/engine/api/IKeymanLanguage/Hotkey.md new file mode 100644 index 0000000000..84d67d1d0f --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/Hotkey.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::Hotkey Property +--- + +## Introduction + +The `IKeymanLanguage::Hotkey` property controls the configured hotkey +that will activate the input method when pressed. + +## Specification + +``` clike +IKeymanHotkey* Hotkey +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/KeymanKeyboardLanguage.md b/windows/docs/engine/api/IKeymanLanguage/KeymanKeyboardLanguage.md new file mode 100644 index 0000000000..2f0545a1f4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/KeymanKeyboardLanguage.md @@ -0,0 +1,16 @@ +--- +title: IKeymanLanguage::KeymanKeyboardLanguage Property +--- + +## Introduction + +The `IKeymanLanguage::KeymanKeyboardLanguage` property returns the +Keyman Keyboard language association that is associated with this input +method, if the input method is a Keyman input method instance, otherwise +`KeymanKeyboardLanguage` returns `null`. + +## Specification + +``` clike +readonly KeymanKeyboardLanguageInstalled* KeymanKeyboardLanguage +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/LangID.md b/windows/docs/engine/api/IKeymanLanguage/LangID.md new file mode 100644 index 0000000000..e5a9520b65 --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/LangID.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::LangID Property +--- + +## Introduction + +The `IKeymanLanguage::LangID` property returns a Windows LANGID for the +Windows language. + +## Specification + +``` clike +readonly long LangID +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/LayoutName.md b/windows/docs/engine/api/IKeymanLanguage/LayoutName.md new file mode 100644 index 0000000000..ad482d681d --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/LayoutName.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::LayoutName Property +--- + +## Introduction + +The `IKeymanLanguage::LayoutName` property returns the name of the input +method. + +## Specification + +``` clike +readonly string LayoutName +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/LocaleName.md b/windows/docs/engine/api/IKeymanLanguage/LocaleName.md new file mode 100644 index 0000000000..dd8c56b35b --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/LocaleName.md @@ -0,0 +1,14 @@ +--- +title: IKeymanLanguage::LocaleName Property +--- + +## Introduction + +The `IKeymanLanguage::LocaleName` property returns the name of the +language. + +## Specification + +``` clike +readonly string LocaleName +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/ProfileGUID.md b/windows/docs/engine/api/IKeymanLanguage/ProfileGUID.md new file mode 100644 index 0000000000..dbf7a395ce --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/ProfileGUID.md @@ -0,0 +1,15 @@ +--- +title: IKeymanLanguage::ProfileGUID Property +--- + +## Introduction + +The `IKeymanLanguage::ProfileGUID` property returns the profile GUID +associated with the Text Services Framework (TSF) Text Input Processor +(TIP) installed for this keyboard, for this language. + +## Specification + +``` clike +readonly GUID ProfileGUID +``` diff --git a/windows/docs/engine/api/IKeymanLanguage/index.md b/windows/docs/engine/api/IKeymanLanguage/index.md new file mode 100644 index 0000000000..5fcfa278f2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguage/index.md @@ -0,0 +1,48 @@ +--- +title: IKeymanLanguage Interface +--- + +## Introduction + +The `IKeymanLanguage` interface lists a Windows input method entry. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanLanguage`** + +## Properties + +[`BCP47Code`](BCP47Code) read only +: Returns a BCP 47 code for the Windows language, on operating systems + that support it. + +[`HKL`](HKL) read only +: Returns a Windows HKL for the input method. + +[`Hotkey`](Hotkey) +: Controls the current hotkey that will activate the keyboard layout + with the selected language. + +[`KeymanKeyboardLanguage`](KeymanKeyboardLanguage) read only +: Returns a + [`IKeymanKeyboardLanguageInstalled`](../IKeymanKeyboardLanguageInstalled) + reference for the Keyman keyboard language entry that this entry is + associated with. + +[`LangID`](LangID) read only +: Returns a Windows LANGID for the Windows language. + +[`LayoutName`](LayoutName) read only +: Returns the display name of the input method. + +[`LocaleName`](LocaleName) read only +: Returns the display name of the language. + +[`ProfileGUID`](ProfileGUID) read only +: Returns the profile GUID associated with the Text Services Framework + (TSF) Text Input Processor (TIP) installed for this keyboard, for + this language. diff --git a/windows/docs/engine/api/IKeymanLanguages/Items.md b/windows/docs/engine/api/IKeymanLanguages/Items.md new file mode 100644 index 0000000000..1f6a372f6e --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguages/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanLanguages::Items[Index] Property +--- + +## Introduction + +The `IKeymanLanguages::Items[Index]` property returns a +[`IKeymanLanguage`](../IKeymanLanguage) reference to the installed +language identified by `Index`. If the index is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanLanguage* Items[long Index] +``` + +## Parameters + +Index +: A zero-based index. diff --git a/windows/docs/engine/api/IKeymanLanguages/index.md b/windows/docs/engine/api/IKeymanLanguages/index.md new file mode 100644 index 0000000000..2205a2de5a --- /dev/null +++ b/windows/docs/engine/api/IKeymanLanguages/index.md @@ -0,0 +1,27 @@ +--- +title: IKeymanLanguages Interface +--- + +## Introduction + +The `IKeymanLanguages` interface lists all the Windows input methods +currently loaded on the system. As Keyman keyboards are installed as +Windows input methods, this interface will list Keyman input methods as +well as Windows system-supplied input methods and other third party +input methods that present as Windows input methods. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanLanguages`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanLanguage`](../IKeymanLanguage) reference for the + windows language identified by `Index`. diff --git a/windows/docs/engine/api/IKeymanObject/SerializeXML.md b/windows/docs/engine/api/IKeymanObject/SerializeXML.md new file mode 100644 index 0000000000..620b5c55ce --- /dev/null +++ b/windows/docs/engine/api/IKeymanObject/SerializeXML.md @@ -0,0 +1,35 @@ +--- +title: IKeymanObject::SerializeXML Method +--- + +## Introduction + +The `IKeymanObject::SerializeXML` method serializes the properties and +owned objects of the object as XML. The content of the XML varies by +interface. Some objects will serialize image data as well, for example +keyboard files will serialize an icon for the keyboard, which will be +saved to disk as a temporary file. + +## Specification + +``` clike +string SerializeXML(KeymanSerializeFlags Flags, string ImagePath, out string[] References) +``` + +## Parameters + +`Flags` +: Can be `0` or `ksfExportImages`. + +`ImagePath` +: If `ksfExportImages` is set, then this must contain a valid fully + qualified path where temporary image files will be saved. + +`References` +: If `ksfExportImages` is set, then on return includes a list of all + image files generated for the XML. + +## Return Value + +`IKeymanObject::SerializeXML` returns a well-formed snippet of XML in a +string. diff --git a/windows/docs/engine/api/IKeymanObject/index.md b/windows/docs/engine/api/IKeymanObject/index.md new file mode 100644 index 0000000000..e1bccf8cff --- /dev/null +++ b/windows/docs/engine/api/IKeymanObject/index.md @@ -0,0 +1,82 @@ +--- +title: IKeymanObject Interface +--- + +## Introduction + +The `IKeymanObject` interface is the base interface for all interfaces +in Keyman Engine for Windows API. + +## Interface Hierarchy + +`IDispatch` + +> **`IKeymanObject`** +> +> > [`IKeyman`](../IKeyman) +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanErrors`](../IKeymanErrors) +> > > [`IKeymanHotkeys`](../IKeymanHotkeys) +> > > [`IKeymanKeyboardLanguages`](../IKeymanKeyboardLanguages) +> > > +> > > > [`IKeymanKeyboardLanguagesFile`](../IKeymanKeyboardLanguagesFile) +> > > > [`IKeymanKeyboardLanguagesInstalled`](../IKeymanKeyboardLanguagesInstalled) +> > > > +> > > > > [`IKeymanKeyboardLanguagesInstalled2`](../IKeymanKeyboardLanguagesInstalled2) +> > > +> > > [`IKeymanKeyboardOptions`](../IKeymanKeyboardOptions) +> > > [`IKeymanKeyboards`](../IKeymanKeyboards) +> > > +> > > > [`IKeymanKeyboardsInstalled`](../IKeymanKeyboardsInstalled) +> > > > +> > > > > [`IKeymanKeyboardsInstalled2`](../IKeymanKeyboardsInstalled2) +> > > > +> > > > [`IKeymanPackageContentKeyboards`](../IKeymanPackageContentKeyboards) +> > > +> > > [`IKeymanLanguages`](../IKeymanLanguages) +> > > [`IKeymanOptions`](../IKeymanOptions) +> > > [`IKeymanPackageContentFiles`](../IKeymanPackageContentFiles) +> > > [`IKeymanPackageContentFonts`](../IKeymanPackageContentFonts) +> > > [`IKeymanPackagesInstalled`](../IKeymanPackagesInstalled) +> > > +> > > > [`IKeymanPackagesInstalled2`](../IKeymanPackagesInstalled2) +> > +> > [`IKeymanControl`](../IKeymanControl) +> > [`IKeymanError`](../IKeymanError) +> > [`IKeymanHotkey`](../IKeymanHotkey) +> > [`IKeymanKeyboard`](../IKeymanKeyboard) +> > +> > > [`IKeymanKeyboardFile`](../IKeymanKeyboardFile) +> > > +> > > > [`IKeymanKeyboardFile2`](../IKeymanKeyboardFile2) +> > > +> > > [`IKeymanKeyboardInstalled`](../IKeymanKeyboardInstalled) +> > +> > [`IKeymanKeyboardLanguage`](../IKeymanKeyboardLanguage) +> > +> > > [`IKeymanKeyboardLanguageInstalled`](../IKeymanKeyboardLanguageInstalled) +> > > +> > > > [`IKeymanKeyboardLanguageInstalled2`](../IKeymanKeyboardLanguageInstalled2) +> > +> > [`IKeymanKeyboardOption`](../IKeymanKeyboardOption) +> > [`IKeymanLanguage`](../IKeymanLanguage) +> > [`IKeymanOption`](../IKeymanOption) +> > [`IKeymanPackage`](../IKeymanPackage) +> > +> > > [`IKeymanPackageFile`](../IKeymanPackageFile) +> > > +> > > > [`IKeymanPackageFile2`](../IKeymanPackageFile2) +> > > +> > > [`IKeymanPackageInstalled`](../IKeymanPackageInstalled) +> > +> > [`IKeymanPackageContentFile`](../IKeymanPackageContentFile) +> > [`IKeymanPackageContentFont`](../IKeymanPackageContentFont) +> > [`IKeymanSystemInfo`](../IKeymanSystemInfo) +> > [`IKeymanVisualKeyboard`](../IKeymanVisualKeyboard) +> > [`IKeymanBCP47Canonicalization`](../IKeymanBCP47Canonicalization) + +## Methods + +[`SerializeXML()`](SerializeXML) +: Serializes the properties of the object, and owned objects as XML diff --git a/windows/docs/engine/api/IKeymanOption/DefaultValue.md b/windows/docs/engine/api/IKeymanOption/DefaultValue.md new file mode 100644 index 0000000000..438ca592b8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/DefaultValue.md @@ -0,0 +1,14 @@ +--- +title: IKeymanOption::DefaultValue Property +--- + +## Introduction + +The `IKeymanOption::DefaultValue` property returns the default value for +the option. + +## Specification + +``` clike +readonly variant DefaultValue +``` diff --git a/windows/docs/engine/api/IKeymanOption/Enabled.md b/windows/docs/engine/api/IKeymanOption/Enabled.md new file mode 100644 index 0000000000..7699018e64 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/Enabled.md @@ -0,0 +1,16 @@ +--- +title: IKeymanOption::Enabled Property +--- + +## Introduction + +The `IKeymanOption::Enabled` property returns `True` if the option value +can be changed. Some options are unavailable to be changed at certain +times, for example if the user does not have sufficient permissions, or +on certain operating system configurations. + +## Specification + +``` clike +readonly bool Enabled +``` diff --git a/windows/docs/engine/api/IKeymanOption/Group.md b/windows/docs/engine/api/IKeymanOption/Group.md new file mode 100644 index 0000000000..fda2b10d2f --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/Group.md @@ -0,0 +1,15 @@ +--- +title: IKeymanOption::Group Property +--- + +## Introduction + +The `IKeymanOption::Group` property returns the identifier of the group +to which the option belongs. The friendly name for the identifier will +be found in the locale translation file. + +## Specification + +``` clike +readonly string Group +``` diff --git a/windows/docs/engine/api/IKeymanOption/ID.md b/windows/docs/engine/api/IKeymanOption/ID.md new file mode 100644 index 0000000000..eae1bb5cb6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/ID.md @@ -0,0 +1,15 @@ +--- +title: IKeymanOption::ID Property +--- + +## Introduction + +The `IKeymanOption::ID` property returns the identifier of the option. +The friendly name for the identifier will be found in the locale +translation file. + +## Specification + +``` clike +readonly string ID +``` diff --git a/windows/docs/engine/api/IKeymanOption/OptionType.md b/windows/docs/engine/api/IKeymanOption/OptionType.md new file mode 100644 index 0000000000..3d7d0f1715 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/OptionType.md @@ -0,0 +1,24 @@ +--- +title: IKeymanOption::OptionType Property +--- + +## Introduction + +The `IKeymanOption::OptionType` property returns the data type for the +[`Value`](Value) and [`DefaultValue`](DefaultValue) properties. + +## Specification + +``` clike +readonly KeymanOptionType OptionType +``` + +## Option Data Types + +| Value | Name | +|-------|-----------| +| 0 | kotUnknown| +| 1 | kotBool | +| 2 | kotLong | +| 3 | kotString | + diff --git a/windows/docs/engine/api/IKeymanOption/Value.md b/windows/docs/engine/api/IKeymanOption/Value.md new file mode 100644 index 0000000000..ff4044629e --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/Value.md @@ -0,0 +1,16 @@ +--- +title: IKeymanOption::Value Property +--- + +## Introduction + +The `IKeymanOption::Value` property sets or returns the current value +for the option. After changing the value, you will need to call +[`IKeymanOptions::Apply`](../IKeymanOptions/Apply) to push the changes +through to Keyman Engine. + +## Specification + +``` clike +variant Value +``` diff --git a/windows/docs/engine/api/IKeymanOption/index.md b/windows/docs/engine/api/IKeymanOption/index.md new file mode 100644 index 0000000000..4cb968afb6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOption/index.md @@ -0,0 +1,38 @@ +--- +title: IKeymanOption Interface +--- + +## Introduction + +The `IKeymanOption` interface describes a user-configurable option in +Keyman Engine. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanOption`** + +## Properties + +[`DefaultValue`](DefaultValue) read only +: Returns the default value for the option. + +[`Enabled`](Enabled) read only +: Returns `True` if the option is currently enabled for the user. + +[`Group`](Group) read only +: Returns a grouping identifier for the option. + +[`ID`](ID) read only +: Returns an identifier for the option. Identifiers are mapped to + user-readable strings in the user interface translation files. + +[`OptionType`](OptionType) read only +: Returns the value data type supported by the option, one of + `kotBool`, `kotString` or `kotLong`. + +[`Value`](Value) +: Reads or sets the current value for the option. diff --git a/windows/docs/engine/api/IKeymanOptions/Apply.md b/windows/docs/engine/api/IKeymanOptions/Apply.md new file mode 100644 index 0000000000..fb104c856c --- /dev/null +++ b/windows/docs/engine/api/IKeymanOptions/Apply.md @@ -0,0 +1,14 @@ +--- +title: IKeymanOptions::Apply Method +--- + +## Introduction + +The `IKeymanOptions::Apply` method applies all settings changes made +through the API to Keyman Engine. + +## Specification + +``` clike +void Apply(void) +``` diff --git a/windows/docs/engine/api/IKeymanOptions/IndexOf.md b/windows/docs/engine/api/IKeymanOptions/IndexOf.md new file mode 100644 index 0000000000..93e8e93f08 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOptions/IndexOf.md @@ -0,0 +1,16 @@ +--- +title: IKeymanOptions::IndexOf Method +--- + +## Introduction + +The `IKeymanOptions::IndexOf` method returns the zero-based index of the +option in the array that has a ID matching the `ID` parameter. + +If no option matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string ID) +``` diff --git a/windows/docs/engine/api/IKeymanOptions/Items.md b/windows/docs/engine/api/IKeymanOptions/Items.md new file mode 100644 index 0000000000..ef041f6ab4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanOptions/Items.md @@ -0,0 +1,21 @@ +--- +title: IKeymanOptions::Items[Index] Property +--- + +## Introduction + +The `IKeymanOptions::Items[Index]` property returns a +[`IKeymanOption`](../IKeymanOption) reference identified by `Index`. If +the index is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanOption* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index, or the string name of the option. diff --git a/windows/docs/engine/api/IKeymanOptions/index.md b/windows/docs/engine/api/IKeymanOptions/index.md new file mode 100644 index 0000000000..eb5a92c90b --- /dev/null +++ b/windows/docs/engine/api/IKeymanOptions/index.md @@ -0,0 +1,33 @@ +--- +title: IKeymanOptions Interface +--- + +## Introduction + +The `IKeymanOptions` interface lists options available in Keyman Engine. +These options are distinct from the +[`IKeymanKeyboardOptions`](../IKeymanKeyboardOptions) which control how +specific keyboard layouts operate. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanOptions`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanOption`](../IKeymanOption) reference by `Index`. + +## Methods + +[`Apply()`](Apply) +: Applies changes to options to Keyman Engine. + +[`IndexOf()`](IndexOf) +: Gets the index of an option by ID in the collection. diff --git a/windows/docs/engine/api/IKeymanPackage/Author.md b/windows/docs/engine/api/IKeymanPackage/Author.md new file mode 100644 index 0000000000..befdb5ed30 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Author.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackage::Author Property +--- + +## Introduction + +The `IKeymanPackage::Author` property returns the author as listed in +the package file. + +## Specification + +``` clike +readonly string Author +``` diff --git a/windows/docs/engine/api/IKeymanPackage/AuthorEmail.md b/windows/docs/engine/api/IKeymanPackage/AuthorEmail.md new file mode 100644 index 0000000000..3c57066315 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/AuthorEmail.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackage::AuthorEmail Property +--- + +## Introduction + +The `IKeymanPackage::AuthorEmail` property returns the email address of +the author as listed in the package file. + +## Specification + +``` clike +readonly string AuthorEmail +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Copyright.md b/windows/docs/engine/api/IKeymanPackage/Copyright.md new file mode 100644 index 0000000000..7e239e3a5b --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Copyright.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackage::Copyright Property +--- + +## Introduction + +The `IKeymanPackage::Copyright` property returns the copyright message +from the package file. + +## Specification + +``` clike +readonly string Copyright +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Filename.md b/windows/docs/engine/api/IKeymanPackage/Filename.md new file mode 100644 index 0000000000..01d447229f --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Filename.md @@ -0,0 +1,18 @@ +--- +title: IKeymanPackage::Filename Property +--- + +## Introduction + +The `IKeymanPackage::Filename` property returns the fully qualified +filename of the package .kmp file, if the parent interface is +[`IKeymanPackageFile`](../IKeymanPackageFile), otherwise (interface is +[`IKeymanPackageInstalled`](../IKeymanPackageInstalled)), it returns the +fully qualified filename of the package kmp.inf file within the Keyman +package store. + +## Specification + +``` clike +readonly string Filename +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Files.md b/windows/docs/engine/api/IKeymanPackage/Files.md new file mode 100644 index 0000000000..f9e9df69b1 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Files.md @@ -0,0 +1,15 @@ +--- +title: IKeymanPackage::Files Property +--- + +## Introduction + +The `IKeymanPackage::Files` property returns an +[`IKeymanPackageContentFiles`](../IKeymanPackageContentFiles) reference +which lists the files included within the package. + +## Specification + +``` clike +readonly IKeymanPackageContentFiles* Files +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Fonts.md b/windows/docs/engine/api/IKeymanPackage/Fonts.md new file mode 100644 index 0000000000..4df236b5f2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Fonts.md @@ -0,0 +1,15 @@ +--- +title: IKeymanPackage::Fonts Property +--- + +## Introduction + +The `IKeymanPackage::Fonts` property returns an +[`IKeymanPackageContentFonts`](../IKeymanPackageContentFonts) reference +which lists the fonts included within the package. + +## Specification + +``` clike +readonly IKeymanPackageContentFonts* Fonts +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Graphic.md b/windows/docs/engine/api/IKeymanPackage/Graphic.md new file mode 100644 index 0000000000..f74154e74d --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Graphic.md @@ -0,0 +1,15 @@ +--- +title: IKeymanPackage::Graphic Property +--- + +## Introduction + +The `IKeymanPackage::Graphic` property returns an `IPicture` reference +for the install screen graphic included within the package, or `null` if +no install screen graphic was included. + +## Specification + +``` clike +readonly IPicture* Graphic +``` diff --git a/windows/docs/engine/api/IKeymanPackage/GraphicFile.md b/windows/docs/engine/api/IKeymanPackage/GraphicFile.md new file mode 100644 index 0000000000..0143af0edb --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/GraphicFile.md @@ -0,0 +1,16 @@ +--- +title: IKeymanPackage::GraphicFile Property +--- + +## Introduction + +The `IKeymanPackage::GraphicFile` property returns an +[`IKeymanPackageContentFile`](../IKeymanPackageContentFile) reference +for the install screen graphic included within the package, or `null` if +no install screen graphic was included. + +## Specification + +``` clike +readonly IKeymanPackageContentFile* GraphicFile +``` diff --git a/windows/docs/engine/api/IKeymanPackage/ID.md b/windows/docs/engine/api/IKeymanPackage/ID.md new file mode 100644 index 0000000000..23a7a02dd6 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/ID.md @@ -0,0 +1,21 @@ +--- +title: IKeymanPackage::ID Property +--- + +## Introduction + +The `IKeymanPackage::ID` property returns the base name of the package +.kmp file, sans extension. The full filename, including path, of the +package is available in the [`Filename`](Filename) property. + +No two packages can share the same identifier in a Keyman Engine +installation. The identifier is case insensitive and should consist of +letters, digits and underscore, although some legacy identifiers may +contain other characters as well. The initial letter of an identifier +should be a letter. + +## Specification + +``` clike +readonly string ID +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Keyboards.md b/windows/docs/engine/api/IKeymanPackage/Keyboards.md new file mode 100644 index 0000000000..3e13281282 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Keyboards.md @@ -0,0 +1,15 @@ +--- +title: IKeymanPackage::Keyboards Property +--- + +## Introduction + +The `IKeymanPackage::Keyboards` property returns an +[`IKeymanPackageContentKeyboards`](../IKeymanPackageContentKeyboards) +reference which lists the keyboards included within the package. + +## Specification + +``` clike +readonly IKeymanPackageContentKeyboards* Keyboards +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Name.md b/windows/docs/engine/api/IKeymanPackage/Name.md new file mode 100644 index 0000000000..9a1a367df5 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Name.md @@ -0,0 +1,18 @@ +--- +title: IKeymanPackage::Name Property +--- + +## Introduction + +The `IKeymanPackage::Name` property returns the descriptive name of the +package from the package file. This name is shown to the user in the +Keyman Engine user interface. + +The `Name` property is not related to the [`ID`](ID) property or the +[`Filename`](Filename) property. + +## Specification + +``` clike +readonly string Name +``` diff --git a/windows/docs/engine/api/IKeymanPackage/ReadmeFile.md b/windows/docs/engine/api/IKeymanPackage/ReadmeFile.md new file mode 100644 index 0000000000..ead892e86d --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/ReadmeFile.md @@ -0,0 +1,16 @@ +--- +title: IKeymanPackage::ReadmeFile Property +--- + +## Introduction + +The `IKeymanPackage::ReadmeFile` property returns an +[`IKeymanPackageContentFile`](../IKeymanPackageContentFile) reference +for the install Readme HTML file included within the package, or `null` +if no Readme file was included. + +## Specification + +``` clike +readonly IKeymanPackageContentFile* ReadmeFile +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Version.md b/windows/docs/engine/api/IKeymanPackage/Version.md new file mode 100644 index 0000000000..c380ff5ce4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Version.md @@ -0,0 +1,19 @@ +--- +title: IKeymanPackage::Version Property +--- + +## Introduction + +The `IKeymanPackage::Version` property returns the version string from +the package file. This represents the current version of the package +file, and is in the form of a dotted numeric string. + +The `Version` property is not directly related to the +[`IKeymanKeyboard::Version`](../IKeymanKeyboard/Version) property of the +keyboards within the package. + +## Specification + +``` clike +readonly string Version +``` diff --git a/windows/docs/engine/api/IKeymanPackage/Website.md b/windows/docs/engine/api/IKeymanPackage/Website.md new file mode 100644 index 0000000000..474196d6a9 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/Website.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackage::Website Property +--- + +## Introduction + +The `IKeymanPackage::Website` property returns the website string from +the package file. + +## Specification + +``` clike +readonly string Website +``` diff --git a/windows/docs/engine/api/IKeymanPackage/WelcomeFile.md b/windows/docs/engine/api/IKeymanPackage/WelcomeFile.md new file mode 100644 index 0000000000..6783689698 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/WelcomeFile.md @@ -0,0 +1,16 @@ +--- +title: IKeymanPackage::WelcomeFile Property +--- + +## Introduction + +The `IKeymanPackage::WelcomeFile` property returns an +[`IKeymanPackageContentFile`](../IKeymanPackageContentFile) reference +for the welcome.htm documentation HTML file included within the package, +or `null` if no documentation was included. + +## Specification + +``` clike +readonly IKeymanPackageContentFile* WelcomeFile +``` diff --git a/windows/docs/engine/api/IKeymanPackage/index.md b/windows/docs/engine/api/IKeymanPackage/index.md new file mode 100644 index 0000000000..cd30a8ec74 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackage/index.md @@ -0,0 +1,92 @@ +--- +title: IKeymanPackage Interface +--- + +## Introduction + +The `IKeymanPackage` interface describes a keyboard package in Keyman +Engine for Windows API. It is a base class and describes both installed +packages and package files. A keyboard package file is a bundle that +contains keyboard layout(s), visual keyboards, documentation, fonts and +any other related files to simplify distribution of keyboard layouts. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanPackage`** +> > +> > > [`IKeymanPackageFile`](../IKeymanPackageFile) +> > > +> > > > [`IKeymanPackageFile2`](../IKeymanPackageFile2) +> > > +> > > [`IKeymanPackageInstalled`](../IKeymanPackageInstalled) + +## Properties + +[`Author`](Author) read only +: Returns the author as listed in the package file. + +[`AuthorEmail`](AuthorEmail) read only +: Returns the email address of the author as listed in the package + file. + +[`Copyright`](Copyright) read only +: Returns the copyright message from the package file. + +[`Filename`](Filename) read only +: Returns the fully-qualified filename of the package file. + +[`Files`](Files) read only +: Returns an + [`IKeymanPackageContentFiles`](../IKeymanPackageContentFiles) + reference which lists the files included within the package. + +[`Fonts`](Fonts) read only +: Returns an + [`IKeymanPackageContentFonts`](../IKeymanPackageContentFonts) + reference which lists the fonts included within the package. + +[`Graphic`](Graphic) read only +: Returns an `IPicture` reference for the install screen graphic + included within the package, or `null` if no install screen graphic + was included. + +[`GraphicFile`](GraphicFile) read only +: Returns an + [`IKeymanPackageContentFile`](../IKeymanPackageContentFile) + reference for the install screen graphic included within the + package, or `null` if no install screen graphic was included. + +[`ID`](ID) read only +: Returns the identifier for the package, which is the base name of + the package file without extension. + +[`Keyboards`](Keyboards) read only +: Returns an + [`IKeymanPackageContentKeyboards`](../IKeymanPackageContentKeyboards) + reference which lists the keyboard layouts included within the + package. + +[`Name`](Name) read only +: Returns the descriptive name of the package file. + +[`ReadmeFile`](ReadmeFile) read only +: Returns an + [`IKeymanPackageContentFile`](../IKeymanPackageContentFile) + reference for the install Readme HTML file included within the + package, or `null` if no Readme file was included. + +[`Version`](Version) read only +: Returns the version string from the package file. + +[`Website`](Website) read only +: Returns the website of the package as listed in the package file. + +[`WelcomeFile`](WelcomeFile) read only +: Returns an + [`IKeymanPackageContentFile`](../IKeymanPackageContentFile) + reference for the welcome.htm documentation HTML file included + within the package, or `null` if no documentation was included. diff --git a/windows/docs/engine/api/IKeymanPackageContentFile/Description.md b/windows/docs/engine/api/IKeymanPackageContentFile/Description.md new file mode 100644 index 0000000000..d5614b1c77 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFile/Description.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackageContentFile::Description Property +--- + +## Introduction + +The `IKeymanPackageContentFile::Description` property returns the +description of the file from the package metadata. + +## Specification + +``` clike +readonly string Description +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFile/Filename.md b/windows/docs/engine/api/IKeymanPackageContentFile/Filename.md new file mode 100644 index 0000000000..3e7c44232c --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFile/Filename.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackageContentFile::Filename Property +--- + +## Introduction + +The `IKeymanPackageContentFile::Filename` property returns the filename +of the file without path. + +## Specification + +``` clike +readonly string Filename +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFile/FullFilename.md b/windows/docs/engine/api/IKeymanPackageContentFile/FullFilename.md new file mode 100644 index 0000000000..89d56cc607 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFile/FullFilename.md @@ -0,0 +1,16 @@ +--- +title: IKeymanPackageContentFile::FullFilename Property +--- + +## Introduction + +The `IKeymanPackageContentFile::FullFilename` property returns the +filename of the file including the path. This may be in a temporary +folder or in the Keyman package store. The file should not be modified +or deleted; when reading the file, use sharing semantics. + +## Specification + +``` clike +readonly string FullFilename +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFile/Stream.md b/windows/docs/engine/api/IKeymanPackageContentFile/Stream.md new file mode 100644 index 0000000000..fb8532cae7 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFile/Stream.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackageContentFile::Stream Property +--- + +## Introduction + +The `IKeymanPackageContentFile::Stream` property returns a readonly +`IStream` reference to the content of the file. + +## Specification + +``` clike +readonly IStream* Stream +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFile/index.md b/windows/docs/engine/api/IKeymanPackageContentFile/index.md new file mode 100644 index 0000000000..5355bfedc8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFile/index.md @@ -0,0 +1,31 @@ +--- +title: IKeymanPackageContentFile Interface +--- + +## Introduction + +The `IKeymanPackageContentFile` interface describes a file within a +package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanPackageContentFile`** + +## Properties + +[`Description`](Description) read only +: An optional description of the file from the package metadata. + +[`Filename`](Filename) read only +: The filename of the file, without path. + +[`FullFilename`](FullFilename) read only +: The filename of the file, including path. This may point to a + temporary path. + +[`Stream`](Stream) read only +: Returns an `IStream` reference to the file content. diff --git a/windows/docs/engine/api/IKeymanPackageContentFiles/IndexOf.md b/windows/docs/engine/api/IKeymanPackageContentFiles/IndexOf.md new file mode 100644 index 0000000000..aa4df169e0 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFiles/IndexOf.md @@ -0,0 +1,17 @@ +--- +title: IKeymanPackageContentFiles::IndexOf Method +--- + +## Introduction + +The `IKeymanPackageContentFiles::IndexOf` method returns the zero-based +index of the file in the collection that has a filename matching the +`Filename` parameter. + +If no file matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string Filename) +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFiles/Items.md b/windows/docs/engine/api/IKeymanPackageContentFiles/Items.md new file mode 100644 index 0000000000..d0e2d24642 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFiles/Items.md @@ -0,0 +1,24 @@ +--- +title: IKeymanPackageContentFiles::Items[Index] Property +--- + +## Introduction + +The `IKeymanPackageContentFiles::Items[Index]` property returns a +[`IKeymanPackageContentFile`](../IKeymanPackageContentFile) reference to +the file identified by `Index` in the package. If the file is not in the +package, or the index is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanPackageContentFile* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index or the string filename of the file. The + filename must include the extension, but paths are stripped off and + ignored. diff --git a/windows/docs/engine/api/IKeymanPackageContentFiles/index.md b/windows/docs/engine/api/IKeymanPackageContentFiles/index.md new file mode 100644 index 0000000000..853cf5cc4a --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFiles/index.md @@ -0,0 +1,30 @@ +--- +title: IKeymanPackageContentFiles Interface +--- + +## Introduction + +The `IKeymanPackageContentFiles` interface lists the files included in +the package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanPackageContentFiles`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an + [`IKeymanPackageContentFile`](../IKeymanPackageContentFile) + reference for the file identified by `Index`. + + + +[`IndexOf()`](IndexOf) +: Gets the index of a file by filename in the collection. diff --git a/windows/docs/engine/api/IKeymanPackageContentFont/Filename.md b/windows/docs/engine/api/IKeymanPackageContentFont/Filename.md new file mode 100644 index 0000000000..f877933062 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFont/Filename.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackageContentFont::Filename Property +--- + +## Introduction + +The `IKeymanPackageContentFont::Filename` property returns the filename +of the font, without path. + +## Specification + +``` clike +readonly string Filename +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFont/Name.md b/windows/docs/engine/api/IKeymanPackageContentFont/Name.md new file mode 100644 index 0000000000..ba0c04819c --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFont/Name.md @@ -0,0 +1,14 @@ +--- +title: IKeymanPackageContentFont::Name Property +--- + +## Introduction + +The `IKeymanPackageContentFont::Name` property returns the TrueType full +name of the font, read from the font NAME table. + +## Specification + +``` clike +readonly string Name +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFont/index.md b/windows/docs/engine/api/IKeymanPackageContentFont/index.md new file mode 100644 index 0000000000..60d3a717ab --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFont/index.md @@ -0,0 +1,24 @@ +--- +title: IKeymanPackageContentFont Interface +--- + +## Introduction + +The `IKeymanPackageContentFont` interface describes a font within a +package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanPackageContentFont`** + +## Properties + +[`Filename`](Filename) +: The filename of the font, without path. + +[`Name`](Name) +: The TrueType full name of the font, read from the font NAME table. diff --git a/windows/docs/engine/api/IKeymanPackageContentFonts/IndexOf.md b/windows/docs/engine/api/IKeymanPackageContentFonts/IndexOf.md new file mode 100644 index 0000000000..84c8e1c32c --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFonts/IndexOf.md @@ -0,0 +1,17 @@ +--- +title: IKeymanPackageContentFonts::IndexOf Method +--- + +## Introduction + +The `IKeymanPackageContentFonts::IndexOf` method returns the zero-based +index of the file in the collection that has a filename matching the +`Filename` parameter. + +If no file matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string Filename) +``` diff --git a/windows/docs/engine/api/IKeymanPackageContentFonts/Items.md b/windows/docs/engine/api/IKeymanPackageContentFonts/Items.md new file mode 100644 index 0000000000..c31670015f --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFonts/Items.md @@ -0,0 +1,22 @@ +--- +title: IKeymanPackageContentFonts::Items[Index] Property +--- + +## Introduction + +The `IKeymanPackageContentFonts::Items[Index]` property returns a +[`IKeymanPackageContentFont`](../IKeymanPackageContentFont) reference to +the font identified by `Index` in the package. If the font is not in the +package, or the index is out of range, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanPackageContentFont* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index or the string filename of the font. diff --git a/windows/docs/engine/api/IKeymanPackageContentFonts/index.md b/windows/docs/engine/api/IKeymanPackageContentFonts/index.md new file mode 100644 index 0000000000..93dfa7e7b0 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentFonts/index.md @@ -0,0 +1,28 @@ +--- +title: IKeymanPackageContentFonts Interface +--- + +## Introduction + +The `IKeymanPackageContentFonts` interface lists the fonts included in +the package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanPackageContentFonts`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an + [`IKeymanPackageContentFont`](../IKeymanPackageContentFont) + reference for the font identified by `Index`. + +[`IndexOf()`](IndexOf) +: Gets the index of a font by filename in the collection. diff --git a/windows/docs/engine/api/IKeymanPackageContentKeyboards/Items.md b/windows/docs/engine/api/IKeymanPackageContentKeyboards/Items.md new file mode 100644 index 0000000000..5bb8429496 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentKeyboards/Items.md @@ -0,0 +1,22 @@ +--- +title: IKeymanPackageContentKeyboards::Items[Index] Property +--- + +## Introduction + +The `IKeymanPackageContentKeyboards::Items[Index]` property returns a +reference to the keyboard identified by `Index` in the package. If the +keyboard does not exist, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanKeyboard* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index or the string + [`IKeymanKeyboard::ID`](../IKeymanKeyboard/ID) of the keyboard. diff --git a/windows/docs/engine/api/IKeymanPackageContentKeyboards/index.md b/windows/docs/engine/api/IKeymanPackageContentKeyboards/index.md new file mode 100644 index 0000000000..444bf03895 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageContentKeyboards/index.md @@ -0,0 +1,26 @@ +--- +title: IKeymanPackageContentKeyboards Interface +--- + +## Introduction + +The `IKeymanPackageContentKeyboards` interface lists the keyboards +included in the package. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanKeyboards`](../IKeymanKeyboards) +> > > +> > > > **`IKeymanPackageContentKeyboards`** + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanKeyboard`](../IKeymanKeyboard) reference for the + keyboard identified by `Index`. diff --git a/windows/docs/engine/api/IKeymanPackageFile/Install.md b/windows/docs/engine/api/IKeymanPackageFile/Install.md new file mode 100644 index 0000000000..5be76680c4 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageFile/Install.md @@ -0,0 +1,40 @@ +--- +title: IKeymanPackageFile::Install Method +--- + +## Introduction + +The `IKeymanPackageFile::Install` method installs the package file +(.kmp) into Keyman Engine for Windows. This includes decompressing the +archive, copying the files contained into the Keyman Engine package +store, adding registry settings, installing fonts, and keyboard layouts +with default languages. + +Fonts are copied and installed into the Windows Fonts folder, if an +existing font with the same name is not already present. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(bool Force) +``` + +## Parameters + +`Force` +: If `True`, overwrites an existing package entry. + +## See also + +[`IKeymanPackagesInstalled::Install`](../IKeymanPackagesInstalled/Install) +: Installs a package file and input method for default language + +[`IKeymanPackagesInstalled::Install2`](../IKeymanPackagesInstalled2/Install2) +: Installs a package file, optionally with input method for default + language + +[`IKeymanPackageFile2::Install2`](../IKeymanPackageFile2/Install2) +: Installs a package file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanPackageFile/index.md b/windows/docs/engine/api/IKeymanPackageFile/index.md new file mode 100644 index 0000000000..015d5803ec --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageFile/index.md @@ -0,0 +1,27 @@ +--- +title: IKeymanPackageFile Interface +--- + +## Introduction + +The `IKeymanPackageFile` interface describes a keyboard package file. A +keyboard package file is a bundle that contains keyboard layout(s), +visual keyboards, documentation, fonts and any other related files to +simplify distribution of keyboard layouts. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanPackage`](../IKeymanPackage) +> > +> > > **`IKeymanPackageFile`** +> > > +> > > > [`IKeymanPackageFile2`](../IKeymanPackageFile2) + +## Methods + +[`Install()`](Install) +: Installs the package into Keyman Engine. diff --git a/windows/docs/engine/api/IKeymanPackageFile2/Install2.md b/windows/docs/engine/api/IKeymanPackageFile2/Install2.md new file mode 100644 index 0000000000..33437373e8 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageFile2/Install2.md @@ -0,0 +1,43 @@ +--- +title: IKeymanPackageFile2::Install2 Method +--- + +## Introduction + +The `IKeymanPackageFile2::Install2` method installs the package file +(.kmp) into Keyman Engine for Windows. This includes decompressing the +archive, copying the files contained into the Keyman Engine package +store, adding registry settings, installing fonts, and keyboard layouts, +optionally with input methods for default languages. + +Fonts are copied and installed into the Windows Fonts folder, if an +existing font with the same name is not already present. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(bool Force, bool InstallDefaultLanguage) +``` + +## Parameters + +`Force` +: If `True`, overwrites an existing package entry. + +`InstallDefaultLanguage` +: If `True`, installs the Windows input method for the default + language. + +## See also + +[`IKeymanPackagesInstalled::Install`](../IKeymanPackagesInstalled/Install) +: Installs a package file and input method for default language + +[`IKeymanPackagesInstalled::Install2`](../IKeymanPackagesInstalled2/Install2) +: Installs a package file, optionally with input method for default + language + +[`IKeymanPackageFile::Install`](../IKeymanPackageFile/Install) +: Installs a package file and input method for default language diff --git a/windows/docs/engine/api/IKeymanPackageFile2/index.md b/windows/docs/engine/api/IKeymanPackageFile2/index.md new file mode 100644 index 0000000000..996232bd5a --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageFile2/index.md @@ -0,0 +1,32 @@ +--- +title: IKeymanPackageFile2 Interface +--- + +## Introduction + +The `IKeymanPackageFile2` interface describes a keyboard package file. A +keyboard package file is a bundle that contains keyboard layout(s), +visual keyboards, documentation, fonts and any other related files to +simplify distribution of keyboard layouts. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanPackage`](../IKeymanPackage) +> > +> > > [`IKeymanPackageFile`](../IKeymanPackageFile) +> > > +> > > > **`IKeymanPackageFile2`** + +## Methods + +[`Install2()`](Install2) +: Installs the package into Keyman Engine, optionally adding default + input method. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanPackageInstalled/Uninstall.md b/windows/docs/engine/api/IKeymanPackageInstalled/Uninstall.md new file mode 100644 index 0000000000..67c84bbdfb --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageInstalled/Uninstall.md @@ -0,0 +1,29 @@ +--- +title: IKeymanPackageInstalled::Uninstall Method +--- + +## Introduction + +The `IKeymanPackageInstalled::Uninstall` method uninstalls the package +and its contained keyboards and related artefacts from Keyman Engine for +Windows. This includes deleting the files from the Keyman Engine package +store, removing registry settings, and removing Windows input methods. + +Changes associated with calling this method are applied immediately; +[`IKeyman::Apply`](../IKeyman/Apply) does not need to be called. +However, changes to the Windows input methods are applied +asynchronously. + +This method requires elevated privileges. + +## Specification + +``` clike +void Uninstall(bool RemoveFonts) +``` + +## Parameters + +`RemoveFonts` +: If set to `True`, fonts that were installed with the package are + removed from the system; otherwise, the fonts remain on the system. diff --git a/windows/docs/engine/api/IKeymanPackageInstalled/index.md b/windows/docs/engine/api/IKeymanPackageInstalled/index.md new file mode 100644 index 0000000000..1dd6138d1b --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackageInstalled/index.md @@ -0,0 +1,26 @@ +--- +title: IKeymanPackageInstalled Interface +--- + +## Introduction + +The `IKeymanPackageInstalled` interface describes an installed keyboard +package in Keyman Engine for Windows API. The installed keyboard package +is essentially a folder in the Keyman package store, and contains +keyboard layouts, visual keyboards, documentation, fonts and any other +related files to simplify distribution of keyboard layouts. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanPackage`](../IKeymanPackage) +> > +> > > **`IKeymanPackageInstalled`** + +## Methods + +[`Uninstall()`](Uninstall) +: Uninstalls the package from Keyman Engine. diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled/GetPackageFromFile.md b/windows/docs/engine/api/IKeymanPackagesInstalled/GetPackageFromFile.md new file mode 100644 index 0000000000..eb7d8c49fd --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled/GetPackageFromFile.md @@ -0,0 +1,20 @@ +--- +title: IKeymanPackagesInstalled::GetPackageFromFile Method +--- + +## Introduction + +The `IKeymanPackagesInstalled::GetPackageFromFile` method loads the +package file referred to by Filename and returns details about the file. +It does not install the package for use. + +## Specification + +``` clike +IKeymanPackageFile* GetPackageFromFile(string Filename) +``` + +## Parameters + +Filename +: The fully-qualified path to the .kmp file to be loaded. diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled/IndexOf.md b/windows/docs/engine/api/IKeymanPackagesInstalled/IndexOf.md new file mode 100644 index 0000000000..59ce45a4b2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled/IndexOf.md @@ -0,0 +1,17 @@ +--- +title: IKeymanPackagsInstalled::IndexOf Method +--- + +## Introduction + +The `IKeymanPackagsInstalled::IndexOf` method returns the zero-based +index of the package in the collection that has an ID matching the `ID` +parameter. + +If no package matches, then the method returns `-1`. + +## Specification + +``` clike +long IndexOf(string ID) +``` diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled/Install.md b/windows/docs/engine/api/IKeymanPackagesInstalled/Install.md new file mode 100644 index 0000000000..83552824cc --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled/Install.md @@ -0,0 +1,44 @@ +--- +title: IKeymanPackagesInstalled::Install Method +--- + +## Introduction + +The `IKeymanPackagesInstalled::Install` installs the package file (.kmp) +into Keyman Engine for Windows. This includes decompressing the archive, +copying the files contained into the Keyman Engine package store, adding +registry settings, installing fonts, and keyboard layouts with default +languages. + +Fonts are copied and installed into the Windows Fonts folder, if an +existing font with the same name is not already present. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(string Filename, bool Force) +``` + +## Parameters + +`Filename` +: The fully-qualified path to the .kmp file to be installed. This file + will be copied to the Keyman package store. + +`Force` +: If `True`, overwrites an existing package entry. + +## See also + +[`IKeymanPackagesInstalled::Install2`](../IKeymanPackagesInstalled2/Install2) +: Installs a package file, optionally with input method for default + language + +[`IKeymanPackageFile::Install`](../IKeymanPackageFile/Install) +: Installs a package file and input method for default language + +[`IKeymanPackageFile2::Install2`](../IKeymanPackageFile2/Install2) +: Installs a package file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled/Items.md b/windows/docs/engine/api/IKeymanPackagesInstalled/Items.md new file mode 100644 index 0000000000..48366307da --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled/Items.md @@ -0,0 +1,22 @@ +--- +title: IKeymanPackagesInstalled::Items[Index] Property +--- + +## Introduction + +The `IKeymanPackagesInstalled::Items[Index]` property returns a +reference to the installed package identified by `Index`. If the package +is not found, exception +[`KMN_E_Collection_InvalidIndex`](../IKeymanError/ErrorCode) is raised. + +## Specification + +``` clike +readonly IKeymanPackageInstalled* Items[variant Index] +``` + +## Parameters + +Index +: A zero-based integer index or the string + [`IKeymanPackage::ID`](../IKeymanPackage/ID) of the package. diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled/index.md b/windows/docs/engine/api/IKeymanPackagesInstalled/index.md new file mode 100644 index 0000000000..571302a34b --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled/index.md @@ -0,0 +1,38 @@ +--- +title: IKeymanPackagesInstalled Interface +--- + +## Introduction + +The `IKeymanPackagesInstalled` interface lists the packages installed in +Keyman Engine. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > **`IKeymanPackagesInstalled`** +> > > +> > > > [`IKeymanPackagesInstalled2`](../IKeymanPackagesInstalled2) + +## Properties + +[`Items[Index]`](Items) read only +: Returns an [`IKeymanPackageInstalled`](../IKeymanPackageInstalled) + reference for the package identified by `Index`. + +## Methods + +[`GetPackageFromFile()`](GetPackageFromFile) +: Returns an [`IKeymanPackageFile`](../IKeymanPackageFile) reference + for a package file. + +[`IndexOf()`](IndexOf) +: Gets the index of a package by ID in the collection. + +[`Install()`](Install) +: Installs a package file into Keyman Engine. diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled2/Install2.md b/windows/docs/engine/api/IKeymanPackagesInstalled2/Install2.md new file mode 100644 index 0000000000..13271d854f --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled2/Install2.md @@ -0,0 +1,47 @@ +--- +title: IKeymanPackagesInstalled2::Install2 Method +--- + +## Introduction + +The `IKeymanPackagesInstalled2::Install2` installs the package file +(.kmp) into Keyman Engine for Windows. This includes decompressing the +archive, copying the files contained into the Keyman Engine package +store, adding registry settings, installing fonts, and keyboard layouts +optionally with input methods for default languages. + +Fonts are copied and installed into the Windows Fonts folder, if an +existing font with the same name is not already present. + +This method requires elevated privileges. + +## Specification + +``` clike +void Install(string Filename, bool Force, bool InstallDefaultLanguage) +``` + +## Parameters + +`Filename` +: The fully-qualified path to the .kmp file to be installed. This file + will be copied to the Keyman package store. + +`Force` +: If `True`, overwrites an existing package entry. + +`InstallDefaultLanguage` +: If `True`, installs the Windows input method for the default + language. + +## See also + +[`IKeymanPackagesInstalled::Install`](../IKeymanPackagesInstalled/Install) +: Installs a package file and input method for default language + +[`IKeymanPackageFile::Install`](../IKeymanPackageFile/Install) +: Installs a package file and input method for default language + +[`IKeymanPackageFile2::Install2`](../IKeymanPackageFile2/Install2) +: Installs a package file, optionally with input method for default + language diff --git a/windows/docs/engine/api/IKeymanPackagesInstalled2/index.md b/windows/docs/engine/api/IKeymanPackagesInstalled2/index.md new file mode 100644 index 0000000000..c1ffa5b2f2 --- /dev/null +++ b/windows/docs/engine/api/IKeymanPackagesInstalled2/index.md @@ -0,0 +1,30 @@ +--- +title: IKeymanPackagesInstalled2 Interface +--- + +## Introduction + +The `IKeymanPackagesInstalled2` interface lists the packages installed +in Keyman Engine. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > [`IKeymanCollection`](../IKeymanCollection) +> > +> > > [`IKeymanPackagesInstalled`](../IKeymanPackagesInstalled) +> > > +> > > > **`IKeymanPackagesInstalled2`** + +## Methods + +[`Install2()`](Install2) +: Installs a package file into Keyman Engine, optionally adding + default input method. + +## History + +Added in Keyman Engine for Windows 14.0. diff --git a/windows/docs/engine/api/IKeymanSystemInfo/EngineInstallPath.md b/windows/docs/engine/api/IKeymanSystemInfo/EngineInstallPath.md new file mode 100644 index 0000000000..2a96731c72 --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/EngineInstallPath.md @@ -0,0 +1,14 @@ +--- +title: IKeymanSystemInfo::EngineInstallPath Property +--- + +## Introduction + +The `IKeymanSystemInfo::EngineInstallPath` property returns the fully +qualified path where Keyman Engine is installed. + +## Specification + +``` clike +readonly string EngineInstallPath +``` diff --git a/windows/docs/engine/api/IKeymanSystemInfo/EngineVersion.md b/windows/docs/engine/api/IKeymanSystemInfo/EngineVersion.md new file mode 100644 index 0000000000..5b9159cfa1 --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/EngineVersion.md @@ -0,0 +1,14 @@ +--- +title: IKeymanSystemInfo::EngineVersion Property +--- + +## Introduction + +The `IKeymanSystemInfo::EngineVersion` property returns the version of +Keyman Engine currently installed. + +## Specification + +``` clike +readonly string EngineVersion +``` diff --git a/windows/docs/engine/api/IKeymanSystemInfo/IsAdministrator.md b/windows/docs/engine/api/IKeymanSystemInfo/IsAdministrator.md new file mode 100644 index 0000000000..12f407a323 --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/IsAdministrator.md @@ -0,0 +1,15 @@ +--- +title: IKeymanSystemInfo::IsAdministrator Property +--- + +## Introduction + +The `IKeymanSystemInfo::IsAdministrator` property returns `True` if +Keyman Engine has sufficient privileges to install keyboards and perform +tasks with elevated privileges. + +## Specification + +``` clike +readonly bool IsAdministrator +``` diff --git a/windows/docs/engine/api/IKeymanSystemInfo/RebootRequired.md b/windows/docs/engine/api/IKeymanSystemInfo/RebootRequired.md new file mode 100644 index 0000000000..2ee4ced2fe --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/RebootRequired.md @@ -0,0 +1,17 @@ +--- +title: IKeymanSystemInfo::RebootRequired Property +--- + +## Introduction + +The `IKeymanSystemInfo::RebootRequired` property returns `True` if a +previous action performed through the Keyman Engine API cannot be +completed until the system is restarted. Typically this can arise if a +file is locked by another process at install time, and is most likely to +occur with font installation and removal. + +## Specification + +``` clike +readonly bool RebootRequired +``` diff --git a/windows/docs/engine/api/IKeymanSystemInfo/SetReboot.md b/windows/docs/engine/api/IKeymanSystemInfo/SetReboot.md new file mode 100644 index 0000000000..7f377a285e --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/SetReboot.md @@ -0,0 +1,16 @@ +--- +title: IKeymanSystemInfo::SetReboot Method +--- + +## Introduction + +The `IKeymanSystemInfo::SetReboot` method sets the reboot flag +[`RebootRequired`](RebootRequired). This is typically used by Keyman +Engine API internally but can also be set by a client process for their +own reference. + +## Specification + +``` clike +void SetReboot(void) +``` diff --git a/windows/docs/engine/api/IKeymanSystemInfo/index.md b/windows/docs/engine/api/IKeymanSystemInfo/index.md new file mode 100644 index 0000000000..afb8d8d30b --- /dev/null +++ b/windows/docs/engine/api/IKeymanSystemInfo/index.md @@ -0,0 +1,39 @@ +--- +title: IKeymanSystemInfo Interface +--- + +## Introduction + +The `IKeymanSystemInfo` interface provides information about Keyman +Engine and the environment. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanSystemInfo`** + +## Properties + +[`EngineInstallPath`](EngineInstallPath) read only +: Returns the fully qualified path where Keyman Engine is installed. + +[`EngineVersion`](EngineVersion) read only +: Returns the version of Keyman Engine currently installed. + +[`IsAdministrator`](IsAdministrator) read only +: Returns `True` if Keyman Engine has sufficient privileges to install + keyboards and perform tasks with elevated privileges. + +[`RebootRequired`](RebootRequired) read only +: Returns `True` if a previous action performed through the Keyman + Engine API cannot be completed until the system is restarted. + +## Methods + +[`SetReboot()`](SetReboot) +: Sets the reboot flag. This is typically used by Keyman Engine API + internally but can also be set by a client process for their own + reference. diff --git a/windows/docs/engine/api/IKeymanVisualKeyboard/Filename.md b/windows/docs/engine/api/IKeymanVisualKeyboard/Filename.md new file mode 100644 index 0000000000..a0b63efdce --- /dev/null +++ b/windows/docs/engine/api/IKeymanVisualKeyboard/Filename.md @@ -0,0 +1,15 @@ +--- +title: IKeymanVisualKeyboard::Filename Property +--- + +## Introduction + +The `IKeymanVisualKeyboard::Filename` property returns the fully +qualified filename of the visual keyboard .kvk file as found in the +Keyman keyboard store. + +## Specification + +``` clike +readonly string Filename +``` diff --git a/windows/docs/engine/api/IKeymanVisualKeyboard/Uninstall.md b/windows/docs/engine/api/IKeymanVisualKeyboard/Uninstall.md new file mode 100644 index 0000000000..368005e271 --- /dev/null +++ b/windows/docs/engine/api/IKeymanVisualKeyboard/Uninstall.md @@ -0,0 +1,16 @@ +--- +title: IKeymanVisualKeyboard::Uninstall Method +--- + +## Introduction + +The `IKeymanVisualKeyboard::Uninstall` method removes this visual +keyboard from the keyboard and the Keyman keyboard store. + +This method requires elevated privileges. + +## Specification + +``` clike +void Uninstall(void) +``` diff --git a/windows/docs/engine/api/IKeymanVisualKeyboard/index.md b/windows/docs/engine/api/IKeymanVisualKeyboard/index.md new file mode 100644 index 0000000000..ea200c4650 --- /dev/null +++ b/windows/docs/engine/api/IKeymanVisualKeyboard/index.md @@ -0,0 +1,30 @@ +--- +title: IKeymanVisualKeyboard Interface +--- + +## Introduction + +The `IKeymanVisualKeyboard` interface references the visual keyboard +associated with an installed +[`IKeymanKeyboardInstalled`](../IKeymanKeyboardInstalled) keyboard +layout. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](../IKeymanObject) +> +> > **`IKeymanVisualKeyboard`** + +## Properties + +[`Filename`](Filename) read only +: Returns the fully qualified filename of the visual keyboard .kvk + file. + +## Methods + +[`Uninstall()`](Uninstall) +: Removes this visual keyboard from the keyboard and the Keyman + keyboard store. diff --git a/windows/docs/engine/api/index.md b/windows/docs/engine/api/index.md new file mode 100644 index 0000000000..9ff2784f57 --- /dev/null +++ b/windows/docs/engine/api/index.md @@ -0,0 +1,82 @@ +--- +title: Keyman Engine for Windows 14.0 API +--- + +## Introduction + +The Keyman Engine for Windows 18.0 API is implemented in COM. It can be +instantiated with `CreateObject("keymanapi.Keyman")`. + +**Note:** This documentation applies to Keyman Engine for Windows +versions 14.0 and up. + +## Interface Hierarchy + +`IDispatch` + +> [`IKeymanObject`](IKeymanObject) +> +> > [`IKeyman`](IKeyman) +> > [`IKeymanCollection`](IKeymanCollection) +> > +> > > [`IKeymanErrors`](IKeymanErrors) +> > > [`IKeymanHotkeys`](IKeymanHotkeys) +> > > [`IKeymanKeyboardLanguages`](IKeymanKeyboardLanguages) +> > > +> > > > [`IKeymanKeyboardLanguagesFile`](IKeymanKeyboardLanguagesFile) +> > > > [`IKeymanKeyboardLanguagesInstalled`](IKeymanKeyboardLanguagesInstalled) +> > > > +> > > > > [`IKeymanKeyboardLanguagesInstalled2`](IKeymanKeyboardLanguagesInstalled2) +> > > +> > > [`IKeymanKeyboardOptions`](IKeymanKeyboardOptions) +> > > [`IKeymanKeyboards`](IKeymanKeyboards) +> > > +> > > > [`IKeymanKeyboardsInstalled`](IKeymanKeyboardsInstalled) +> > > > +> > > > > [`IKeymanKeyboardsInstalled2`](IKeymanKeyboardsInstalled2) +> > > > +> > > > [`IKeymanPackageContentKeyboards`](IKeymanPackageContentKeyboards) +> > > +> > > [`IKeymanLanguages`](IKeymanLanguages) +> > > [`IKeymanOptions`](IKeymanOptions) +> > > [`IKeymanPackageContentFiles`](IKeymanPackageContentFiles) +> > > [`IKeymanPackageContentFonts`](IKeymanPackageContentFonts) +> > > [`IKeymanPackagesInstalled`](IKeymanPackagesInstalled) +> > > +> > > > [`IKeymanPackagesInstalled2`](IKeymanPackagesInstalled2) +> > +> > [`IKeymanControl`](IKeymanControl) +> > [`IKeymanError`](IKeymanError) +> > [`IKeymanHotkey`](IKeymanHotkey) +> > [`IKeymanKeyboard`](IKeymanKeyboard) +> > +> > > [`IKeymanKeyboardFile`](IKeymanKeyboardFile) +> > > +> > > > [`IKeymanKeyboardFile2`](IKeymanKeyboardFile2) +> > > +> > > [`IKeymanKeyboardInstalled`](IKeymanKeyboardInstalled) +> > +> > [`IKeymanKeyboardLanguage`](IKeymanKeyboardLanguage) +> > +> > > [`IKeymanKeyboardLanguageInstalled`](IKeymanKeyboardLanguageInstalled) +> > > +> > > > [`IKeymanKeyboardLanguageInstalled2`](IKeymanKeyboardLanguageInstalled2) +> > +> > [`IKeymanKeyboardOption`](IKeymanKeyboardOption) +> > [`IKeymanLanguage`](IKeymanLanguage) +> > [`IKeymanOption`](IKeymanOption) +> > [`IKeymanPackage`](IKeymanPackage) +> > +> > > [`IKeymanPackageFile`](IKeymanPackageFile) +> > > +> > > > [`IKeymanPackageFile2`](IKeymanPackageFile2) +> > > +> > > [`IKeymanPackageInstalled`](IKeymanPackageInstalled) +> > +> > [`IKeymanPackageContentFile`](IKeymanPackageContentFile) +> > [`IKeymanPackageContentFont`](IKeymanPackageContentFont) +> > [`IKeymanSystemInfo`](IKeymanSystemInfo) +> > [`IKeymanVisualKeyboard`](IKeymanVisualKeyboard) +> > [`IKeymanBCP47Canonicalization`](IKeymanBCP47Canonicalization) + + diff --git a/windows/docs/engine/index.md b/windows/docs/engine/index.md new file mode 100644 index 0000000000..acdd77d877 --- /dev/null +++ b/windows/docs/engine/index.md @@ -0,0 +1,18 @@ +--- +title: Keyman Engine for Windows 18.0 +--- + +Keyman Engine for Windows 18.0 gives you the tools to build a customised +desktop keyboarding product for Windows. + +**Note:** This documentation applies to Keyman Engine for Windows +versions 14.0 and up. + +[COM API reference](api/) + +[Registry reference](registry) + +## See also + +- [Keyman Engine for Desktop 10.0-13.0](/developer/engine/desktop/10.0/) +- [Keyman Engine for Desktop 9.0](/developer/engine/desktop/9.0/) diff --git a/windows/docs/engine/registry.md b/windows/docs/engine/registry.md new file mode 100644 index 0000000000..426447e7ed --- /dev/null +++ b/windows/docs/engine/registry.md @@ -0,0 +1,36 @@ +--- +title: Registry Settings +--- + +*This document refers to Keyman 6.0: please +contact Keyman Support if you need further information about Keyman +registry settings.* + +Keyman makes changes to the registry in the following locations (the +values modified are not listed here, only the general locations): + + +| Location |Information | +| -------------------------------------------------- | ----------------------------------------------- | +| HKEY_CLASSES_ROOT\.kmx
HKEY_CLASSES_ROOT\.kmp
HKEY_CLASSES_ROOT\Keyman.File.Keyboard
HKEY_CLASSES_ROOT\Keyman.File.Package | File associations in Explorer | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0 | Keyman user settings | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0\Active Keyboards | Per-user keyboard settings | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0\Active Languages | Language associations | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0\Installed Keyboards | Keyman user keyboards | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0\Installed Packages | Keyman user packages | +| HKEY_CURRENT_USER\Software\Tavultesoft\Keyman\6.0\Add-ins | Keyman user add-ins | +| HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run | Keyman startup with Windows | +| HKEY_LOCAL_MACHINE\Software\Tavultesoft\Keyman\6.0 | Keyman global settings | +| HKEY_LOCAL_MACHINE\Software\Tavultesoft\Keyman\6.0\Installed Keyboards | Keyman global keyboards | +| HKEY_LOCAL_MACHINE\Software\Tavultesoft\Keyman\6.0\Installed Packages | Keyman global packages | +| HKEY_LOCAL_MACHINE\Software\Tavultesoft\Keyman\6.0\Add-ins | Keyman global packages | +| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Keyman Keyboard * | Keyman keyboard uninstall keys | +| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Tavultesoft Keyman 6.0 | Keyman runtime uninstall key | +| HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layouts\0000xxFE | Keyman associated Windows keyboards | + + + + + + + diff --git a/windows/src/build.sh b/windows/src/build.sh index c6768a6d92..c6cbbaa82b 100755 --- a/windows/src/build.sh +++ b/windows/src/build.sh @@ -30,5 +30,11 @@ builder_describe \ builder_parse "$@" builder_run_child_actions clean configure build test -builder_run_action test:help check-markdown "$KEYMAN_ROOT/windows/docs/help" + +function do_test_help() { + check-markdown "$KEYMAN_ROOT/windows/docs/help" + check-markdown "$KEYMAN_ROOT/windows/docs/engine" +} + +builder_run_action test:help do_test_help builder_run_child_actions publish install