[Bug 14550] Tablet PC SDK 1.x example applications fail to run, reporting 'There are no handwriting recognizers installed.'

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Oct 7 14:03:22 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=14550

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
                URL|                            |https://download.cnet.com/T
                   |                            |ablet-PC-Platform-Software-
                   |                            |Development-Kit-SDK-v1-5/30
                   |                            |01-2206_4-10751732.html
           Keywords|                            |download
            Summary|MS Ink demo program fails,  |Tablet PC SDK 1.x example
                   |needs InkObj.DLL            |applications fail to run,
                   |                            |reporting 'There are no
                   |                            |handwriting recognizers
                   |                            |installed.'
             Status|NEW                         |NEEDINFO

--- Comment #23 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

please always specify the exact versions of SDK/apps used.

https://msdn.microsoft.com/en-us/library/ms840463.aspx -> "Tablet PC SDK
Versions"

Unfortunately Microsoft pulled all Tablet SDK downloads ... to erase
embarrassing history? ;-)

There is an old copy of Tablet SDK 1.5 here:

https://download.cnet.com/Tablet-PC-Platform-Software-Development-Kit-SDK-v1-5/3001-2206_4-10751732.html

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Bin

$ ls -la
total 684
drwxrwxr-x. 2 focht focht  4096 Oct  7 20:29 .
drwxrwxr-x. 6 focht focht  4096 Oct  7 20:29 ..
-rwxrwxr-x. 1 focht focht 29184 Jan 27  2003 AdvReco.exe
-rwxrwxr-x. 1 focht focht 81920 Jan 27  2003 AutoClaims15.exe
-rwxrwxr-x. 1 focht focht 77824 Jan 27  2003 AutoClaims.exe
-rwxrwxr-x. 1 focht focht  8192 Jan 27  2003 BasicRecognition.exe
-rwxrwxr-x. 1 focht focht 28766 Jan 27  2003 CACApp.exe
-rwxrwxr-x. 1 focht focht 57856 Jan 27  2003 EventSink.exe
-rwxrwxr-x. 1 focht focht  6656 Jan 27  2003 FactReg.exe
-rw-rw-r--. 1 focht focht 51211 Dec 13  2002 formdata.png
-rw-rw-r--. 1 focht focht  7131 Dec 13  2002 formdata.xml
-rwxrwxr-x. 1 focht focht 36864 Jan 27  2003 InkClipboard.exe
-rwxrwxr-x. 1 focht focht 20588 Jan 27  2003 InkCollection.exe
-rwxrwxr-x. 1 focht focht 12800 Jan 27  2003 InkDivider.exe
-rwxrwxr-x. 1 focht focht 36962 Jan 27  2003 InkErase.exe
-rwxrwxr-x. 1 focht focht 20480 Jan 27  2003 InkHitTest.exe
-rwxrwxr-x. 1 focht focht 20590 Jan 27  2003 InkRecognition.exe
-rwxrwxr-x. 1 focht focht 15360 Jan 27  2003 InkZoom.exe
-rwxrwxr-x. 1 focht focht 24576 Jan 27  2003 MultiReco.exe
-rwxrwxr-x. 1 focht focht 11264 Jan 27  2003 PaperForm.exe
-rw-rw-r--. 1 focht focht  1941 Nov 26  2002 sampdesc.css
-rw-rw-r--. 1 focht focht 30617 Dec  5  2002 sampdesc.hta
-rw-rw-r--. 1 focht focht  4150 Nov 26  2002 sampdesc.ico
-rw-rw-r--. 1 focht focht  4210 Nov 26  2002 sampdesc.jpg
-rw-rw-r--. 1 focht focht  4173 Jan 14  2003 sampdesc.js
-rw-rw-r--. 1 focht focht 12042 Nov 26  2002 sampdesc.xml
-rw-rw-r--. 1 focht focht  4478 Nov 26  2002 sampdesc.xsl
-rwxrwxr-x. 1 focht focht 13312 Jan 27  2003 Serialization.exe
-rwxrwxr-x. 1 focht focht  9216 Jan 27  2003 TPCInfo.exe
--- snip ---

--- snip ---
$ find .wine/drive_c/ -iname "inkobj.dll" -exec ls -la {} \;
-rw-rw-r--. 1 focht focht 1032 Oct  7 20:28
.wine/drive_c/windows/syswow64/inkobj.dll
-rw-rw-r--. 1 focht focht 1032 Oct  7 20:28
.wine/drive_c/windows/system32/inkobj.dll
-rw-rw-r--. 1 focht focht 1131008 Dec 27  2002 '.wine/drive_c/Program Files
(x86)/Common Files/Microsoft Shared/Ink/inkobj.dll'

$ ls -la ".wine/drive_c/Program Files (x86)/Common Files/Microsoft Shared/Ink/"
total 1416
drwxrwxr-x. 2 focht focht    4096 Oct  7 20:29 .
drwxrwxr-x. 3 focht focht    4096 Oct  7 20:29 ..
-rw-rw-r--. 1 focht focht  257536 Jan 27  2003 InkDiv.dll
-rw-rw-r--. 1 focht focht 1131008 Dec 27  2002 inkobj.dll
-rw-rw-r--. 1 focht focht   48128 Dec 27  2002 tpcps.dll
--- snip ---

--- snip ---
$ WINEDEBUG=+seh,+relay wine ./BasicRecognition.exe >>log.txt 2>&1
...
002a:Call ole32.CoCreateInstance(010013b0,00000000,00000001,010012c0,01002010)
ret=0100171a 
...
002a:Call ntdll.RtlInitUnicodeString(0033f4e0,7e55c6a0
L"\\Registry\\Machine\\Software\\Classes") ret=7e4a88bc
002a:Ret  ntdll.RtlInitUnicodeString() retval=00000046 ret=7e4a88bc
002a:Call
ntdll.NtCreateKey(0033f4dc,02000000,0033f4e8,00000000,00000000,00000000,00000000)
ret=7e4a8702
002a:Ret  ntdll.NtCreateKey() retval=00000000 ret=7e4a8702
002a:Call ntdll.RtlInitUnicodeString(0033f520,0033f566
L"CLSID\\{AAC46A37-9229-4FC0-8CCE-4497569BF4D1}") ret=7e4aa6aa 
...
002a:Call KERNEL32.LoadLibraryExW(0033f386 L"C:\\Program Files (x86)\\Common
Files\\Microsoft Shared\\Ink\\inkobj.dll",00000000,00000008) ret=7e4a821f 
...
002a:Call advapi32.RegOpenKeyExW(80000001,55441ed0
L"Software\\\\Microsoft\\\\Wisp\\\\Pen\\\\Profile",00000000,00000001,0033ef50)
ret=5543bb07
002a:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=5543bb07
002a:Call advapi32.RegOpenKeyExW(80000001,55441f20
L"Software\\\\Microsoft\\\\TPG\\\\Recognizers",00000000,00000001,0033ef24)
ret=5543afac
002a:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=5543afac
002a:Call advapi32.RegQueryValueExW(00000060,55441f6c
L"GestureTimeout",00000000,00000000,555051b4,0033ef20) ret=5543afcb
002a:Ret  advapi32.RegQueryValueExW() retval=00000000 ret=5543afcb
002a:Call advapi32.RegCloseKey(00000060) ret=5543afdc
002a:Ret  advapi32.RegCloseKey() retval=00000000 ret=5543afdc
002a:Call advapi32.RegOpenKeyExW(80000001,55441f20
L"Software\\\\Microsoft\\\\TPG\\\\Recognizers",00000000,00000001,0033ef24)
ret=5543bb8a
002a:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=5543bb8a
002a:Call advapi32.RegQueryValueExW(00000060,55441e5c
L"GestureRecognizer",00000000,00000000,00000000,0033ef20) ret=5543bbae
002a:Ret  advapi32.RegQueryValueExW() retval=00000002 ret=5543bbae
002a:Call advapi32.RegCloseKey(00000060) ret=5543bbbf
002a:Ret  advapi32.RegCloseKey() retval=00000000 ret=5543bbbf
002a:Call advapi32.RegOpenKeyExW(80000002,55441f20
L"Software\\\\Microsoft\\\\TPG\\\\Recognizers",00000000,00000001,0033ef24)
ret=5543bbd5
002a:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=5543bbd5 
...
002a:Ret  PE DLL (proc=0x5543c766,module=0x55430000
L"inkobj.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
002a:Ret  KERNEL32.LoadLibraryExW() retval=55430000 ret=7e4a821f
...
002a:Call ole32.CoLoadLibrary(0033f3fc L"C:\\Program Files (x86)\\Common
Files\\Microsoft Shared\\Ink\\inkobj.dll",00000000) ret=5543ab62
...
002a:Call KERNEL32.LoadLibraryExW(0033f3fc L"C:\\Program Files (x86)\\Common
Files\\Microsoft Shared\\Ink\\inkobj.dll",00000000,00000008) ret=7e4ae28a
...
002a:Ret  KERNEL32.LoadLibraryExW() retval=55430000 ret=7e4ae28a
002a:Ret  ole32.CoLoadLibrary() retval=55430000 ret=5543ab62 
...
002a:Call ole32.CoCreateFreeThreadedMarshaler(00480640,00480660) ret=554b0ac1
002a:Ret  ole32.CoCreateFreeThreadedMarshaler() retval=00000000 ret=554b0ac1
...
002a:Call advapi32.RegOpenKeyExW(80000002,55441bc8
L"Software\\Microsoft\\TPG\\System Recognizers",00000000,00020019,0033f5ec)
ret=554389ae
002a:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=554389ae
...
002a:fixme:ole:CoCreateInstanceEx no instance created for interface
{c68f52f9-32a3-4625-906c-44fc23b40958} of class
{aac46a37-9229-4fc0-8cce-4497569bf4d1}, hres is 0x80040235
002a:Ret  ole32.CoCreateInstance() retval=80040235 ret=0100171a
002a:Call user32.MessageBoxA(00000000,01001450 "There are no handwriting
recognizers installed.\nYou need to have at least one in order to run this
sample.\nExiting.",010010dc "Basic Recognition",00000010) ret=01001732 
--- snip ---

I found the source of 'BasicRecognition.exe' (nothing special) on github:

https://github.com/Microsoft/Windows-classic-samples/blob/master/Samples/Win7Samples/tabletpc/basicrecognition/cpp/BasicRecognition.cpp#L104

--- snip ---
            // Create a recognition context that uses the default recognizer.
            // The single context will be used for all the recognition.
            hr = CoCreateInstance(CLSID_InkRecognizerContext,
                                  NULL, CLSCTX_INPROC_SERVER,
                                  IID_IInkRecognizerContext,
                                  (void **) &g_pIInkRecoContext);
            if (FAILED(hr))
            {
                ::MessageBox(NULL, TEXT("There are no handwriting recognizers
installed.\n"
                     TEXT("You need to have at least one in order to run this
sample.\nExiting.")),
                     gc_szAppName, MB_ICONERROR);
                return -1;
            }

            // Create the InkCollector object.
            hr = CoCreateInstance(CLSID_InkCollector,
                                  NULL, CLSCTX_INPROC_SERVER,
                                  IID_IInkCollector,
                                  (void **) &g_pIInkCollector);
            if (FAILED(hr))
return -1;
--- snip ---

The reason for the (native) failure is missing registry data due to missing
Recognizers (dlls). They are only shipped with Windows Tablet PC Edition.

http://www.tabletpctalk.com/developer/tabletReco/index.shtml
https://docs.microsoft.com/en-us/windows/desktop/tablet/registering-your-recognizer-dll

-> HKLM\\Software\\Microsoft\\TPG\\System Recognizers

There is the possibility to use some example/template dll from the SDK.

https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/tabletpc/recodll/cpp

--- snip ---
$ find .wine/drive_c/ -iname "reco*"
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/RecoDll.def
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/RecoDll.dsp
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/RecoDll.vcproj
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/RecoDll.cpp
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/RecoDll.sln
.wine/drive_c/Program Files (x86)/Microsoft Tablet PC Platform
SDK/Samples/RecoDLL/recodll.rc
--- snip ---

Sadly not provided as binary though so I stop here.

I don't see a compelling reason why I should waste my time on an old ticket
that is now 10 years old. If you want progress, re-test with recent Wine and/or
provide an example recognizer dll that properly registers. NOTE: Do not attach
original MS Tablet PC binaries/dlls.

$ sha1sum setup.exe 
219107690b45fa76e60574b0c887342637c29683  setup.exe

$ du -sh setup.exe 
11M    setup.exe

$ wine --version
wine-3.17-95-g726abdb388

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list