IXpsOMPackage
COM公式ドキュメント
XPS オブジェクト モデル ツリーへの最上位のエントリ ポイントを提供します。
解説(Remarks)
次のコード例は、このインターフェイスのインスタンスを作成する方法を示しています。
IXpsOMPackage *newInterface;
// Note the implicit requirement that CoInitializeEx
// has previously been called from this thread.
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory)
);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreatePackage (&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
プログラムでこのインターフェイスを使用する方法については、空の XPS OM の作成を参照してください。
メソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
XPS パッケージのドキュメント シーケンスを含む IXpsOMDocumentSequence インターフェイスへのポインターを取得します。
| documentSequence | IXpsOMDocumentSequence** | out | XPS パッケージのドキュメント シーケンスを含む IXpsOMDocumentSequence インターフェイスへのポインターです。IXpsOMDocumentSequence インターフェイスが設定されていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| documentSequence が NULL です。 |
XPS パッケージの IXpsOMDocumentSequence インターフェイスを設定します。
| documentSequence | IXpsOMDocumentSequence* | in | パッケージに割り当てる IXpsOMDocumentSequence インターフェイス ポインターです。このパラメーターを NULL にすることはできません。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| documentSequence が NULL です。 | |
| documentSequence が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
XPS パッケージの IXpsOMCoreProperties インターフェイスへのポインターを取得します。
| coreProperties | IXpsOMCoreProperties** | out | XPS パッケージの IXpsOMCoreProperties インターフェイスへのポインターです。IXpsOMCoreProperties インターフェイスが設定されていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| coreProperties が NULL です。 |
XPS パッケージの IXpsOMCoreProperties インターフェイスを設定します。
| coreProperties | IXpsOMCoreProperties* | in | パッケージに割り当てる IXpsOMCoreProperties インターフェイス ポインターです。 NULL ポインターを指定すると、以前に割り当てられたコア プロパティ インターフェイスが解放されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| coreProperties が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
XPS パッケージ内の破棄制御 (discard control) パートの名前を取得します。
| discardControlPartUri | IOpcPartUri** | out | XPS パッケージ内の破棄制御パートの名前を含む IOpcPartUri インターフェイスへのポインターです。破棄制御パートが設定されていない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| discardControlPartUri が NULL です。 |
XPS パッケージ内の破棄制御 (discard control) パートの名前を設定します。
| discardControlPartUri | IOpcPartUri* | in | XPS パッケージに割り当てる破棄制御パートの名前を含む IOpcPartUri インターフェイスです。NULL ポインターを指定すると、以前に割り当てられた破棄制御パートが解放されます。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
XPS パッケージに関連付けられたサムネイル リソースの IXpsOMImageResource インターフェイスへのポインターを取得します。
| imageResource | IXpsOMImageResource** | out | XPS パッケージに関連付けられたサムネイル リソースの IXpsOMImageResource インターフェイスへのポインターです。パッケージにサムネイル リソースがない場合は、NULL ポインターが返されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| imageResource が NULL です。 |
解説(Remarks)
リソースを XPS OM に読み込んで解析した後、このメソッドが別のリソースに関するエラーを返す場合があります。これは、リソースの読み込み時にすべてのリレーションシップが解析されるためです。
XPS ドキュメントのサムネイル画像を設定します。
| imageResource | IXpsOMImageResource* | in | パッケージに割り当てるサムネイル画像を含む IXpsOMImageResource インターフェイスです。NULL ポインターを指定すると、以前に割り当てられたサムネイル画像リソースが解放されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| imageResource 内の画像が、サポートされている画像の種類ではありません。 | |
| imageResource が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
サムネイル画像は、ドキュメントの内容を視覚的に表した小さな画像です。
画像リソースの画像の種類は、XPS_IMAGE_TYPE_JPEG または XPS_IMAGE_TYPE_PNG のいずれかである必要があります。
XPS パッケージを指定されたファイルに書き込みます。
| fileName | LPWSTR | in | 作成するファイルの名前です。このパラメーターを NULL にすることはできません。 | ||||||
| securityAttributes | SECURITY_ATTRIBUTES* | in | SECURITY_ATTRIBUTES 構造体です。この構造体には、異なりますが互いに関連する 2 つのメンバーが含まれます。
securityAttributes パラメーターの詳細については、CreateFile を参照してください。 | ||||||
| flagsAndAttributes | DWORD | in | 作成するファイルの設定と属性を指定します。ほとんどのファイルでは、FILE_ATTRIBUTE_NORMAL の値を使用できます。 flagsAndAttributes パラメーターの詳細については、CreateFile を参照してください。 | ||||||
| optimizeMarkupSize | BOOL | in | ファイルへの書き込み時に、ドキュメントのマークアップをサイズの面で最適化するかどうかを示すブール値です。
|
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| fileName が NULL です。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージング エラーを参照してください。
解説(Remarks)
optimizeMarkupSize の値は、個々のドキュメント パート内のマークアップを最適化するかどうかを決定します。この値は、パートのインターリーブ方法には影響しません。
XPS パッケージを指定されたストリームに書き込みます。
| stream | ISequentialStream* | in | パッケージのシリアル化された内容を受け取るストリームです。このパラメーターを NULL にすることはできません。 | ||||||
| optimizeMarkupSize | BOOL | in | ストリームへの書き込み時に、ドキュメントのマークアップをサイズの面で最適化するかどうかを示すブール値です。
|
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| stream が NULL です。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージング エラーを参照してください。
解説(Remarks)
optimizeMarkupSize の値は、個々のドキュメント パート内のマークアップを最適化するかどうかを決定します。この値は、パートのインターリーブ方法には影響しません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMPackage "{18C3DF65-81E1-4674-91DC-FC452F5A416F}" #usecom global IXpsOMPackage IID_IXpsOMPackage "{}" #comfunc global IXpsOMPackage_GetDocumentSequence 3 sptr #comfunc global IXpsOMPackage_SetDocumentSequence 4 sptr #comfunc global IXpsOMPackage_GetCoreProperties 5 sptr #comfunc global IXpsOMPackage_SetCoreProperties 6 sptr #comfunc global IXpsOMPackage_GetDiscardControlPartName 7 sptr #comfunc global IXpsOMPackage_SetDiscardControlPartName 8 sptr #comfunc global IXpsOMPackage_GetThumbnailResource 9 sptr #comfunc global IXpsOMPackage_SetThumbnailResource 10 sptr #comfunc global IXpsOMPackage_WriteToFile 11 wstr,var,int,int #comfunc global IXpsOMPackage_WriteToStream 12 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMPackage "{18C3DF65-81E1-4674-91DC-FC452F5A416F}" #usecom global IXpsOMPackage IID_IXpsOMPackage "{}" #comfunc global IXpsOMPackage_GetDocumentSequence 3 sptr #comfunc global IXpsOMPackage_SetDocumentSequence 4 sptr #comfunc global IXpsOMPackage_GetCoreProperties 5 sptr #comfunc global IXpsOMPackage_SetCoreProperties 6 sptr #comfunc global IXpsOMPackage_GetDiscardControlPartName 7 sptr #comfunc global IXpsOMPackage_SetDiscardControlPartName 8 sptr #comfunc global IXpsOMPackage_GetThumbnailResource 9 sptr #comfunc global IXpsOMPackage_SetThumbnailResource 10 sptr #comfunc global IXpsOMPackage_WriteToFile 11 wstr,sptr,int,int #comfunc global IXpsOMPackage_WriteToStream 12 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。