Как преобразовать переменную char в BSTR в языке C?
У меня есть устаревшая программа, написанная на языке Си, и мне приходится добавлять вызовы к COM-объекту. Проблема, с которой я сталкиваюсь, заключается в передаче данных функциям в COM-модуле. Я могу передать литералы в модуль, но как я могу преобразовать переменные в BSTR?
Пример с литералами:
BSTR baseUrl = SysAllocString(L"www.google.com"); BSTR sessionName = SysAllocString(L""); VARIANT_BOOL returnVal; result = viewer->pVtbl->launchSession(viewer, baseUrl, sessionName, &returnVal); if (result != S_OK) { printf("COM call to WebViewer.launchSession failed\n"); SysFreeString(baseUrl); SysFreeString(sessionName); return 1; }
Вместо жесткого кодирования "www.google.com" мне нужно использовать переменную, определенную как char [215].
Что я уже пробовал:
Я нашел
_com_util::ConvertStringToBSTR(lpszText);но я не могу понять, как использовать его в C. Все примеры приведены для C++.
KarstenK
преобразование - это не правильное слово, потому что вы должны создать новый BSTR, как ответили ребята.