ID2D1Factory1::RegisterEffectFromString 方法 (d2d1_1.h)

使用指定为字符串的属性 XML 在工厂实例中注册效果。

语法

HRESULT RegisterEffectFromString(
  [in]           REFCLSID                    classId,
  [in]           PCWSTR                      propertyXml,
  [in, optional] const D2D1_PROPERTY_BINDING *bindings,
                 UINT32                      bindingsCount,
                 const PD2D1_EFFECT_FACTORY  effectFactory
);

参数

[in] classId

类型: REFCLSID

要注册的效果的标识符。

[in] propertyXml

类型: PCWSTR

效果属性、类型和元数据的列表。

[in, optional] bindings

类型: const D2D1_PROPERTY_BINDING*

属性和方法的数组。

这会按名称将属性绑定到由效果创建者实现以处理属性的特定方法。 必须在相应的 属性Xml中找到该名称。

bindingsCount

类型: UINT32

绑定数组中的绑定数。

effectFactory

类型: PD2D1_EFFECT_FACTORY

用于创建相应效果的静态工厂。

返回值

类型: HRESULT

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

HRESULT 说明
S_OK 未发生错误。
E_OUTOFMEMORY Direct2D 无法分配足够的内存来完成调用。
E_INVALIDARG 向返回函数传递了无效的参数。

备注

Direct2D 效果必须在注册时通过注册 XML 定义其属性。 效果声明多个必需的系统属性,还可以声明自定义属性。 有关设置 propertyXml 参数格式的详细信息,请参阅自定义效果

RegisterEffect 同时计算原子和引用计数。 若要取消注册效果,请使用效果的 classId 调用 UnregisterEffect

重要说明RegisterEffect 不保存对包含效果的 DLL 或可执行文件的引用。 应用程序必须独立确保 DLL 或可执行文件的生存期完全包含每个已注册和创建效果的所有实例。
 
除了全局注册的 内置效果 之外,此 API 仅针对此工厂和派生设备和设备上下文接口注册效果。

要求

   
最低受支持的客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1_1.h
Library D2d1.lib
DLL D2d1.dll

另请参阅

ID2D1Factory1

ID2D1Factory1::UnregisterEffect