IXpsOMDocument
COM公式ドキュメント
ドキュメントを構成する、固定ページとドキュメントレベルのリソースの順序付きシーケンスです。
解説(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。
ドキュメントを含む IXpsOMDocumentSequence インターフェイスへのポインターを取得します。
| documentSequence | IXpsOMDocumentSequence** | out | ドキュメントを含む IXpsOMDocumentSequence インターフェイスへのポインターです。ドキュメントがドキュメントシーケンスに属していない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| documentSequence が NULL です。 |
ドキュメントの IXpsOMPageReferenceCollection インターフェイスを取得します。このインターフェイスにより、ドキュメントのページへの仮想化されたアクセスが可能になります。
| pageReferences | IXpsOMPageReferenceCollection** | out | ドキュメントの各ページのページ参照のコレクションを含む IXpsOMPageReferenceCollection インターフェイスへのポインターです。ページ参照が存在しない場合、pageReferences で返される IXpsOMPageReferenceCollection は空になり、要素を持ちません。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pageReferences が NULL です。 |
解説(Remarks)
ドキュメントのページを取得するには、まず GetPageReferences を呼び出して IXpsOMPageReference インターフェイスのリストを取得します。次に、各 IXpsOMPageReference インターフェイスに対して GetPage を呼び出してページを読み込みます。
ドキュメントにページが 1 つも存在しない場合、pageReferences で返されるページ参照コレクションは空になります。コレクション内のページ参照の数を取得するには、コレクションの GetCount メソッドを呼び出します。
このメソッドをプログラムで使用する例については、Navigate the XPS OM を参照してください。
ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスを取得します。
| printTicketResource | IXpsOMPrintTicketResource** | out | ドキュメントに関連付けられているドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスへのポインターです。印刷チケットが割り当てられていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| printTicketResource が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスを設定します。
| printTicketResource | IXpsOMPrintTicketResource* | in | ドキュメントに割り当てる、ドキュメントレベルの印刷チケットの IXpsOMPrintTicketResource インターフェイスへのポインターです。 NULL ポインターを指定すると、以前に割り当てられていた印刷チケットリソースが解放されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| printTicketResource が認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
このメソッドが呼び出された時点でドキュメントに IXpsOMPrintTicketResource インターフェイスが含まれている場合、そのインターフェイスは解放されてから、printTicketResource で渡された新しい IXpsOMPrintTicketResource インターフェイスが設定されます。
ドキュメントの構造に関する情報を含むリソースの IXpsOMDocumentStructureResource インターフェイスへのポインターを取得します。
| documentStructureResource | IXpsOMDocumentStructureResource** | out | リソースの IXpsOMDocumentStructureResource インターフェイスへのポインターです。IXpsOMDocumentStructureResource インターフェイスが存在しない場合、または指定されていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| documentStructureResource が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
ドキュメントの IXpsOMDocumentStructureResource インターフェイスを設定します。
| documentStructureResource | IXpsOMDocumentStructureResource* | in | ドキュメントに割り当てる IXpsOMDocumentStructureResource インターフェイスへのポインターです。 NULL ポインターを指定すると、以前に割り当てられていたリソースが解放されます。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| documentStructureResource が認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
このメソッドが呼び出された時点でドキュメントに IXpsOMDocumentStructureResource インターフェイスが含まれている場合、そのインターフェイスは解放されてから、documentStructureResource で渡された新しい IXpsOMDocumentStructureResource インターフェイスが設定されます。
ドキュメントのデジタル署名ブロックリソースのコレクションを参照する IXpsOMSignatureBlockResourceCollection インターフェイスへのポインターを取得します。
| signatureBlockResources | IXpsOMSignatureBlockResourceCollection** | out | ドキュメントのデジタル署名ブロックリソースのコレクションを参照する IXpsOMSignatureBlockResourceCollection インターフェイスへのポインターです。ドキュメントに署名ブロックリソースが含まれていない場合、IXpsOMSignatureBlockResourceCollection インターフェイスは空になります。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| signatureBlockResources が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
インターフェイスのディープコピーを作成します。(IXpsOMDocument.Clone)
| document | IXpsOMDocument** | out | インターフェイスのコピーへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表の値が含まれますが、これらに限定されません。この表に記載されていない XPS ドキュメント API の戻り値については、XPS Document Errors を参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作を実行するのに十分なメモリがありません。 | |
| document が NULL です。 |
解説(Remarks)
このメソッドは、コピー内のリソースポインターを更新しません。
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 指定が可能。