类型 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 是字符串的占位符,其中包含有关活动在线商店的描述性信息。

类型 1 在线商店的参考