Поделиться через


Метод 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 Apartment (STA); не вводите его повторно.
 
Осторожностью Этот поток не должен быть замаскирован.
 

[in] fontEmbedding

Значение XPS_FONT_EMBEDDING , указывающее параметр внедрения потока.

[in] partUri

Интерфейс IOpcPartUri , содержащий имя части, назначаемой этому ресурсу. Этот параметр не должен иметь значение NULL.

[in] isObfSourceStream

Логическое значение, указывающее, замаскирован ли поток, на который ссылается метод acquiredStream .

Значение Значение
ИСТИННЫЙ
Поток, на который ссылается метод acquiredStream , замаскирован.
ЛОЖНЫХ
Поток, на который ссылается метод acquiredStream, не скрывается.

[out, retval] fontResource

Указатель на новый интерфейс IXpsOMFontResource .

Возвращаемое значение

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения в следующей таблице. Сведения о возвращаемых значениях API документов XPS, не перечисленных в этой таблице, см. в разделе Ошибки документа XPS.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Произошла одна из следующих ошибок:
E_POINTER
параметр acquiredStream, partUri или fontResource имеет значение NULL.

Комментарии

Значение isObfSourceStream описывает состояние потока, на который ссылается ссылка на поток, на момент создания ресурса шрифта. Все последующие вызовы GetStream или SetContent будут работать в необщаемых версиях IStream.

Если для параметра isObfSourceStream задано значение TRUE , а для fontEmbedding заданозначение 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, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header xpsobjectmodel.h

См. также раздел

IOpcPartUri

IXpsOMFontResource

IXpsOMObjectFactory

XPS

Ошибки документа XPS

XPS_FONT_EMBEDDING