IMG Developer's Kit: Developer's Kit Guide and Technical Documentation; Version 1.90; User's Guide | ||
---|---|---|
Prev | Chapter 8. Developer Tools and Examples | Next |
FOLDER: WORDSDLL
TYPE: External Capabilities for OnScreen via DLL
SOURCE: INCLUDED
LANGUAGE: C / Windows API
IDE: Microsoft Visual C++ 6
The WordsDLL.DLL with source code offers 2 callback type functions that allow external integration of word list / WordComplete candidates for display & usage within OnScreen.
This allows an external DLL to supply the words displayed by OnScreen in the WordComplete panel. The example provided does no specific work, it only shows the interface, and gives the source code to build a DLL that can interface with OnScreen.
As a general overview, OnScreen calls GetWordList every time it needs to fill the WordComplete candidates (see below for details on the parameters used). As a way to provide feedback, OnScreen calls TypedWord to tell the word list when the user selects a word on the WordComplete panel (or when the user presses a space or punctuation after a buffer bas been built (i.e. a new word has been typed in OnScreen)).
This is the C prototype for the GetWordList function called by OnScreen as specified in the WordsDLL entry for the WordsGetWordListFunc entry.
BOOL WINAPI GetWordList(LPTSTR lpCurrentBuffer,DWORD dwReturnThisManyWords, DWORD dwStartListAt,LPTSTR lpCommaDelimitedList,DWORD dwSizeOfList,LPTSTR lpLetterAssistList);
Parameters:
[in] LPTSTR lpCurrentBuffer - the current letter/letters typed, e.g. "th" would return "the,that,their,they,these," when the first character is a - (dash), suffixes should be returned.
[in] DWORD dwReturnThisManyWords - number of words to return (typically 5 from OnScreen)
[in] DWORD dwStartListAt - start List At - will be 0, 5, 10 from OnScreen (based on the More key used by the user) As an example, if there are 23 possible words than match th, then the first list will StartAt 0 - if the user presses More, then the next 5 in the list will be returned.
[out] LPTSTR lpCommaDelimitedList - return list of words, comma delimited, ending with a comma
[in] DWORD dwSizeOfList - max buffer size for lpCommaDelimitedList
[out] LPTSTR lpLetterAssistList - comma delimited list of possible "next" letters (max size Windows API MAX_PATH), pass in NULL if not required - must return UPPER-CASE list, e.g. "A,C,E," this is used by OnScreen to highlight or allow letters that can build words in the current word list based on the current buffer.
TypedWord - external call to tell DLL what word was typed
BOOL WINAPI TypedWord(LPTSTR lpWord);
[in] LPTSTR lpWord - The word / suffix that was typed (suffixes have leading '-')
The following entry must be in ONSCREEN.INI to use the WordsDLL.DLL
[WordsDLL]
DLLName=%PRODDIR%\WordsDLL\Release\WordsDLL.DLL
WordsGetWordListFunc=GetWordList
WordsTypedWordFunc=TypedWord
This documents the settings used with the external WordsDLL.DLL
[WordsDLL]
All settings must be in a section headed by [WordsDLL]
DLLName=%PRODDIR%\WordsDLL\Release\WordsDLL.DLL
The DLLName entry must contain the full path and name of the DLL to be used as the external interface. %PRODDIR% expands to the current location of ONSCREEN.EXE, and %WINDIR% uses
GetWindowsDirectory
WordsGetWordListFunc=GetWordList
This lists the name of the GetWordList function that is used internally with GetProcAddress :to obtain the function name from the specified DLL.
WordsTypedWordFunc=TypedWord
This lists the name of the TypedWord function that is used internally with GetProcAddress :to obtain the function name from the specified DLL.
IMPORTANT NOTE: The ConfigPath determines the location of the INI where you need to modify and add the PaintDLL example below. Refer to the My-T-Soft Setup | File | Show Config File Location for the location, or use My-T-Soft Setup | Configuration | Special Options | Edit My-T-Soft Initialization file.
Because of the complexity of integrating something this complicated, there may be integration issues when working with this capability. If you experience problems, limitations, or need further assistance with this DLL, please contact developer support.
Developers Kit Version 1.78 Release 3 - 9/22/2007
Copyright © 2007 by Innovation Management Group, Inc.
All Rights Reserved.
As seen in ...