I have a SAPI (Speech Recognition) program built with PB Win 8 that I'm trying to upgrade to PB Win 9. I am having problems with the DisplayUI method...
In PB Win 8, I accessed SAPI.INC's [COM Browser Outpu]:
Interface Dispatch SAPISpSharedRecognizer
In code, I used:
In PB Win 9, I accessed SAPI.INC's [COM Browser Outpu]:
INTERFACE ISpeechRecognizer $IID_ISpeechRecognizer
In code, I tried to use:
I keep getting an error with DisplayUI. I've tried filling the OPT ExtraData with the variant data I used in PB Win 8. I tried making the first and/or(every combination) second strings into UCODE$(). I tried it on another computer. I'm just not having any luck. I'm sure it's something I'm doing, but the conversion was so easy with all the other COM stuff (even MapPoint, etc.) I'm just stumped with this and can't figure it out.
Can anyone see what I'm missing?
Thanks!
-John
In PB Win 8, I accessed SAPI.INC's [COM Browser Outpu]:
Interface Dispatch SAPISpSharedRecognizer
Code:
METHOD DisplayUI <17> (BYVAL hWndParent AS LONG, BYVAL Title AS STRING, BYVAL TypeOfUI AS STRING, _ OPT BYREF IN ExtraData AS VARIANT)
Code:
LOCAL vHWND, vTitle, vUIType, vExtraData, vResult AS VARIANT vHWND = hWnd vTitle = "MyTitle" & $NUL vUIType = "MicTraining" & $NUL vExtraData = "" & $NUL OBJECT CALL oRecoContext.Recognizer.DisplayUI ( vHWND, vTitle, vUIType, vExtraData ) TO vResult
INTERFACE ISpeechRecognizer $IID_ISpeechRecognizer
Code:
METHOD DisplayUI <17> (BYVAL hWndParent AS LONG, BYVAL Title AS STRING, BYVAL TypeOfUI AS STRING, _ OPT BYREF IN ExtraData AS VARIANT)
Code:
#COMPILE EXE #DIM ALL #INCLUDE "Win32API.INC" #INCLUDE "SAPI.INC" FUNCTION PBMAIN () AS LONG DIM oRecoContext AS ISpeechRecoContext DIM oRecognizer AS ISpeechRecognizer DIM zErrMsg AS ASCIIZ * 2048 oRecoContext = NEWCOM $PROGID_SpSharedRecoContext1 IF ISFALSE ( ISOBJECT ( oRecoContext ) ) THEN MSGBOX "oRecoContext ERROR" : EXIT FUNCTION oRecognizer = oRecoContext.Recognizer() IF ISFALSE ( ISOBJECT ( oRecognizer ) ) THEN MSGBOX "oRecognizer ERROR" : EXIT FUNCTION oRecognizer.DisplayUI ( %HWND_DESKTOP, "Title", "MicTraining" ) CALL FORMATMESSAGE ( %FORMAT_MESSAGE_FROM_SYSTEM, BYVAL 0&, OBJRESULT, BYVAL MAKELANGID ( %LANG_NEUTRAL, _ %SUBLANG_DEFAULT ), zErrMsg, SIZEOF(zErrMsg), BYVAL 0& ) MSGBOX zErrMsg,,"1" oRecoContext.Recognizer.DisplayUI ( 0, "Title" , "MicTraining") CALL FORMATMESSAGE ( %FORMAT_MESSAGE_FROM_SYSTEM, BYVAL 0&, OBJRESULT, BYVAL MAKELANGID ( %LANG_NEUTRAL, _ %SUBLANG_DEFAULT ), zErrMsg, SIZEOF(zErrMsg), BYVAL 0& ) MSGBOX zErrMsg,,"2" END FUNCTION
Can anyone see what I'm missing?
Thanks!
-John