2009-06-26 4 views
2

Есть ли готовый к использованию API (C/C++) в экосистеме Windows Mobile, который я мог бы использовать для создания GUID? Для этого я ищу простой API с одним выстрелом. Если есть необходимость написать целый алгоритм или использовать некоторые дополнительные сторонние модули, я обойду без этого.Как создать GUID под Windows Mobile?

Фон. Чтобы отобразить уведомление для пользователя, я использую SHNotificationAdd, для которого требуется GUID. Примеры в MSDN и других источниках показывают, что GUID жестко закодирован. Тем не менее, я хочу обернуть SHNotification * в классе, который хорошо сочетается с общим дизайном моего приложения. MSDN очень застенчив в деталях о том, что представляет SHNOTIFICATIONDATA-> clsid. В упомянутом «классе» возникает больше вопросов, чем ответов.

ответ

1

Вам не нужно сгенерировать GUID для SHNOTIFICATIONDATA.

Вы устанавливаете clsid только в том случае, если хотите, чтобы WM уведомил COM-объект, реализующий интерфейс IshellNotificationCallback.

Цитата MSDN:

При загрузке вверх SHNOTIFICATIONDATA структуру, вы можете указать либо класс уведомления (CLSID), окно получить выбор команды (hwndSink), или оба. Если вы укажете clsid, , ваш компонент COM должен реализовать IshellNotificationCallback. Если вы укажете clsid и hwndSink, , то будут сформированы как COM, так и Window Message-style .

Я никогда не использовал обратный вызов COM, я всегда использую обратный вызов окна. Гораздо проще настроить и использовать, и вам не нужно генерировать GUID.

0

Вы также можете использовать UuidCreate (который в конечном итоге вызывает CoCreateGuid).

+0

Согласно MSDN (https://msdn.microsoft.com/en-us/library/windows/desktop/aa379205(v=vs.85).aspx) 'UuidCreate' доступен только для настольных приложений (что делает интересно, что на самом деле делает «CoCreateGuid» на Windows Mobile). – skyking