IXpsOMObjectFactory::CreateFontResource method
Creates an IXpsOMFontResource interface, which provides an IStream interface to the font resource.
Syntax
HRESULT CreateFontResource(
[in] IStream *acquiredStream,
[in] XPS_FONT_EMBEDDING fontEmbedding,
[in] IOpcPartUri *partUri,
[in] BOOL isObfSourceStream,
[out, retval] IXpsOMFontResource **fontResource
);
Parameters
acquiredStream [in]
The read-only IStream interface to be associated with this font resource. This parameter must not be NULL.Important Treat this stream as a Single-Threaded Apartment (STA) object; do not re-enter it.
Caution This stream is not to be obfuscated.
fontEmbedding [in]
The XPS_FONT_EMBEDDING value that specifies the stream's embedding option.partUri [in]
The IOpcPartUri interface that contains the part name to be assigned to this resource. This parameter must not be NULL.isObfSourceStream [in]
A Boolean value that indicates whether the stream referenced by acquiredStream is obfuscated.Value Meaning TRUE The stream referenced by acquiredStream is obfuscated.
FALSE The stream referenced by acquiredStream is not obfuscated.
fontResource [out, retval]
A pointer to the new IXpsOMFontResource interface.
Return value
The method returns an HRESULT. Possible values include, but are not limited to, those in the table that follows. For information about XPS document API return values that are not listed in this table, see XPS Document Errors.
Return code | Description |
---|---|
S_OK | The method succeeded. |
E_INVALIDARG | One of the following errors has occurred:
|
E_POINTER | acquiredStream, partUri, or fontResource is NULL. |
Remarks
The value of isObfSourceStream describes the state of the acquiredStream-referenced stream at the time the font resource is created. All subsequent calls to GetStream or SetContent will operate on unobfuscated versions of IStream.
An error is returned if isObfSourceStream is set to TRUE and fontEmbedding is set to XPS_FONT_EMBEDDING_NORMAL, or if the name referenced by partUri does not conform to the syntax for obfuscated streams.
The code example that follows illustrates how this method is used to create a new 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
}
Requirements
Minimum supported client |
Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | Windows Store apps] |
Minimum supported server |
Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | Windows Store apps] |
Header |
Xpsobjectmodel.h |
IDL |
XpsObjectModel.idl |