Как и в упоминаниях Данбыстрома, разница может быть в инициализации. Но это может повлиять и на исполнение косвенно. Например, что если метод не вызывает SysStringLen для определения длины строки, а вместо этого пытается использовать ее в качестве строки с нулевым символом в конце? Это вряд ли является причиной проблемы, но стоит проверить.
В этом случае поможет следующее. Используйте SysAllocStringLen (), чтобы получить BSTR с завершающим нулевым символом.