Working with IXpsOMDocumentSequence Interfaces
This topic describes how to use the interfaces that provide access to the FixedDocumentSequence, which is the top level of the document hierarchy in an XPS OM.
Interface name | Logical child interfaces | Description |
---|---|---|
IXpsOMDocumentSequence |
IXpsOMDocument |
Groups a set of FixedDocuments into an ordered list. |
IXpsOMDocumentCollection |
None |
The collection of FixedDocuments in an XPS document sequence. |
Code Example
The following code example obtains a pointer to the IXpsOMDocumentSequence interface that contains the document sequence of the XPS OM that is represented by xpsPackage. The example then enumerates the documents in the 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();