IOpcPart
COM公式ドキュメント
データを格納する、Relationships パート以外のパートを表します。
解説(Remarks)
パートを表すパートオブジェクトを作成するには、IOpcPartSet::CreatePart メソッドを呼び出します。既存のパートを表すパートオブジェクトのインターフェイスへのポインターを取得するには、IOpcPartSet::GetPart メソッドまたは IOpcPartEnumerator::GetCurrent メソッドを呼び出します。
Relationships パートは IOpcPart インターフェイスの実装では表せません。
IOpcPart インターフェイスのメソッドは、次の表に示すプロパティを通じてパート情報へのアクセスを提供します。
| メソッド | プロパティ | 説明 |
|---|---|---|
| GetCompressionOptions | 圧縮 | パートのコンテンツに使用される圧縮オプション。 |
| GetContentStream | コンテンツ | ECMA-376 OpenXML, 1st Edition, Part 2: Open Packaging Conventions (OPC) に記載されている、パートを構成するバイトのストリーム。 |
| GetContentType | コンテンツタイプ | OPC の規則に従ってパッケージ設計者が指定した、パートのコンテンツのメディアタイプ。 |
| GetName | 名前 | パッケージ内におけるパートの URI。 |
パートの詳細については、Open Packaging Conventions Fundamentals および OPC を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このパートをソースとするリレーションシップを格納する Relationships パートを表す、リレーションシップセットオブジェクトを取得します。
| relationshipSet | IOpcRelationshipSet** | out | このパートをソースとするすべてのリレーションシップを格納する Relationships パートを表す、リレーションシップセットオブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| relationshipSet パラメーターが NULL です。 | |
|
Package Consumption Error Group の HRESULT エラーコード。 |
|
Part URI Error Group の HRESULT エラーコード。 |
解説(Remarks)
目的のパートを確実に見つける方法は、リレーションシップタイプを使用して、目的のパートをターゲットとするリレーションシップを検索することです。ターゲットの URI はパート名に解決でき、そのパート名を使ってパートにアクセスします。
リレーションシップタイプを使用してリレーションシップ、さらに目的のパートを見つける方法の詳細については、IOpcRelationshipSet および IOpcRelationship を参照してください。
パートおよびリレーションシップの詳細については、Open Packaging Conventions Fundamentals および ECMA-376 OpenXML, 1st Edition, Part 2: Open Packaging Conventions (OPC) を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
パートのコンテンツへの読み取り/書き込みアクセスを提供するストリームを取得します。
| stream | IStream** | out | パートのコンテンツへの読み取りおよび書き込みアクセスを提供するストリームの IStream インターフェイスへのポインター。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| stream パラメーターが NULL です。 | |
|
CreateFile 関数の HRESULT エラーコード。パッケージが OPC_CACHE_ON_ACCESS 読み取りフラグを使用して開かれた場合に、パートのデータ用にディスク領域を割り当てようとした結果として返されます。 |
|
Package Consumption Error Group の HRESULT エラーコード。 |
|
Part URI Error Group の HRESULT エラーコード。 |
解説(Remarks)
パートの詳細については、Open Packaging Conventions Fundamentals および ECMA-376 OpenXML, 1st Edition, Part 2: Open Packaging Conventions (OPC) を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
パート名を表すパート URI オブジェクトを取得します。
| name | IOpcPartUri** | out | パート名を表すパート URI オブジェクトの IOpcPartUri インターフェイスへのポインター。 パート名は OPC で規定された構文に従います。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| name パラメーターが NULL です。 |
解説(Remarks)
パートの詳細については、Open Packaging Conventions Fundamentals および OPC を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
パートのコンテンツのメディアタイプを取得します。
| contentType | LPWSTR* | out | パッケージフォーマットの設計者が指定し、RFC 2616: HTTP/1.1 に準拠した、パートのコンテンツのメディアタイプ。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| contentType パラメーターが NULL です。 |
解説(Remarks)
このメソッドは、contentType で返される文字列が使用するメモリを割り当てます。メソッドが成功した場合は、CoTaskMemFree 関数を呼び出してメモリを解放してください。
パートの詳細については、Open Packaging Conventions Fundamentals および ECMA-376 OpenXML, 1st Edition, Part 2: Open Packaging Conventions (OPC) を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
パートのコンテンツの圧縮方法を示す値を取得します。
| compressionOptions | OPC_COMPRESSION_OPTIONS* | out | パートのコンテンツの圧縮方法を示す値。 |
戻り値
このメソッドは HRESULT を返します。返される可能性のある値には、次の表に示すものが含まれます(ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| compressionOptions パラメーターが NULL です。 |
解説(Remarks)
パートの詳細については、Open Packaging Conventions Fundamentals および ECMA-376 OpenXML, 1st Edition, Part 2: Open Packaging Conventions (OPC) を参照してください。
スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IOpcPart "{42195949-3B79-4FC8-89C6-FC7FB979EE71}" #usecom global IOpcPart IID_IOpcPart "{}" #comfunc global IOpcPart_GetRelationshipSet 3 sptr #comfunc global IOpcPart_GetContentStream 4 sptr #comfunc global IOpcPart_GetName 5 sptr #comfunc global IOpcPart_GetContentType 6 var #comfunc global IOpcPart_GetCompressionOptions 7 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IOpcPart "{42195949-3B79-4FC8-89C6-FC7FB979EE71}" #usecom global IOpcPart IID_IOpcPart "{}" #comfunc global IOpcPart_GetRelationshipSet 3 sptr #comfunc global IOpcPart_GetContentStream 4 sptr #comfunc global IOpcPart_GetName 5 sptr #comfunc global IOpcPart_GetContentType 6 sptr #comfunc global IOpcPart_GetCompressionOptions 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。