https://bugs.winehq.org/show_bug.cgi?id=14550
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@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@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...
--- 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/Win...
--- 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-rec...
-> 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/Win...
--- 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