Partager via


IXpsOMObjectFactory::CreateImageResource method

Creates an IXpsOMImageResource interface, which is used to access an image resource stream.

Syntax

HRESULT CreateImageResource(
  [in]          IStream             *acquiredStream,
  [in]          XPS_IMAGE_TYPE      contentType,
  [in]          IOpcPartUri         *partUri,
  [out, retval] IXpsOMImageResource **imageResource
);

Parameters

  • acquiredStream [in]
    The read-only stream to be associated with this resource. This parameter must not be NULL.

    Important  Treat this stream as a Single-Threaded Apartment (STA) object; do not re-enter it.

     

  • contentType [in]
    The XPS_IMAGE_TYPE value that describes the image type of the stream that is referenced by acquiredStream.

  • partUri [in]
    The IOpcPartUri interface that contains the part name to be assigned to this resource. This parameter must not be NULL.

  • imageResource [out, retval]
    A pointer to the new IXpsOMImageResource 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

contentType was not a valid XPS_IMAGE_TYPE value.

E_POINTER

acquiredStream, partUri, or imageResource is NULL.

 

Remarks

The code example that follows illustrates how this method is used to create a new interface.

IXpsOMImageResource    *newInterface;
// The following values are defined outside of 
// this example.
//  IStream            *acquiredStream;
//  XPS_IMAGE_TYPE     contentType;
//  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->CreateImageResource (
            acquiredStream,
            contentType,
            partUri,
            &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

See also

IXpsOMObjectFactory

IOpcPartUri

IXpsOMImageResource

XPS_IMAGE_TYPE

XPS Document Errors

XML Paper Specification