Partager via


Utilisation des interfaces IXpsOMDocument

Cette rubrique décrit les interfaces qui fournissent l’accès aux composants au niveau du document d’un om XPS.

Nom de l’interface Interfaces enfant logiques Description
IXpsOMDocument
IXpsOMPageReference
Représente un seul composant FixedDocument et lie une collection de références de page.
IXpsOMPageReferenceCollection est l’interface de collection utilisée pour itérer à travers les interfaces IXpsOMPageReference dans un document.
IXpsOMDocumentStructureResource
None
Représente le composant DocumentStructure.

Exemples de code

Les exemples de code de cette section illustrent la façon dont certaines interfaces de document sont utilisées dans un programme.

Obtenir les références de page d’un document

L’exemple de code suivant obtient un pointeur vers la IXpsOMPageReferenceCollection qui contient la liste des interfaces IXpsOMPageReference pour le document référencé par le paramètre doc .

    HRESULT                               hr = S_OK;


    IXpsOMPageReferenceCollection         *pages;
    IXpsOMPageReference                   *pageRef;
    IXpsOMPage                            *page;

    UINT32  numPageRefs = 0;
    UINT32  thisPageRef = 0;

    // get the doc contents
    hr = doc->GetPageReferences(&pages);
        
    // walk the collection of page references
    hr = pages->GetCount(&numPageRefs);
    thisPageRef = 0;
    while (thisPageRef < numPageRefs) {
        // get this page reference
        hr = pages->GetAt(thisPageRef, &pageRef);

        // get the page content of this page reference
        hr = pageRef->GetPage (&page);

        // use the page

        // free this page & page reference and go to next
        page->Release();
        pageRef->Release();
        thisPageRef++;
    }

    pages->Release();

Obtenir la structure d’un document

L’exemple de code suivant obtient la ressource qui contient la structure de document.

    HRESULT                             hr = S_OK;
    
    IXpsOMDocumentStructureResource     *docStruct;
    IStream                             *docStructResStream;

    // doc is passed in as an argument
    // get the doc contents
    hr = doc->GetDocumentStructureResource(&docStruct);
   
    hr = docStruct->GetStream ( &docStructResStream );

    // access the document structure resource 
    //  contents by reading from the stream

    docStructResStream->Release();
    docStruct->Release();