IOpcUri
COM公式ドキュメント
パッケージルート、またはパッケージルートからの相対パートの URI を表します。
解説(Remarks)
以前の Windows バージョンでのサポート
このインターフェイスの動作とパフォーマンスは、サポートされているすべての Windows バージョンで同じです。詳細については、Getting Started with the Packaging API および Platform Update for Windows Vista を参照してください。メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
現在の OPC URI オブジェクトが表すソース URI を持つリレーションシップを格納する Relationships パートのパート名を取得します。
| relationshipPartUri | IOpcPartUri** | out | Relationships パートのパート名を表すパート URI オブジェクトの IOpcPartUri インターフェイスへのポインターです。この Relationships パートに格納されるリレーションシップのソース URI は、現在の OPC URI オブジェクトによって表されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれますが、これらに限定されません。
| 戻り値のコード/値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| relationshipPartUri パラメーターが NULL です。 | |
|
現在の IOpcUri は Relationships パートを表しており、いかなるリレーションシップのソースにもなれません。 |
|
CreateUri 関数から返された HRESULT エラーコードです。 |
|
WinINet API から返された HRESULT エラーコードです。 |
解説(Remarks)
次の表は、いくつかの OPC URI に対する Relationships パートの URI を示しています。
| OPC URI | Relationships パート名 | 戻り値 |
|---|---|---|
| /mydoc/images/picture.jpg | /mydoc/images/_rels/picture.jpg.rels | S_OK |
| / | /_rels/.rels | S_OK |
| /mydoc/images/_rels/picture.jpg.rels | 未定義 | OPC_E_NONCONFORMING_URI |
以前の Windows バージョンでのサポート
このメソッドの動作とパフォーマンスは、サポートされているすべての Windows バージョンで同じです。詳細については、Getting Started with the Packaging API および Platform Update for Windows Vista を参照してください。スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
現在の OPC URI オブジェクトが表す URI を基準として、指定されたパートの相対 URI を生成します。
| targetPartUri | IOpcPartUri* | in | 相対 URI の生成元となるパート名を表すパート URI オブジェクトの IOpcPartUri インターフェイスへのポインターです。 |
| relativeUri | IUri** | out | 現在の OPC URI オブジェクトを基準とした、パートの URI の IUri インターフェイスへのポインターです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれますが、これらに限定されません。
| 戻り値のコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| targetPartUri および relativePartUri パラメーターの少なくとも 1 つが NULL です。 | |
|
CreateUri 関数から返された HRESULT エラーコードです。 |
|
WinINet API から返された HRESULT エラーコードです。 |
解説(Remarks)
入力と出力の例:
| 入力の IOpcPartUri が表すもの | 現在の IOpcUri が表すもの | 返される相対 IUri が表すもの |
|---|---|---|
| /mydoc/markup/page.xml | /mydoc/markup/picture.jpg | picture.jpg |
| /mydoc/markup/page.xml | /mydoc/picture.jpg | ../picture.jpg |
| /mydoc/markup/page.xml | /mydoc/images/pictures.jpg | ../images/pictures.jpg |
以前の Windows バージョンでのサポート
このメソッドの動作とパフォーマンスは、サポートされているすべての Windows バージョンで同じです。詳細については、Getting Started with the Packaging API および Platform Update for Windows Vista を参照してください。スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、Getting Started with the Packaging API を参照してください。
指定された相対 URI が参照するパートのパート名を生成します。
| relativeUri | IUri* | in | パートの相対 URI の IUri インターフェイスへのポインターです。 パート名を表すパート URI オブジェクトを生成するために、この入力 URI は現在の OPC URI オブジェクトが表す URI に対して解決されます。したがって、入力 URI は現在の OPC URI オブジェクトが表す URI からの相対でなければなりません。 この URI にはフラグメント要素を含めることができますが、フラグメントは無視され、生成されるパート名には含まれません。フラグメント要素は、RFC 3986: URI Generic Syntax に記載されているとおり、'#' が前に付きます。 |
| combinedUri | IOpcPartUri** | out | パート名を表すパート URI オブジェクトの IOpcPartUri インターフェイスへのポインターです。 このパート URI オブジェクトは、relativeUri の相対 URI を現在の OPC URI オブジェクトが表す URI に対して解決することで生成されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には次の表の値が含まれますが、これらに限定されません。
| 戻り値のコード/値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| CoInternetCombineUrl 関数が無効なサイズを返しました。 | |
| relativeUri および combinedUri パラメーターの少なくとも 1 つが NULL です。 | |
| CoInternetCombineUrl 関数が必要とするバッファーのサイズが予期せず変化しました。 | |
|
パート名が OPC 標準で規定された規則に準拠していません。 |
|
パート名を絶対 URI にすることはできません。絶対 URI は、RFC 3986: URI Generic Syntax に記載されているとおり、スキーム要素とそれに続く ":" で始まります。 |
|
CoInternetCombineUrl 関数から返された HRESULT エラーコードです。 |
|
CreateUri 関数から返された HRESULT エラーコードです。 |
|
WinINet API から返された HRESULT エラーコードです。 |
解説(Remarks)
入力と出力の例:
| 入力の相対 IUri | 現在の IOpcUri | 生成される IOpcPartUri |
|---|---|---|
| picture.jpg | /mydoc/markup/page.xml | /mydoc/markup/picture.jpg |
| ../picture.jpg | /mydoc/markup/page.xml | /mydoc/picture.jpg |
| ../../images/picture.jpg | /mydoc/page.xml | /images/picture.jpg |
このメソッドを使用してパート名を解決する方法については、Resolving a Part Name from a Target URI を参照してください。
以前の Windows バージョンでのサポート
このメソッドの動作とパフォーマンスは、サポートされているすべての Windows バージョンで同じです。詳細については、Getting Started with the Packaging API および Platform Update for Windows Vista を参照してください。スレッドセーフティ
パッケージングオブジェクトはスレッドセーフではありません。
詳細については、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_IOpcUri "{BC9C1B9B-D62C-49EB-AEF0-3B4E0B28EBED}"
#usecom global IOpcUri IID_IOpcUri "{}"
#comfunc global IOpcUri_GetRelationshipsPartUri 28 sptr
#comfunc global IOpcUri_GetRelativeUri 29 sptr,sptr
#comfunc global IOpcUri_CombinePartUri 30 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。