Delen via


XPS OM-pakketinterfaces

De pakketinterfaces vertegenwoordigen het hoogste niveau van de XPS OM, die overeenkomt met een XPS-documentbestand. Deze interfaces bevatten methoden die een XPS OM serialiseren naar een XPS-document of -stream en een XPS-pakket deserialiseren om een XPS OM te maken waarmee een programma toegang heeft tot de inhoud van een document.

Interfacenaam Logische onderliggende interfaces Beschrijving
IXpsOMPackage-
IXpsOMDocumentSequence-
IXpsOMCoreProperties-
Het volledige XPS OM dat overeenkomt met het pakket dat het XPS-document bevat.
IXpsOMPackageWriter
Geen
Maakt incrementele serialisatie van documentpagina's mogelijk voor een pakket.
IXpsOMCoreProperties-
Geen
Hiermee opent u de metagegevens van het document.

Codevoorbeelden

De volgende codevoorbeelden laten zien hoe sommige pakketinterfaces worden gebruikt door een programma. Tenzij anders vermeld, zijn alle cursieve items parameternamen.

Een XPS-document lezen in een XPS OM

Vanuit een bestaand XPS-document waarvan de bestandsnaam is opgeslagen in xpsDocumentFilename, wordt in dit codevoorbeeld een XPS OM gemaakt waarnaar wordt verwezen door xpsPackage.

    HRESULT                 hr = S_OK;
    IXpsOMPackage           *xpsPackage;

    hr = xpsFactory->CreatePackageFromFile(
        xpsDocumentFilename,
        FALSE,
        &xpsPackage);

    // xpsPackage now contains a pointer to the IXpsOMPackage
    // object that has been populated with the contents
    // of the XPS document in xpsDocumentFilename.

Een XPS OM schrijven naar een XPS-documentbestand

In het volgende codevoorbeeld wordt de XPS OM geschreven waarnaar wordt verwezen door xpsPackage. In het voorbeeld wordt een XPS-document gemaakt in het bestand waarvan de naam is opgeslagen in fileName.

    HRESULT hr = S_OK;

    hr = xpsPackage->WriteToFile(
        xpsDocumentFilename,
        NULL,                    // LPSECURITY_ATTRIBUTES
        FILE_ATTRIBUTE_NORMAL,
        FALSE);                  // optimizeMarkupSize

Toegang tot de documentvolgorde van de XPS OM

In het volgende codevoorbeeld wordt een aanwijzer naar de IXpsOMDocumentSequence interface verkregen, die de documentreeks bevat van de XPS OM die wordt vertegenwoordigd door xpsPackage.

    HRESULT                         hr = S_OK;
    IXpsOMDocumentSequence          *docSeq;
    IXpsOMDocumentCollection        *docs;

    // 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);

De CoreProperties van het document openen

In het volgende codevoorbeeld wordt een aanwijzer naar de IXpsOMCoreProperties interface verkregen, zodat het programma toegang heeft tot de inhoud van het coreProperties-onderdeel. In het voorbeeld wordt ervan uitgegaan dat het document is gelezen in een XPS OM dat wordt vertegenwoordigd door xpsPackage.

    HRESULT                         hr = S_OK;
    IXpsOMCoreProperties            *coreProps;
    LPWSTR                          title;

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

    // get the title property 
    hr = coreProps->GetTitle(&title);

    // do something with the title property here...

    // free the string when finished with it
    CoTaskMemFree ( title );
    coreProps->Release();

De IXpsOMPackageWriter-interface gebruiken

navigeren in de XPS OM-

IXpsOMDocumentSequence Interface

IXpsOMPackage Interface

IXpsOMPackageWriter Interface

IXpsOMCoreProperties Interface