BSTR и VARIANT - это типы данных, используемые в COM. На самом деле, VARIANT - это контейнер, который может содержать любой тип данных COM.
В вашем случае GetInput () возвращает VARIANT, содержащий буфер, в виде BSTR, поэтому для его получения необходимо использовать bstrVal.