IXpsOMObjectFactory::CreateFontResource 方法 (xpsobjectmodel.h)

创建 IXpsOMFontResource 接口,该接口为字体资源提供 IStream 接口。

语法

HRESULT CreateFontResource(
  [in]          IStream            *acquiredStream,
  [in]          XPS_FONT_EMBEDDING fontEmbedding,
  [in]          IOpcPartUri        *partUri,
  [in]          BOOL               isObfSourceStream,
  [out, retval] IXpsOMFontResource **fontResource
);

参数

[in] acquiredStream

要与此字体资源关联的只读 IStream 接口。 此参数不得为 NULL

重要 将此流视为 Single-Threaded 单元 (STA) 对象;不要重新输入。
 
谨慎 此流不会被模糊处理。
 

[in] fontEmbedding

XPS_FONT_EMBEDDING值,该值指定流的嵌入选项。

[in] partUri

包含要分配给此资源的部件名称的 IOpcPartUri 接口。 此参数不得为 NULL

[in] isObfSourceStream

一个布尔值,指示是否对 acquiredStream 引用的流进行模糊处理。

含义
对 acquiredStream 引用的流进行模糊处理。
acquiredStream 引用的流不会被模糊处理。

[out, retval] fontResource

指向新 IXpsOMFontResource 接口的指针。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
发生以下错误之一:
  • fontEmbedding 不是有效的 XPS_FONT_EMBEDDING 值。
  • fontEmbedding XPS_FONT_EMBEDDING_NORMAL,isObfSourceStream 为 TRUE
E_POINTER
acquiredStreampartUrifontResourceNULL

注解

isObfSourceStream 的值描述创建字体资源时,acquiredStream 引用的流的状态。 对 GetStreamSetContent 的所有后续调用都将在 IStream 的未obfuscat 版本上运行。

如果 isObfSourceStream 设置为 TRUEfontEmbedding 设置为 XPS_FONT_EMBEDDING_NORMAL,或者 partUri 引用的名称不符合模糊处理的流的语法,则返回错误。

下面的代码示例演示了如何使用此方法创建新接口。


IXpsOMFontResource    *newInterface;
IOpcPartUri           *partUri;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    // The partUriString and acquiredStream variables 
    //   are defined outside of this example.
    hr = xpsFactory->CreatePartUri(partUriString, &partUri);
    if (SUCCEEDED(hr))
    {
        hr = xpsFactory->CreateFontResource (
            acquiredStream, 
            XPS_FONT_EMBEDDING_NORMAL,    // normal
            partUri, 
            FALSE,                        // not obfuscated
            &newInterface);
        if (SUCCEEDED(hr))
        {
            // use newInterface

            newInterface->Release();
        }
        partUri->Release();
    }
    xpsFactory->Release();
}
else
{
    // evaluate HRESULT error returned in hr
}

要求

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

另请参阅

IOpcPartUri

IXpsOMFontResource

IXpsOMObjectFactory

XML 纸张规范

XPS 文档错误

XPS_FONT_EMBEDDING