DWriteCreateFactory 函数 (dwrite.h)

创建DirectWrite工厂对象,该对象用于后续创建单个DirectWrite对象。

语法

HRESULT DWriteCreateFactory(
  [in]  DWRITE_FACTORY_TYPE factoryType,
  [in]  REFIID              iid,
  [out] IUnknown            **factory
);

参数

[in] factoryType

类型: DWRITE_FACTORY_TYPE

一个 值,该值指定工厂对象是共享还是隔离。

[in] iid

类型: REFIID

标识DirectWrite工厂接口的 GUID 值,例如__uuidof (IDWriteFactory) 。

[out] factory

类型: IUnknown**

指向新创建的DirectWrite工厂对象的指针的地址。

返回值

类型: HRESULT

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此函数创建一个DirectWrite工厂对象,该对象用于后续创建单个DirectWrite对象。 DirectWrite工厂包含内部状态数据,例如字体加载程序注册和缓存的字体数据。 在大多数情况下,建议使用共享工厂对象,因为它允许使用DirectWrite的多个组件共享内部DirectWrite状态数据,从而减少内存使用量。 但是,在某些情况下,需要通过沙盒化组件并将其与进程组件的其余部分隔离,来减少组件(例如来自不受信任源的插件)对进程其余部分的影响。 在这种情况下,建议对沙盒组件使用隔离工厂。

以下示例演示如何创建共享DirectWrite工厂。


if (SUCCEEDED(hr))
{
    hr = DWriteCreateFactory(
        DWRITE_FACTORY_TYPE_SHARED,
        __uuidof(IDWriteFactory),
        reinterpret_cast<IUnknown**>(&pDWriteFactory_)
        );
}


要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 dwrite.h
Library Dwrite.lib
DLL Dwrite.dll