IXpsOMObjectFactory
COM公式ドキュメント
XPS ドキュメント オブジェクト モデルのオブジェクトを作成します。
メソッド 37
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
XPS オブジェクト モデルのドキュメント ツリーのルート ノードとなる IXpsOMPackage インターフェイスを作成します。
| package | IXpsOMPackage** | out | 新しい IXpsOMPackage インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| package が NULL です。 |
解説(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
}
プログラムで IXpsOMPackage インターフェイスを使用する方法については、空の XPS OM の作成を参照してください。
XPS パッケージ ファイルを開き、インスタンス化された XPS ドキュメント オブジェクト ツリーを返します。
| filename | LPWSTR | in | XPS パッケージ ファイルの名前です。 | ||||||
| reuseObjects | BOOL | in | すべてのプロパティと子が同一のオブジェクトを共有することで、ドキュメント オブジェクト ツリーの最適化を試みるかどうかを示すブール値です。
| ||||||
| package | IXpsOMPackage** | out | 生成された XPS ドキュメント オブジェクト ツリーを含む、新しい IXpsOMPackage インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| filename または package が NULL です。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
このメソッドは、ストリームから XPS OM のオブジェクトに読み込むストリームベースのリソースの内容を検証しません。これらのリソースは、使用する前にアプリケーション側で検証する必要があります。
このメソッドはドキュメントのページを逆シリアル化しません。XPS パッケージをページ参照パートまでしか逆シリアル化しません。実際のページは、必要に応じて IXpsOMPageReference::GetPage メソッドを呼び出して逆シリアル化できます。GetPage の呼び出し時点ではページが逆シリアル化されていないため、このメソッドは S_OK を返すこともあれば、XPS パッケージ内の問題のあるページを読み込もうとした場合にエラーを返すこともあります。
XPS パッケージを XPS OM に読み込んだ直後に XPS OM を書き出すと、元のコンテンツの一部が失われたり変更されたりする場合があります。
そのような場合に発生し得る変更の一部を次の表に示します。
| ドキュメントの機能 | 動作 |
|---|---|
| デジタル署名 | ドキュメントから削除されます |
| DiscardControl パート | ドキュメントから削除されます |
| 外部のドキュメント パート | ドキュメントから削除されます |
| FixedPage マークアップ | 元の内容から変更されます |
| リソース ディクショナリのマークアップ | 最適化フラグが設定されている場合、元の内容から変更されます |
プログラムで IXpsOMPackage インターフェイスを使用する方法については、空の XPS OM の作成を参照してください。
XPS パッケージを含むストリームを開き、インスタンス化された XPS ドキュメント オブジェクト ツリーを返します。
| stream | IStream* | in | XPS パッケージを含むストリームです。 | ||||||
| reuseObjects | BOOL | in | すべてのプロパティと子が同一のオブジェクトを共有することで、ドキュメント オブジェクト ツリーの最適化を試みるかどうかを示すブール値です。
| ||||||
| package | IXpsOMPackage** | out | 生成された XPS ドキュメント オブジェクト ツリーを含む、新しい IXpsOMPackage インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| stream または package が NULL です。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
このメソッドは、ストリームから XPS OM のオブジェクトに読み込むストリームベースのリソースの内容を検証しません。これらのリソースは、使用する前にアプリケーション側で検証する必要があります。
このメソッドはドキュメントのページを逆シリアル化しません。XPS パッケージをページ参照パートまでしか逆シリアル化しません。実際のページは、必要に応じて IXpsOMPageReference::GetPage メソッドを呼び出して逆シリアル化できます。GetPage の呼び出し時点ではページが逆シリアル化されていないため、このメソッドは S_OK を返すこともあれば、XPS パッケージ内の問題のあるページを読み込もうとした場合にエラーを返すこともあります。
XPS パッケージを XPS OM に読み込んだ直後に XPS OM を書き出すと、元のコンテンツの一部が失われたり変更されたりする場合があります。
そのような場合に発生し得る変更の一部を次の表に示します。
| ドキュメントの機能 | 動作 |
|---|---|
| デジタル署名 | ドキュメントから削除されます |
| DiscardControl パート | ドキュメントから削除されます |
| 外部のドキュメント パート | ドキュメントから削除されます |
| FixedPage マークアップ | 元の内容から変更されます |
| リソース ディクショナリのマークアップ | 最適化フラグが設定されている場合、元の内容から変更されます |
プログラムで IXpsOMPackage インターフェイスを使用する方法については、空の XPS OM の作成を参照してください。
ページの StoryFragments パートのリソース ストリームの内容にアクセスできる IXpsOMStoryFragmentsResource インターフェイスを作成します。
| acquiredStream | IStream* | in | この StoryFragments リソースに関連付ける読み取り専用の IStream インターフェイスです。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
|
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| storyFragmentsResource | IXpsOMStoryFragmentsResource** | out | 新しい IXpsOMStoryFragmentsResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| acquiredStream、partUri、または storyFragmentsResource が NULL です。 |
解説(Remarks)
ページの StoryFragments パートには、単一の固定ページに関連付けられた 1 つ以上のストーリーの一部分について、その構造を記述する XML マークアップが含まれます。StoryFragments パートの XML マークアップが記述するドキュメントの内容には、そのページに存在するストーリーの表や段落などがあります。
DocumentStructure パートおよび StoryFragments パートの XML マークアップについては、XML Paper Specification で説明されています。
ドキュメント構造リソース ストリームにアクセスできる IXpsOMDocumentStructureResource インターフェイスを作成します。
| acquiredStream | IStream* | in | このリソースに関連付ける読み取り専用の IStream インターフェイスです。このパラメーターを NULL にすることはできません。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
|
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。このパラメーターを NULL にすることはできません。 |
| documentStructureResource | IXpsOMDocumentStructureResource** | out | 新しい IXpsOMDocumentStructureResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| acquiredStream、partUri、または documentStructureResource が NULL です。 |
解説(Remarks)
XPS ドキュメントの DocumentStructure パートにはドキュメントのアウトラインが含まれ、このアウトラインは StoryFragments パートとともに、ドキュメントの固定ページに出現するすべての要素の読み取り順序を定義します。このインターフェイスを使用すると、プログラムから DocumentStructure パートの XML 内容を読み取り、また置き換えることができます。
DocumentStructure パートには、ドキュメントのフレームワークと、ドキュメント全体の読み取り順序を記述するアウトラインが含まれます。読み取り順序は、ストーリーと呼ばれる意味的なブロックに整理されます。ストーリーは、雑誌における記事と同じように、ドキュメントの論理的な単位です。ストーリーは 1 つ以上の StoryFragments パートで構成されます。
StoryFragments パートには、ストーリーの内容を構成する段落や表など、ストーリーの意味的なブロックを定義するコンテンツ構造マークアップが含まれます。
DocumentStructure パートおよび StoryFragments パートの内容については、XML Paper Specification で説明されています。
1 つ以上の署名要求を格納できる IXpsOMSignatureBlockResource を作成します。
| acquiredStream | IStream* | in | このリソースに関連付ける読み取り専用のストリームです。 |
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスへのポインターです。 |
| signatureBlockResource | IXpsOMSignatureBlockResource** | out | このメソッドで作成された新しい IXpsOMSignatureBlockResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| acquiredStream、partUri、または signatureBlockResource が NULL です。 |
プロパティ リソースの共有を可能にする IXpsOMRemoteDictionaryResource インターフェイスを作成します。
| dictionary | IXpsOMDictionary* | in | このリソースに関連付けるディクショナリの IXpsOMDictionary インターフェイス ポインターです。 |
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| remoteDictionaryResource | IXpsOMRemoteDictionaryResource** | out | 新しい IXpsOMRemoteDictionaryResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dictionary、partUri、または remoteDictionaryResource が NULL です。 | |
| dictionary が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
リモート リソース ディクショナリのマークアップを、ルートに接続されていない IXpsOMRemoteDictionaryResource インターフェイスに読み込みます。
| dictionaryMarkupStream | IStream* | in | リモート リソース ディクショナリのマークアップを含む IStream インターフェイスです。 |
| dictionaryPartUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| resources | IXpsOMPartResources* | in | ストリームを持つディクショナリ リソース オブジェクトのパート リソースを表す IXpsOMPartResources インターフェイスです。 |
| dictionaryResource | IXpsOMRemoteDictionaryResource** | out | 新しい IXpsOMRemoteDictionaryResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dictionaryMarkupStream、dictionaryPartUri、resources、または dictionaryResource が NULL です。 | |
| resources が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
パートベースのリソースを格納できる IXpsOMPartResources インターフェイスを作成します。
| partResources | IXpsOMPartResources** | out | 新しい IXpsOMPartResources インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partResources が NULL です。 |
解説(Remarks)
パート リソースはドキュメントのページ間で共有され、フォント、イメージ、カラー プロファイル、リモート ディクショナリなどを含めることができます。
ドキュメントのパート リソースを取得するには、IXpsOMPageReference::CollectPartResources を呼び出します。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMPartResources *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->CreatePartResources (&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
XPS ドキュメントの IXpsOMDocument インターフェイスを格納できる IXpsOMDocumentSequence インターフェイスを作成します。
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスへのポインターです。このパラメーターを NULL にすることはできません。 |
| documentSequence | IXpsOMDocumentSequence** | out | 新しい IXpsOMDocumentSequence インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partUri または documentSequence が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMDocumentSequence *newInterface;
IOpcPartUri *partUri;
// 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->CreatePartUri(partUriString, &partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateDocumentSequence (partUri, &newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
順序付けられたシーケンスとして一連の IXpsOMPageReference インターフェイスを格納できる IXpsOMDocument インターフェイスを作成します。
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。このパラメーターを NULL にすることはできません。 |
| document | IXpsOMDocument** | out | 新しい IXpsOMDocument インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partUri または document が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMDocument *newInterface;
IOpcPartUri *partUri;
// 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->CreatePartUri(partUriString, &partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateDocument (partUri, &newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
ページの仮想化を可能にする IXpsOMPageReference インターフェイスを作成します。
| advisoryPageDimensions | XPS_SIZE* | in | 推奨ページ サイズ (ページの幅とページの高さ) を設定する XPS_SIZE 構造体です。 サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、8.5" × 11.0" のページのサイズは 816 × 1,056 XPS 単位になります。 |
| pageReference | IXpsOMPageReference** | out | 新しい IXpsOMPageReference インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| advisoryPageDimensions または pageReference が NULL です。 | |
| advisoryPageDimensions に無効なページ サイズ、または無効なページ サイズの値が含まれています。 |
解説(Remarks)
ページ参照を使用すると、ページの完全なオブジェクト モデルの読み込みを、明示的に要求されるまで遅延させることができます。ページが変更されていない場合は、要求に応じてアンロードできます。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMPageReference *newInterface;
// The following value is defined outside of
// this example.
XPS_SIZE advisoryPageDimensions;
// 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->CreatePageReference (
&advisoryPageDimensions,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
1 ページ分の内容を表すオブジェクト ツリーのルート ノードを提供する IXpsOMPage インターフェイスを作成します。
| pageDimensions | XPS_SIZE* | in | 作成するページのサイズを指定する XPS_SIZE 構造体です。 サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、8.5" × 11.0" のページのサイズは 816 × 1,056 XPS 単位になります。 |
| language | LPWSTR | in | 作成するページの既定の言語を示す文字列です。 重要 言語文字列は RFC 3066 の構文に従う必要があります。
|
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| page | IXpsOMPage** | out | 新しい IXpsOMPage インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pageDimensions、partUri、または page が NULL です。 | |
| language に有効な言語文字列が含まれていません。 | |
| pageDimensions に無効なページ サイズ、または無効なページ サイズの値が含まれています。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMPage *newInterface;
// The following values are defined outside of
// this example.
// LPWSTR language;
// XPS_SIZE pageDimensions;
// 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->CreatePartUri(partUriString, &partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreatePage (
&pageDimensions,
language,
partUri,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
指定されたストリームからページ マークアップを読み取り、IXpsOMPage インターフェイスを作成して内容を設定します。
| pageMarkupStream | IStream* | in | ページ マークアップを含むストリームです。 | ||||||
| partUri | IOpcPartUri* | in | ページの URI を含む IOpcPartUri インターフェイスです。 | ||||||
| resources | IXpsOMPartResources* | in | ページで使用されるリソースを含む IXpsOMPartResources インターフェイスです。 | ||||||
| reuseObjects | BOOL | in | すべてのプロパティと子が同一のオブジェクトを共有することで、ページ コンテンツ ツリーの最適化を試みるかどうかを指定するブール値です。
| ||||||
| page | IXpsOMPage** | out | このメソッドで作成された新しい IXpsOMPage インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pageMarkupStream、partUri、resources、または page が NULL です。 | |
| resources が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
このメソッドは、ストリームからドキュメント オブジェクトに読み込むストリームベースのリソースの内容を検証しません。これらのリソースは、使用する前にアプリケーション側で検証する必要があります。
ページ要素をグループ化するために使用する IXpsOMCanvas インターフェイスを作成します。
| canvas | IXpsOMCanvas** | out | 新しい IXpsOMCanvas インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| canvas が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMCanvas *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->CreateCanvas (&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
ページに表示されるテキストを指定する IXpsOMGlyphs インターフェイスを作成します。
| fontResource | IXpsOMFontResource* | in | 使用するフォント リソースの IXpsOMFontResource インターフェイスへのポインターです。 |
| glyphs | IXpsOMGlyphs** | out | 新しい IXpsOMGlyphs インターフェイス ポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| fontResource または glyphs が NULL です。 | |
| fontResource が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMGlyphs *newInterface;
// this interface is defined outside of this example
// IXpsOMFontResource *font;
// 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->CreateGlyphs (font, &newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
ページ上のグラフィック パス要素を指定する IXpsOMPath インターフェイスを作成します。
| path | IXpsOMPath** | out | 新しい IXpsOMPath インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| path が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMPath *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->CreatePath (&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
パスまたはクリッピング領域の形状を指定する IXpsOMGeometry インターフェイスを作成します。
| geometry | IXpsOMGeometry** | out | 新しい IXpsOMGeometry インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| geometry が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMGeometry *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->CreateGeometry (&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
IXpsOMGeometry インターフェイスで定義されるオブジェクトの一部分を指定する IXpsOMGeometryFigure インターフェイスを作成します。
| startPoint | XPS_POINT* | in | ジオメトリ フィギュアの開始点の座標です。 |
| figure | IXpsOMGeometryFigure** | out | 新しい IXpsOMGeometryFigure インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| startPoint または figure が NULL です。 | |
| startPoint で渡された XPS_POINT 構造体のいずれかのフィールドに、無効な値が含まれています。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMGeometryFigure *newInterface;
// startPoint contains the starting point
// of the geometry figure being created
XPS_POINT startPoint = {0,0};
// 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->CreateGeometryFigure (&startPoint, &newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
アフィン行列変換を指定する IXpsOMMatrixTransform インターフェイスを作成します。
| matrix | XPS_MATRIX* | in | 変換に割り当てる初期行列です。 |
| transform | IXpsOMMatrixTransform** | out | 新しい IXpsOMMatrixTransform インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| matrix または transform が NULL です。 |
解説(Remarks)
この行列で指定される変換は、他の XPS オブジェクトの変換プロパティに適用できます。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMMatrixTransform *newInterface;
// The following value is defined outside of
// this example.
XPS_MATRIX newMatrix;
// 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->CreateMatrixTransform (
&newMatrix,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
単一の単色によるブラシを指定する IXpsOMSolidColorBrush インターフェイスを作成します。
| color | XPS_COLOR* | in | ブラシの色を指定する XPS_COLOR 構造体です。 |
| colorProfile | IXpsOMColorProfileResource* | in | IXpsOMColorProfileResource インターフェイスです。カラーの種類が XPS_COLOR_TYPE_CONTEXT でない限り、この値は NULL である必要があります。 |
| solidColorBrush | IXpsOMSolidColorBrush** | out | 新しい IXpsOMSolidColorBrush インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| color または solidColorBrush が NULL です。 | |
| カラー プロファイルが必要であるにもかかわらず、colorProfile が NULL です。カラーの種類が XPS_COLOR_TYPE_CONTEXT の場合、カラー プロファイルが必要です。 | |
| colorProfile が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 | |
| カラー プロファイルが不要であるにもかかわらず、colorProfile にカラー プロファイルが含まれています。カラー プロファイルが必要となるのは、カラーの種類が XPS_COLOR_TYPE_CONTEXT の場合のみです。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMSolidColorBrush *newInterface;
// The following values are defined outside of
// this example.
// XPS_COLOR color;
// IXpsOMColorProfileResource *colorProfile;
// 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->CreateSolidColorBrush (
&color,
colorProfile,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
カラー プロファイル リソース ストリームにアクセスするために使用する IXpsOMColorProfileResource インターフェイスを作成します。
| acquiredStream | IStream* | in | このリソースに関連付ける読み取り専用の IStream インターフェイスです。このパラメーターを NULL にすることはできません。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
|
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| colorProfileResource | IXpsOMColorProfileResource** | out | 新しい IXpsOMColorProfileResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| acquiredStream、partUri、または colorProfileResource が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMColorProfileResource *newInterface;
IOpcPartUri *partUri;
// 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))
{
// The partUriString and acquiredStream variables
// are defined outside of this example.
hr = xpsFactory->CreatePartUri(
partUriString,
&partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateColorProfileResource (
acquiredStream,
partUri,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
IXpsOMImageBrush インターフェイスを作成します。
| image | IXpsOMImageResource* | in | ブラシのソース イメージとして使用するイメージを含む IXpsOMImageResource インターフェイスです。 |
| viewBox | XPS_RECT* | in | ブラシが使用するソース イメージの領域である viewbox を定義する XPS_RECT 構造体です。 |
| viewPort | XPS_RECT* | in | 出力領域内で最初のタイルが占める領域である viewport を定義する XPS_RECT 構造体です。 |
| imageBrush | IXpsOMImageBrush** | out | 新しい IXpsOMImageBrush インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| image、viewBox、viewPort、または imageBrush が NULL です。 | |
| viewBox または viewPort に無効な四角形または値が含まれています。 |
解説(Remarks)
ブラシのビューボックスは、タイル イメージとして使用するソース イメージまたはビジュアルの範囲を指定します。
ブラシのビューボックスの座標はソース コンテンツを基準としており、(0,0) はソース コンテンツの左上隅を表します。イメージの場合、ブラシのビューボックスで指定するサイズは 1/96" 単位で表されます。ソース イメージ内の対応するピクセル座標は、次のように計算されます。
次の図では、左側のイメージがソース イメージの例であり、右端がビューボックスを選択した結果得られるブラシです。
ソース イメージの解像度が 96 × 96 dpi で、イメージのサイズが 96 × 96 ピクセルの場合、viewbox パラメーターの各フィールドの値は次のようになります。
上記のパラメーター値は、ソース イメージ上の次の位置に対応します。
- SourceLeft = (96 × 48) / 96 = 左端から 48 ピクセル
- SourceTop = (96 × 24) / 96 = 上端から 24 ピクセル
- SourceWidth = (96 × 24) / 96 = 幅 24 ピクセル
- SourceHeight = (96 × 48) / 96 = 高さ 48 ピクセル
イメージ ブラシは、イメージまたはその一部を取り込み、それを変換してタイルを作成し、生成されたタイルをビューポート (出力領域におけるタイルの配置先ジオメトリ) に配置して、タイル モードに従って出力領域を塗りつぶすタイル ブラシです。
viewport は、出力領域内で最初のタイルが占める領域です。ビューポートのイメージは、タイル モードに従って出力領域全体に繰り返し描画されます。
次の図は、イメージ ブラシを使用して出力領域を塗りつぶす方法を示しています。左から右へ、元のイメージがビューポートを埋めるように変換され、出力領域のビューポート領域に配置され、さらにタイル状に並べられて出力領域を塗りつぶします。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMImageBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMImageResource *image;
// XPS_RECT viewBox;
// XPS_RECT viewPort;
// 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->CreateImageBrush (
image,
&viewBox,
&viewPort,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
ビジュアル オブジェクトを使用する IXpsOMTileBrush である IXpsOMVisualBrush インターフェイスを作成します。
| viewBox | XPS_RECT* | in | ブラシで使用するソース イメージの領域を指定する XPS_RECT 構造体です。このパラメーターを NULL にすることはできません。 |
| viewPort | XPS_RECT* | in | タイルの配置先ジオメトリ領域を指定する XPS_RECT 構造体です。このパラメーターを NULL にすることはできません。 |
| visualBrush | IXpsOMVisualBrush** | out | 新しい IXpsOMVisualBrush インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| viewBox、viewPort、または visualBrush が NULL です。 | |
| viewBox または viewPort に無効な四角形または値が含まれています。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMVisualBrush *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->CreateVisualBrush (
&viewBox,
&viewPort,
&newInterface);
if (SUCCEEDED(hr))
{
// assign visual using one of the following:
newInterface->SetVisualLocal (localVisual);
// or
newInterface->SetVisualLookup (visualLookupKey);
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
// use newInterface
newInterface->Release();
xpsFactory->Release();
イメージ リソース ストリームにアクセスするために使用する IXpsOMImageResource インターフェイスを作成します。
| acquiredStream | IStream* | in | このリソースに関連付ける読み取り専用のストリームです。このパラメーターを NULL にすることはできません。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
|
| contentType | XPS_IMAGE_TYPE | in | acquiredStream が参照するストリームのイメージの種類を示す XPS_IMAGE_TYPE 値です。 |
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。このパラメーターを NULL にすることはできません。 |
| imageResource | IXpsOMImageResource** | out | 新しい IXpsOMImageResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| contentType が有効な XPS_IMAGE_TYPE 値ではありませんでした。 | |
| acquiredStream、partUri、または imageResource が NULL です。 |
解説(Remarks)
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMImageResource *newInterface;
// The following values are defined outside of
// this example.
// IStream *acquiredStream;
// XPS_IMAGE_TYPE contentType;
// IOpcPartUri *partUri;
// 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))
{
// The partUriString and acquiredStream variables
// are defined outside of this example.
hr = xpsFactory->CreatePartUri(partUriString, &partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateImageResource (
acquiredStream,
contentType,
partUri,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
PrintTicket ストリームにアクセスできる IXpsOMPrintTicketResource インターフェイスを作成します。
| acquiredStream | IStream* | in | 読み取り専用の PrintTicket リソース ストリームです。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
|
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。 |
| printTicketResource | IXpsOMPrintTicketResource** | out | 新しい IXpsOMPrintTicketResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| acquiredStream、partUri、または printTicketResource が NULL です。 |
フォント リソースへの IStream インターフェイスを提供する IXpsOMFontResource インターフェイスを作成します。
| acquiredStream | IStream* | in | このフォント リソースに関連付ける読み取り専用の IStream インターフェイスです。このパラメーターを NULL にすることはできません。 重要 このストリームはシングルスレッド アパートメント (STA) オブジェクトとして扱ってください。再入しないでください。
注意 このストリームは難読化しないでください。
| ||||||
| fontEmbedding | XPS_FONT_EMBEDDING | in | ストリームの埋め込みオプションを指定する XPS_FONT_EMBEDDING 値です。 | ||||||
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。このパラメーターを NULL にすることはできません。 | ||||||
| isObfSourceStream | BOOL | in | acquiredStream が参照するストリームが難読化されているかどうかを示すブール値です。
| ||||||
| fontResource | IXpsOMFontResource** | out | 新しい IXpsOMFontResource インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
次のいずれかのエラーが発生しました。
|
|
| acquiredStream、partUri、または fontResource が NULL です。 |
解説(Remarks)
isObfSourceStream の値は、フォント リソースの作成時点における acquiredStream が参照するストリームの状態を表します。以後の GetStream または SetContent の呼び出しは、難読化されていない IStream に対して行われます。
isObfSourceStream が TRUE に設定され、fontEmbedding が XPS_FONT_EMBEDDING_NORMAL に設定されている場合、または partUri が参照する名前が難読化ストリームの構文に従っていない場合は、エラーが返されます。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMFontResource *newInterface;
IOpcPartUri *partUri;
// 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))
{
// The partUriString and acquiredStream variables
// are defined outside of this example.
hr = xpsFactory->CreatePartUri(partUriString, &partUri);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateFontResource (
acquiredStream,
XPS_FONT_EMBEDDING_NORMAL, // normal
partUri,
FALSE, // not obfuscated
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
partUri->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
グラデーション内の単一の色と位置の定義を表す IXpsOMGradientStop インターフェイスを作成します。
| color | XPS_COLOR* | in | 色の値です。 |
| colorProfile | IXpsOMColorProfileResource* | in | 使用するカラー プロファイルを含む IXpsOMColorProfileResource インターフェイスへのポインターです。カラーの種類が XPS_COLOR_TYPE_CONTEXT でない場合、このパラメーターは NULL である必要があります。 |
| offset | FLOAT | in | オフセット値です。 有効な範囲: 0.0–1.0 |
| gradientStop | IXpsOMGradientStop** | out | 新しい IXpsOMGradientStop インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| offset の値が無効です。 | |
| color または gradientStop が NULL です。 | |
| カラー プロファイルが必要であるにもかかわらず、colorProfile が NULL です。カラーの種類が XPS_COLOR_TYPE_CONTEXT の場合、カラー プロファイルが必要です。 | |
| colorProfile が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 | |
| カラー プロファイルが不要であるにもかかわらず、colorProfile にカラー プロファイルが含まれています。カラー プロファイルを指定できるのは、カラーの種類が XPS_COLOR_TYPE_CONTEXT の場合のみです。 |
解説(Remarks)
グラデーション ストップは、特定の位置における色を定義するために使用されます。色はグラデーション ストップ間で補間されます。offset で指定するオフセットは、グラデーションの開始点と終了点の間の相対位置です。線形グラデーションの開始点、または放射状グラデーションの原点におけるオフセットは 0.0 です。線形グラデーションの終了点、または放射状グラデーションの境界となる楕円のオフセットは 1.0 です。グラデーション ストップは、開始点と終了点を含め、これらの間の任意のオフセットに指定できます。次の図は、線形グラデーションのグラデーション パスとグラデーション ストップを示しています。
次の図は、放射状グラデーションのグラデーション ストップを示しています。この例では、放射状グラデーション領域は外側の楕円で囲まれた領域であり、グラデーション領域の外側の空間を塗りつぶすために XPS_SPREAD_METHOD_REFLECT スプレッド メソッドが使用されています。
IXpsOMGradientStop インターフェイスは、グラデーション内のただ 1 つのストップを指定します。
グラデーションの描画に使用される計算については、XML Paper Specification で説明されています。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMGradientStop *newInterface;
// The following values are defined outside of
// this example.
// XPS_COLOR color;
// IXpsOMColorProfileResource *colorProfile;
// FLOAT offset;
// 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->CreateGradientStop (
&color,
colorProfile,
offset,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
IXpsOMLinearGradientBrush インターフェイスを作成します。
| gradStop1 | IXpsOMGradientStop* | in | グラデーションのベクトルの始点におけるグラデーションのプロパティを指定する IXpsOMGradientStop インターフェイスです。このパラメーターを NULL にすることはできません。 |
| gradStop2 | IXpsOMGradientStop* | in | グラデーションのベクトルの終点におけるグラデーションのプロパティを指定する IXpsOMGradientStop インターフェイスです。このパラメーターを NULL にすることはできません。 |
| startPoint | XPS_POINT* | in | 2 次元空間における開始点の座標を含む XPS_POINT 構造体です。 |
| endPoint | XPS_POINT* | in | 2 次元空間における終了点の座標を含む XPS_POINT 構造体です。 |
| linearGradientBrush | IXpsOMLinearGradientBrush** | out | 新しい IXpsOMLinearGradientBrush インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| startPoint または endPoint で指定された点が無効でした。XPS_POINT 構造体のメンバーには、有効かつ有限の浮動小数点値を指定する必要があります。 | |
| gradStop1、gradStop2、startPoint、figure、または linearGradientBrush が NULL です。 | |
| gradStop1 または gradStop1 が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
線形グラデーションのグラデーション領域は、開始点と終了点を含むその間の領域であり、グラデーション パスに対して直角方向の両側に広がります。スプレッド領域は、グラデーション領域の外側にあるジオメトリの領域です。
グラデーション ストップは、グラデーション パス上の特定の位置における色を定義します。図では、gradStop1 パラメーターで指定されるグラデーション ストップ 0 がグラデーション パスの開始点に位置し、gradStop2 パラメーターで指定されるグラデーション ストップ 1 が終了点に位置します。
次の図に示すように、線形グラデーションの開始点と終了点は、それらの点を結ぶ直線であるグラデーション パスの開始点と終了点でもあります。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMLinearGradientBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMGradientStop *gradStop1, *gradStop2;
// XPS_POINT startPoint, endPoint;
// 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->CreateLinearGradientBrush (
gradStop1,
gradStop2,
&startPoint,
&endPoint,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
IXpsOMRadialGradientBrush インターフェイスを作成します。
| gradStop1 | IXpsOMGradientStop* | in | グラデーションの原点におけるグラデーションのプロパティを指定する IXpsOMGradientStop インターフェイスです。このパラメーターを NULL にすることはできません。 | ||||||
| gradStop2 | IXpsOMGradientStop* | in | グラデーションのベクトルの終点 (グラデーション領域を囲む楕円) におけるグラデーションのプロパティを指定する IXpsOMGradientStop インターフェイスです。このパラメーターを NULL にすることはできません。 | ||||||
| centerPoint | XPS_POINT* | in | 放射状グラデーションの楕円の中心点の座標です。 | ||||||
| gradientOrigin | XPS_POINT* | in | 放射状グラデーションの原点の座標です。 | ||||||
| radiiSizes | XPS_SIZE* | in | グラデーション領域の半径の長さをメンバーで指定する XPS_SIZE 構造体です。 サイズは XPS 単位で表されます。1 インチは 96 XPS 単位です。たとえば、1" の半径は 96 XPS 単位です。
| ||||||
| radialGradientBrush | IXpsOMRadialGradientBrush** | out | 新しい IXpsOMRadialGradientBrush インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| centerPoint、radiiSizes、または gradientOrigin で表される点が無効です。XPS_POINT 構造体のメンバーには、有効かつ有限の浮動小数点値を指定する必要があります。 | |
| gradStop1、gradStop2、centerPoint、gradientOrigin、radiiSizes、または radialGradientBrush が NULL です。 | |
| gradStop1 または gradStop1 が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
解説(Remarks)
次の図に示すように、放射状グラデーションのグラデーション領域は、中心点と、中心点から伸びる x 半径および y 半径によって表される楕円で囲まれた領域です。スプレッド領域は、その楕円の外側の領域です。グラデーション パス (図には示していません) は、グラデーションの原点と、グラデーション領域を囲む楕円との間に引かれる放射状の線です。
放射状グラデーション ブラシでは、gradStop1 パラメーターで設定するグラデーション ストップが、グラデーションの原点の位置とオフセット値 0.0 に対応します。gradStop2 パラメーターで設定するグラデーション ストップは、グラデーション領域の外周とオフセット値 1.0 に対応します。グラデーション ストップの詳細については、IXpsOMGradientStop を参照してください。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMRadialGradientBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMGradientStop *gradStop1, *gradStop2;
// XPS_POINT centerPoint, gradientOrigin;
// XPS_SIZE radiiSizes;
// 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->CreateRadialGradientBrush (
gradStop1,
gradStop2,
¢erPoint,
&gradientOrigin,
&radiiSizes,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
XPS ドキュメントを説明するメタデータを格納する IXpsOMCoreProperties インターフェイスを作成します。
| partUri | IOpcPartUri* | in | このリソースに割り当てるパート名を含む IOpcPartUri インターフェイスです。このパラメーターを NULL にすることはできません。 |
| coreProperties | IXpsOMCoreProperties** | out | 新しい IXpsOMCoreProperties インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partUri または coreProperties が NULL です。 |
プロパティ リソースの共有を可能にする IXpsOMDictionary インターフェイスを作成します。
| dictionary | IXpsOMDictionary** | out | 新しい IXpsOMDictionary インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| dictionary が NULL です。 |
IOpcPartUri インターフェイス ポインターを格納できる IXpsOMPartUriCollection インターフェイスを作成します。
| partUriCollection | IXpsOMPartUriCollection** | out | 新しい IXpsOMPartUriCollection インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partUriCollection が NULL です。 |
XPS OM の内容を XPS パッケージに書き込むためのファイルを開きます。
| fileName | LPWSTR | in | 作成するファイルの名前です。 | ||||||
| securityAttributes | SECURITY_ATTRIBUTES* | in | SECURITY_ATTRIBUTES 構造体です。この構造体には、独立していますが互いに関連する 2 つのメンバーが含まれます。
securityAttributes の詳細については、CreateFile を参照してください。 | ||||||
| flagsAndAttributes | DWORD | in | 作成するファイルの設定と属性を指定します。ほとんどのファイルでは FILE_ATTRIBUTE_NORMAL 値を使用できます。 このパラメーターの詳細については、CreateFile を参照してください。 | ||||||
| optimizeMarkupSize | BOOL | in | XPS OM の内容を XPS パッケージに書き込む際に、ドキュメント マークアップをサイズの面で最適化するかどうかを示すブール値です。
| ||||||
| interleaving | XPS_INTERLEAVING | in | XPS OM の内容をファイルに書き込む際にインターリーブするかどうかを指定します。 | ||||||
| documentSequencePartName | IOpcPartUri* | in | 新しいファイル内のドキュメント シーケンスのパート名を含む IOpcPartUri インターフェイスです。 | ||||||
| coreProperties | IXpsOMCoreProperties* | in | 新しいファイルに設定するドキュメントのコア プロパティを含む IXpsOMCoreProperties インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| packageThumbnail | IXpsOMImageResource* | in | 新しいファイルに割り当てるサムネイル イメージを含む IXpsOMImageResource インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| documentSequencePrintTicket | IXpsOMPrintTicketResource* | in | 新しいファイルに割り当てるパッケージ レベルの印刷チケットを含む IXpsOMPrintTicketResource インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| discardControlPartName | IOpcPartUri* | in | DiscardControl パートの名前を含む IOpcPartUri インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| packageWriter | IXpsOMPackageWriter** | out | このメソッドで作成された新しい IXpsOMPackageWriter インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| filename、documentSequencePartName、または packageWriter が NULL です。 | |
| coreProperties、documentSequencePrintTicket、または packageThumbnail が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
ファイルが開かれて初期化され、返された IXpsOMPackageWriter インターフェイスを使用して、コンテンツ タイプ、パッケージのリレーションシップ、コア プロパティ、ドキュメント シーケンス リソース、ドキュメント シーケンスのリレーションシップを書き込みます。
documentSequencePrintTicket が NULL に設定され、interleaving の値が XPS_INTERLEAVING_ON の場合、このメソッドは空のジョブ レベルの印刷チケットを作成し、その空の印刷チケットへのリレーションシップを追加します。これは、パッケージのストリーミング処理をより効率的に行うためです。
documentSequencePrintTicket が NULL に設定され、interleaving の値が XPS_INTERLEAVING_OFF の場合、空の印刷チケットは作成されません。
XPS OM の内容を XPS パッケージに書き込むためのストリームを開きます。
| outputStream | ISequentialStream* | in | 書き込みに使用するストリームです。 | ||||||
| optimizeMarkupSize | BOOL | in | ドキュメントをストリームに書き込む際に、ドキュメント マークアップをサイズの面で最適化するかどうかを示すブール値です。
| ||||||
| interleaving | XPS_INTERLEAVING | in | XPS OM の内容をストリームに書き込む際にインターリーブするかどうかを指定します。 | ||||||
| documentSequencePartName | IOpcPartUri* | in | 新しいファイル内のドキュメント シーケンスのパート名を含む IOpcPartUri インターフェイスです。 | ||||||
| coreProperties | IXpsOMCoreProperties* | in | 新しいファイルに設定するドキュメントのコア プロパティを含む IXpsOMCoreProperties インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| packageThumbnail | IXpsOMImageResource* | in | 新しいファイルに割り当てるサムネイル イメージを含む IXpsOMImageResource インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| documentSequencePrintTicket | IXpsOMPrintTicketResource* | in | 新しいファイルに割り当てるパッケージ レベルの印刷チケットを含む IXpsOMPrintTicketResource インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| discardControlPartName | IOpcPartUri* | in | DiscardControl パートの名前を含む IOpcPartUri インターフェイスです。このパラメーターは NULL に設定できます。 | ||||||
| packageWriter | IXpsOMPackageWriter** | out | このメソッドで作成された新しい IXpsOMPackageWriter インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| outputStream、documentSequencePartName、または packageWriter が NULL です。 | |
| coreProperties、documentSequencePrintTicket、または packageThumbnail が、認識されるインターフェイス実装を指していません。XPS Document API インターフェイスの独自実装はサポートされていません。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
ストリームが開かれて初期化され、返された IXpsOMPackageWriter インターフェイスを使用して、コンテンツ タイプ、パッケージのリレーションシップ、コア プロパティ、ドキュメント シーケンス リソース、ドキュメント シーケンスのリレーションシップを書き込みます。
documentSequencePrintTicket が NULL に設定され、interleaving の値が XPS_INTERLEAVING_ON の場合、このメソッドは空のジョブ レベルの印刷チケットを作成し、その空の印刷チケットへのリレーションシップを追加します。これは、パッケージのストリーミング処理をより効率的に行うためです。
documentSequencePrintTicket が NULL に設定され、interleaving の値が XPS_INTERLEAVING_OFF の場合、空の印刷チケットは作成されません。
指定された URI を使用する IOpcPartUri インターフェイスを作成します。
| uri | LPWSTR | in | URI 文字列です。 |
| partUri | IOpcPartUri** | out | このメソッドで作成された IOpcPartUri インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| partUri が NULL です。 |
指定されたファイルに対する読み取り専用の IStream を作成します。
| filename | LPWSTR | in | 開くファイルの名前です。 |
| stream | IStream** | out | 指定されたファイルに対するストリームです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれます (これらに限定されません)。この表に記載されていない XPS ドキュメント API の戻り値については、XPS ドキュメント エラーを参照してください。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| filename または stream が NULL です。 |
このメソッドは Packaging API を呼び出します。Packaging API の戻り値については、パッケージ化エラーを参照してください。
解説(Remarks)
CreateReadOnlyStreamOnFile は IOpcFactory::CreateStreamOnFile のラッパー メソッドです。次の呼び出しと同じ効果があります。
hr = opcFactory->CreateStreamOnFile (
fileName,
OPC_STREAM_IO_READ,
NULL,
FILE_ATTRIBUTE_NORMAL,
&stream);
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXpsOMObjectFactory "{F9B2A685-A50D-4FC2-B764-B56E093EA0CA}" #usecom global IXpsOMObjectFactory IID_IXpsOMObjectFactory "{E974D26D-3D9B-4D47-88CC-3872F2DC3585}" #comfunc global IXpsOMObjectFactory_CreatePackage 3 sptr #comfunc global IXpsOMObjectFactory_CreatePackageFromFile 4 wstr,int,sptr #comfunc global IXpsOMObjectFactory_CreatePackageFromStream 5 sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateStoryFragmentsResource 6 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDocumentStructureResource 7 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateSignatureBlockResource 8 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateRemoteDictionaryResource 9 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateRemoteDictionaryResourceFromStream 10 sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePartResources 11 sptr #comfunc global IXpsOMObjectFactory_CreateDocumentSequence 12 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDocument 13 sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePageReference 14 var,sptr #comfunc global IXpsOMObjectFactory_CreatePage 15 var,wstr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePageFromStream 16 sptr,sptr,sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateCanvas 17 sptr #comfunc global IXpsOMObjectFactory_CreateGlyphs 18 sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePath 19 sptr #comfunc global IXpsOMObjectFactory_CreateGeometry 20 sptr #comfunc global IXpsOMObjectFactory_CreateGeometryFigure 21 var,sptr #comfunc global IXpsOMObjectFactory_CreateMatrixTransform 22 var,sptr #comfunc global IXpsOMObjectFactory_CreateSolidColorBrush 23 var,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateColorProfileResource 24 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateImageBrush 25 sptr,var,var,sptr #comfunc global IXpsOMObjectFactory_CreateVisualBrush 26 var,var,sptr #comfunc global IXpsOMObjectFactory_CreateImageResource 27 sptr,int,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePrintTicketResource 28 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateFontResource 29 sptr,int,sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateGradientStop 30 var,sptr,float,sptr #comfunc global IXpsOMObjectFactory_CreateLinearGradientBrush 31 sptr,sptr,var,var,sptr #comfunc global IXpsOMObjectFactory_CreateRadialGradientBrush 32 sptr,sptr,var,var,var,sptr #comfunc global IXpsOMObjectFactory_CreateCoreProperties 33 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDictionary 34 sptr #comfunc global IXpsOMObjectFactory_CreatePartUriCollection 35 sptr #comfunc global IXpsOMObjectFactory_CreatePackageWriterOnFile 36 wstr,var,int,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePackageWriterOnStream 37 sptr,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePartUri 38 wstr,sptr #comfunc global IXpsOMObjectFactory_CreateReadOnlyStreamOnFile 39 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMObjectFactory "{F9B2A685-A50D-4FC2-B764-B56E093EA0CA}" #usecom global IXpsOMObjectFactory IID_IXpsOMObjectFactory "{E974D26D-3D9B-4D47-88CC-3872F2DC3585}" #comfunc global IXpsOMObjectFactory_CreatePackage 3 sptr #comfunc global IXpsOMObjectFactory_CreatePackageFromFile 4 wstr,int,sptr #comfunc global IXpsOMObjectFactory_CreatePackageFromStream 5 sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateStoryFragmentsResource 6 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDocumentStructureResource 7 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateSignatureBlockResource 8 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateRemoteDictionaryResource 9 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateRemoteDictionaryResourceFromStream 10 sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePartResources 11 sptr #comfunc global IXpsOMObjectFactory_CreateDocumentSequence 12 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDocument 13 sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePageReference 14 sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePage 15 sptr,wstr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePageFromStream 16 sptr,sptr,sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateCanvas 17 sptr #comfunc global IXpsOMObjectFactory_CreateGlyphs 18 sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePath 19 sptr #comfunc global IXpsOMObjectFactory_CreateGeometry 20 sptr #comfunc global IXpsOMObjectFactory_CreateGeometryFigure 21 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateMatrixTransform 22 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateSolidColorBrush 23 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateColorProfileResource 24 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateImageBrush 25 sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateVisualBrush 26 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateImageResource 27 sptr,int,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePrintTicketResource 28 sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateFontResource 29 sptr,int,sptr,int,sptr #comfunc global IXpsOMObjectFactory_CreateGradientStop 30 sptr,sptr,float,sptr #comfunc global IXpsOMObjectFactory_CreateLinearGradientBrush 31 sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateRadialGradientBrush 32 sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreateCoreProperties 33 sptr,sptr #comfunc global IXpsOMObjectFactory_CreateDictionary 34 sptr #comfunc global IXpsOMObjectFactory_CreatePartUriCollection 35 sptr #comfunc global IXpsOMObjectFactory_CreatePackageWriterOnFile 36 wstr,sptr,int,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePackageWriterOnStream 37 sptr,int,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IXpsOMObjectFactory_CreatePartUri 38 wstr,sptr #comfunc global IXpsOMObjectFactory_CreateReadOnlyStreamOnFile 39 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。