Announcement

Collapse
No announcement yet.

PB Win 8 to 9: COM SAPI DisplayUI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PB Win 8 to 9: COM SAPI DisplayUI

    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
    Code:
        METHOD DisplayUI <17> (BYVAL hWndParent AS LONG, BYVAL Title AS STRING, BYVAL TypeOfUI AS STRING, _
            OPT BYREF IN ExtraData AS VARIANT)
    In code, I used:
    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
    In PB Win 9, I accessed SAPI.INC's [COM Browser Outpu]:
    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)
    In code, I tried to use:
    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
    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
    LOCAL MyEMail AS STRING
    MyEmail = STRREVERSE$("53pmohtj") & CHR$(64) & STRREVERSE$("liamg") & CHR$(46) & STRREVERSE$("moc")
Working...
X