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 |
---|---|---|
Groups a set of FixedDocuments into an ordered list. |
||
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();