XPS OM パッケージ インターフェイス
パッケージ インターフェイスは、XPS ドキュメント ファイルに対応する XPS OM の最上位レベルを表します。 これらのインターフェイスには、XPS OM を XPS ドキュメントまたはストリームにシリアル化し、XPS パッケージを逆シリアル化して、プログラムがドキュメントの内容にアクセスできるようにする XPS OM を作成するメソッドが含まれています。
インターフェイス名 | 論理子インターフェイス | Description |
---|---|---|
IXpsOMPackage |
IXpsOMDocumentSequence IXpsOMCoreProperties |
XPS ドキュメントを含むパッケージに対応する完全な XPS OM。 |
IXpsOMPackageWriter |
なし |
ドキュメント ページのパッケージへの増分シリアル化を有効にします。 |
IXpsOMCoreProperties |
なし |
ドキュメント メタデータにアクセスします。 |
コード例
次のコード例は、一部のパッケージ インターフェイスがプログラムによってどのように使用されるかを示しています。 特に明記されていない限り、斜体の項目はすべてパラメーター名です。
- XPS ドキュメントを XPS OM に読み取る
- XPS OM を XPS ドキュメント ファイルに書き込む
- XPS OM のドキュメント シーケンスにアクセスする
- ドキュメントの CoreProperties にアクセスする
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();