Compartilhar via


Método IXpsOMObjectFactory::CreateFontResource (xpsobjectmodel.h)

Cria uma interface IXpsOMFontResource , que fornece uma interface IStream para o recurso de fonte.

Sintaxe

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

Parâmetros

[in] acquiredStream

A interface IStream somente leitura a ser associada a esse recurso de fonte. Esse parâmetro não deve ser NULL.

Importante Trate esse fluxo como um objeto STA (Single-Threaded Apartment) ; não insira novamente.
 
Cuidado Esse fluxo não deve ser ofuscado.
 

[in] fontEmbedding

O valor XPS_FONT_EMBEDDING que especifica a opção de inserção do fluxo.

[in] partUri

A interface IOpcPartUri que contém o nome da parte a ser atribuída a esse recurso. Esse parâmetro não deve ser NULL.

[in] isObfSourceStream

Um valor booliano que indica se o fluxo referenciado por acquiredStream está ofuscado.

Valor Significado
VERDADE
O fluxo referenciado por acquiredStream é ofuscado.
FALSE
O fluxo referenciado por acquiredStream não está ofuscado.

[out, retval] fontResource

Um ponteiro para a nova interface IXpsOMFontResource .

Retornar valor

O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam, aqueles na tabela a seguir. Para obter informações sobre valores retornados da API de documento XPS que não estão listados nesta tabela, consulte Erros de documento XPS.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
Ocorreu um dos seguintes erros:
E_POINTER
acquiredStream, partUri ou fontResource é NULL.

Comentários

O valor de isObfSourceStream descreve o estado do fluxo referenciado por acquiredStream no momento em que o recurso de fonte é criado. Todas as chamadas subsequentes para GetStream ou SetContent funcionarão em versões não observadas do IStream.

Um erro será retornado se isObfSourceStream estiver definido como TRUE e fontEmbedding estiver definido como XPS_FONT_EMBEDDING_NORMAL ou se o nome referenciado por partUri não estiver em conformidade com a sintaxe para fluxos ofuscados.

O exemplo de código a seguir ilustra como esse método é usado para criar uma nova interface.


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
}

Requisitos

   
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho xpsobjectmodel.h

Confira também

IOpcPartUri

IXpsOMFontResource

IXpsOMObjectFactory

Especificação de Papel XML

Erros de documento XPS

XPS_FONT_EMBEDDING