2009-06-26 33 views
2

在Windows Mobile生态系统中是否有即时可用的API(C/C++),可用于生成GUID?我正在寻找简单的一次性API来执行此操作。如果需要编写一个完整的算法或使用一些额外的第三方模块,我将在没有这个的情况下离开。如何在Windows Mobile下生成GUID?

背景。要向用户显示通知,我使用SHNotificationAdd,它需要一个GUID。 MSDN和其他来源中的示例显示GUID是硬编码的。但是,我想将SHNotification *包装在一个类中,该类很好地融入了我的应用程序的整体设计中。 MSDN对于SHNOTIFICATIONDATA-> clsid代表的细节非常害羞。所提到的“班级”提出的问题比答案更多。

回答

1

你并不需要生成SHNOTIFICATIONDATA一个GUID。

如果您希望WM通知实现IshellNotificationCallback接口的COM对象,则只设置clsid。从MSDN

报价:

当装载了SHNOTIFICATIONDATA 结构,你可以指定的 通知类(CLSID),窗口 接收命令选项(hwndSink), 或两者兼而有之。如果您指定clsid,您的COM组件必须实现 IshellNotificationCallback。如果你 指定了clsid和hwndSink,则将生成COM和Window Message-style 回调。

我从来没有亲自使用COM回调,我总是使用Windows消息回调。设置和使用起来要容易得多,而且不需要生成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 2016-10-20 11:06:04