COM: получить хороший CLSID - PullRequest
1 голос
/ 11 июля 2011

У меня небольшая проблема с CLSID.

У меня есть (подключенная) функция, у которой в параметре есть REFCLSID.Поэтому я хочу напечатать этот параметр.

Я сделал:

LPOLESTR pOleStr;
StringFromCLSID(rclsid,&pOleStr); //rclsid is a REFCLSID type.
ofstream myfile;
myfile.open("C:\\output.txt",ios::app);
myfile << pOleStr << std::endl;
myfile.close();

Но в «output.txt» у меня просто есть строка из 8 символов, но у меня должна быть такая строка:111111-2222-3333-4444-000000000000.

Так что, если у кого-то есть идея ...

Спасибо.

1 Ответ

1 голос
/ 11 июля 2011

Просто предположение, я думаю, что LPOLESTR является широкоформатным, вам придется конвертировать его в ASCII, используя

CHAR  szCLSID[60];
WideCharToMultiByte(CP_ACP, 0, pOleStr, -1, szCLSID, 60, NULL, NULL);

Также не забудьте CoTaskMemFree(pOleStr) впоследствии:)

...