类型 1 在线商店的注册表项和条目
[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
若要使类型 1 在线商店在 Windows 媒体播放器 中可用,在线商店提供程序必须在用户计算机上创建以下注册表子项和条目。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MediaPlayer\Subscriptions\keyName]
"Capabilities"=dword:flags
"SubscriptionObjectGUID"=clsid
"FriendlyName"=friendlyName
[HKEY_CLASSES_ROOT\AppID\appid]
@=pluginName
"DllSurrogate"=""
[HKEY_CLASSES_ROOT\CLSID\clsid]
@=className
"AppID"="appid"
[HKEY_CLASSES_ROOT\CLSID\clsid\InprocServer32]
@=moduleName
"ThreadingModel"="threading"
注意
将 DllSurrogate 的值设置为空字符串表示 COM 运行时会将在线商店的插件加载到默认 DLL 代理项中,dllhost.exe。
在前面的注册表语法中,斜体符号是特定于在线商店的名称和全局唯一标识符的占位符 (GUID) 。 下表介绍了这些占位符。
占位符 | 说明 |
---|---|
keyName | Microsoft 与在线商店之间商定的字符串。 此字符串唯一标识在线商店。示例:“Proseware” |
flag | 一个或多个插件功能标志的按位 OR 这些标志指定Windows 媒体播放器是否应调用 IWMPContentPartner 的特定方法。 有关支持的标志的信息,请参阅此表后面的插件功能标志表。示例:00000058 |
clsid | 一个 GUID,它是在在线商店插件中实现 IWMPContentPartner 的类 (CLSID) 的类标识符。 此 GUID 必须采用注册表格式,并带有大括号。格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} |
friendlyname | 在线商店的友好名称。示例:“Proseware Music Service” |
appid | 一个 GUID,它是在线商店插件的应用程序标识符 (AppID) 。 此 GUID 必须采用注册表格式,并带有大括号。格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} |
pluginName | 在线商店插件的名称。示例:“Proseware 内容合作伙伴插件” |
className | 在在线商店的插件中实现 IWMPContentpartner 的类的名称。示例:“CProsewarePartner” |
moduleName | 实现在线商店插件的 DLL 的完全限定路径。示例:“C:\Program Files\Proseware\ProsewarePartner.dll” |
threading | 插件运行的单元类型。 “ThreadingModel”=“Apartment”表示插件在单线程单元中运行, (STA) 。 “ThreadingModel”=“Free”表示插件在 MTA) (多线程单元中运行。 |
下表介绍了插件功能标志。
标志 | 值 | 描述 |
---|---|---|
SUBSCRIPTION_CAP_BACKGROUNDPROCESSING | 0x8 | Windows 媒体播放器应调用 IWMPContentPartner::Notify,以通知插件何时应启动和停止后台处理。 |
SUBSCRIPTION_CAP_DEVICEAVAILABLE | 0x10 | Windows 媒体播放器应调用 IWMPContentPartner::UpdateDevice。 |
SUBSCRIPTION_CAP_IS_CONTENTPARTNER | 0x40 | 通知Windows 媒体播放器插件实现 IWMPContentPartner 接口。 所有类型 1 在线商店插件都必须设置此标志。 |
SUBSCRIPTION_CAP_ALTLOGIN | 0x80 | 通知Windows 媒体播放器插件支持备用登录名。 如果插件支持备用登录名,Windows 媒体播放器通过调用 IWMPContentPartner::GetItemInfo 检索备用登录 URL 并描述文字。 |
用于开发和测试的注册表项
当你开始开发在线商店时,Microsoft 会提供两个密钥:一个测试密钥和一个生产密钥。 在开发和测试阶段,仅当测试密钥或生产密钥位于用户计算机上的注册表中时,您的在线商店才会显示在 Windows 媒体播放器 中。 有关测试和生产密钥的详细信息,请参阅 Type 1 Online Store 的测试密钥和生产密钥。
将测试或生产密钥放在注册表中的以下位置。
[HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Services]
"TestParameter" = "key1;key2;...;keyN"
请注意,TestParameter 注册表项的值可以指定多个测试或生产密钥。 例如,假设 Proseware 的测试密钥为“1234”,而 Contoso 的测试键为“2345”。 以下注册表项指定 Proseware 和 Contoso 的测试存储将显示在Windows 媒体播放器中。
[HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Services]
"TestParameter" = "1234;2345"
ActiveService 注册表项
当用户激活在线商店时,Windows 媒体播放器在标识活动在线商店的注册表中写入信息。 Windows 媒体播放器将信息放在用户计算机上的注册表中的以下位置。
[HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Subscriptions]
"ActiveService"=serviceInfo
在前面的注册表语法中, serviceInfo 是字符串的占位符,其中包含有关活动在线商店的描述性信息。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈