次の方法で共有


XPS OM パッケージ インターフェイス

パッケージ インターフェイスは、XPS ドキュメント ファイルに対応する XPS OM の最上位レベルを表します。 これらのインターフェイスには、XPS OM を XPS ドキュメントまたはストリームにシリアル化し、XPS パッケージを逆シリアル化して、プログラムがドキュメントの内容にアクセスできるようにする XPS OM を作成するメソッドが含まれています。

インターフェイス名 論理子インターフェイス Description
IXpsOMPackage
IXpsOMDocumentSequence
IXpsOMCoreProperties
XPS ドキュメントを含むパッケージに対応する完全な XPS OM。
IXpsOMPackageWriter
なし
ドキュメント ページのパッケージへの増分シリアル化を有効にします。
IXpsOMCoreProperties
なし
ドキュメント メタデータにアクセスします。

コード例

次のコード例は、一部のパッケージ インターフェイスがプログラムによってどのように使用されるかを示しています。 特に明記されていない限り、斜体の項目はすべてパラメーター名です。

XPS ドキュメントを XPS OM に読み取る

ファイル名が xpsDocumentFilename に格納されている既存の XPS ドキュメントから、 xpsPackage によって参照される XPS OM が作成されます。

    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.

XPS OM を XPS ドキュメント ファイルに書き込む

次のコード例では、 xpsPackage によって参照される XPS OM を書き込みます。 この例では、 fileName に格納されている名前の XPS ドキュメントを ファイルに作成します。

    HRESULT hr = S_OK;

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

XPS OM のドキュメント シーケンスにアクセスする

次のコード例では、xpsPackage で表される XPS OM のドキュメント シーケンスを含む IXpsOMDocumentSequence インターフェイスへのポインターを取得します。

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

ドキュメントの CoreProperties にアクセスする

次のコード例では、 IXpsOMCoreProperties インターフェイスへのポインターを取得し、プログラムが CoreProperties パーツの内容にアクセスできるようにします。 この例では、ドキュメントは xpsPackage で表される XPS OM に読み取られたと見なされます。

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

IXpsOMPackageWriter インターフェイスの使用

XPS OM 内を移動する

IXpsOMDocumentSequence インターフェイス

IXpsOMPackage インターフェイス

IXpsOMPackageWriter インターフェイス

IXpsOMCoreProperties インターフェイス