Utilisation des interfaces IXpsOMDocumentSequence

Cette rubrique explique comment utiliser les interfaces qui fournissent l’accès à FixedDocumentSequence, qui est le niveau supérieur de la hiérarchie de documents dans un modèle d’objet XPS.

Nom de l’interface Interfaces enfants logiques Description
IXpsOMDocumentSequence
IXpsOMDocument
Regroupe un ensemble de FixedDocuments dans une liste ordonnée.
IXpsOMDocumentCollection
None
Collection de FixedDocuments dans une séquence de documents XPS.

Exemple de code

L’exemple de code suivant obtient un pointeur vers l’interface IXpsOMDocumentSequence qui contient la séquence de documents du modèle d’objet XPS qui est représenté par xpsPackage. L’exemple énumère ensuite les documents dans la collection.

    HRESULT                         hr = S_OK;

    IXpsOMDocumentSequence          *docSeq;
    IXpsOMDocumentCollection        *docs;
    IXpsOMDocument                  *doc;

    UINT32  numDocs = 0;
    UINT32  thisDoc = 0;

    // get the fixed document sequence of the package
    hr = xpsPackage->GetDocumentSequence(&docSeq);

    // get the collection of fixed documents in 
    //  the fixed document sequence
    hr = docSeq->GetDocuments(&docs);

    // walk the collection of documents;
    hr = docs->GetCount(&numDocs);
    thisDoc = 0;
    while (thisDoc < numDocs) {
        hr = docs->GetAt(thisDoc, &doc);
 
        // use this doc for something

        // release this doc and then go to the next one
        doc->Release();
        thisDoc++;
    }
    // release the document collection and
    // the document sequence
    docs->Release();
    docSeq->Release();