Win32 API 日本語リファレンス
ホームStorage.Xps › IXpsOMDocument

IXpsOMDocument

COM
IID2c2c94cb-ac5f-4254-8ee9-23948309d9f0継承元IXpsOMPart自前メソッド開始 vtbl5

公式ドキュメント

ドキュメントを構成する、固定ページとドキュメントレベルのリソースの順序付きシーケンスです。

解説(Remarks)

次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。


IXpsOMDocument    *newInterface;
IOpcPartUri       *partUri;

// このスレッドで CoInitializeEx が事前に呼び出されている必要があるという
//  暗黙の前提がある点に注意してください。

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreatePartUri(partUriString, &partUri);

    if (SUCCEEDED(hr))
    {
        hr = xpsFactory->CreateDocument (partUri, &newInterface);

        if (SUCCEEDED(hr))
        {
            // newInterface を使用します

            newInterface->Release();
        }
        partUri->Release();
    }
    xpsFactory->Release();
}
else
{
    // hr に返された HRESULT エラーを評価します
}

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 5 HRESULT GetOwner(IXpsOMDocumentSequence** documentSequence)

ドキュメントを含む IXpsOMDocumentSequence インターフェイスへのポインターを取得します。

documentSequenceIXpsOMDocumentSequence**outドキュメントを含む IXpsOMDocumentSequence インターフェイスへのポインターです。ドキュメントがドキュメントシーケンスに属していない場合は、NULL ポインターが返されます。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
documentSequenceNULL です。
vtbl 6 HRESULT GetPageReferences(IXpsOMPageReferenceCollection** pageReferences)

ドキュメントの IXpsOMPageReferenceCollection インターフェイスを取得します。このインターフェイスにより、ドキュメントのページへの仮想化されたアクセスが可能になります。

pageReferencesIXpsOMPageReferenceCollection**outドキュメントの各ページのページ参照のコレクションを含む IXpsOMPageReferenceCollection インターフェイスへのポインターです。ページ参照が存在しない場合、pageReferences で返される IXpsOMPageReferenceCollection は空になり、要素を持ちません。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
pageReferencesNULL です。

解説(Remarks)

ドキュメントのページを取得するには、まず GetPageReferences を呼び出して IXpsOMPageReference インターフェイスのリストを取得します。次に、各 IXpsOMPageReference インターフェイスに対して GetPage を呼び出してページを読み込みます。

ドキュメントにページが 1 つも存在しない場合、pageReferences で返されるページ参照コレクションは空になります。コレクション内のページ参照の数を取得するには、コレクションの GetCount メソッドを呼び出します。

このメソッドをプログラムで使用する例については、Navigate the XPS OM を参照してください。

vtbl 7 HRESULT GetPrintTicketResource(IXpsOMPrintTicketResource** printTicketResource)

ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスを取得します。

printTicketResourceIXpsOMPrintTicketResource**outドキュメントに関連付けられているドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスへのポインターです。印刷チケットが割り当てられていない場合は、NULL ポインターが返されます。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
printTicketResourceNULL です。

解説(Remarks)

リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。

vtbl 8 HRESULT SetPrintTicketResource(IXpsOMPrintTicketResource* printTicketResource)

ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスを設定します。

printTicketResourceIXpsOMPrintTicketResource*inドキュメントに割り当てる、ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスへのポインターです。 NULL ポインターを指定すると、以前に割り当てられていた印刷チケットリソースが解放されます。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
XPS_E_NO_CUSTOM_OBJECTS
printTicketResource が認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。

解説(Remarks)

このメソッドが呼び出された時点でドキュメントに IXpsOMPrintTicketResource インターフェイスが含まれている場合、そのインターフェイスは解放されてから、printTicketResource で渡された新しい IXpsOMPrintTicketResource インターフェイスが設定されます。

vtbl 9 HRESULT GetDocumentStructureResource(IXpsOMDocumentStructureResource** documentStructureResource)

ドキュメントの構造に関する情報を含むリソースの IXpsOMDocumentStructureResource インターフェイスへのポインターを取得します。

documentStructureResourceIXpsOMDocumentStructureResource**outリソースの IXpsOMDocumentStructureResource インターフェイスへのポインターです。IXpsOMDocumentStructureResource インターフェイスが存在しない場合、または指定されていない場合は、NULL ポインターが返されます。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
documentStructureResourceNULL です。

解説(Remarks)

リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。

vtbl 10 HRESULT SetDocumentStructureResource(IXpsOMDocumentStructureResource* documentStructureResource)

ドキュメントの IXpsOMDocumentStructureResource インターフェイスを設定します。

documentStructureResourceIXpsOMDocumentStructureResource*inドキュメントに割り当てる IXpsOMDocumentStructureResource インターフェイスへのポインターです。 NULL ポインターを指定すると、以前に割り当てられていたリソースが解放されます。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
XPS_E_NO_CUSTOM_OBJECTS
documentStructureResource が認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。

解説(Remarks)

このメソッドが呼び出された時点でドキュメントに IXpsOMDocumentStructureResource インターフェイスが含まれている場合、そのインターフェイスは解放されてから、documentStructureResource で渡された新しい IXpsOMDocumentStructureResource インターフェイスが設定されます。

vtbl 11 HRESULT GetSignatureBlockResources(IXpsOMSignatureBlockResourceCollection** signatureBlockResources)

ドキュメントのデジタル署名ブロックリソースのコレクションを参照する IXpsOMSignatureBlockResourceCollection インターフェイスへのポインターを取得します。

signatureBlockResourcesIXpsOMSignatureBlockResourceCollection**outドキュメントのデジタル署名ブロックリソースのコレクションを参照する IXpsOMSignatureBlockResourceCollection インターフェイスへのポインターです。ドキュメントに署名ブロックリソースが含まれていない場合、IXpsOMSignatureBlockResourceCollection インターフェイスは空になります。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
signatureBlockResourcesNULL です。

解説(Remarks)

リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。

vtbl 12 HRESULT Clone(IXpsOMDocument** document)

インターフェイスのディープコピーを作成します。(IXpsOMDocument.Clone)

documentIXpsOMDocument**outインターフェイスのコピーへのポインターです。

戻り値

このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。

戻り値 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
この操作を実行するのに十分なメモリがありません。
E_POINTER
documentNULL です。

解説(Remarks)

このメソッドは、コピー内のリソースポインターを更新しません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IXpsOMDocument "{2C2C94CB-AC5F-4254-8EE9-23948309D9F0}"
#usecom global IXpsOMDocument IID_IXpsOMDocument "{}"
#comfunc global IXpsOMDocument_GetOwner                      5 sptr
#comfunc global IXpsOMDocument_GetPageReferences             6 sptr
#comfunc global IXpsOMDocument_GetPrintTicketResource        7 sptr
#comfunc global IXpsOMDocument_SetPrintTicketResource        8 sptr
#comfunc global IXpsOMDocument_GetDocumentStructureResource  9 sptr
#comfunc global IXpsOMDocument_SetDocumentStructureResource  10 sptr
#comfunc global IXpsOMDocument_GetSignatureBlockResources    11 sptr
#comfunc global IXpsOMDocument_Clone                         12 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。