[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