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