Win32 API 日本語リファレンス
ホームStorage.Packaging.Opc › IOpcSignatureCustomObjectSet

IOpcSignatureCustomObjectSet

COM
IID8f792ac5-7947-4e11-bc3d-2659ff046ae1継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アプリケーション固有の Object 要素の XML マークアップを保持する IOpcSignatureCustomObject インターフェイスポインターの、順序を持たないセットです。

解説(Remarks)

IOpcSignatureCustomObject インターフェイスポインターは、それが表す Object 要素の XML マークアップへのアクセスを提供します。Object 要素の XML マークアップにアクセスするには、IOpcSignatureCustomObject::GetXml メソッドを呼び出します。

IOpcSignatureCustomObject インターフェイスポインターが作成されてセットに追加されると、それが表す Object はパッケージの保存時に保存されます。

IOpcSignatureCustomObject インターフェイスポインターがセットから削除されると、それが表す Object はパッケージの保存時に保存されません。

IOpcSignatureCustomObjectSet インターフェイスポインターを作成するには、IOpcSigningOptions::GetCustomObjectSet メソッドを呼び出します。

スレッドセーフティ

パッケージング関連のオブジェクトはスレッドセーフではありません。

詳細については、Getting Started with the Packaging API を参照してください。

メソッド 3

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Create(BYTE* xmlMarkup, DWORD count, IOpcSignatureCustomObject** customObject)

署名内のアプリケーション固有の Object 要素を表す IOpcSignatureCustomObject インターフェイスポインターを作成し、その新しいインターフェイスをセットに追加します。

xmlMarkupBYTE*in

表現対象となる Object 要素の XML マークアップを格納したバッファーです。

この XML マークアップには、開始タグ Object と終了タグ /Object を含める必要があります。

xmlMarkup に格納されたマークアップのエンコーディングは推定されます。xmlMarkup で渡すバッファーの先頭に バイト順マーク (BOM) を含めるかどうかは任意です。

サポートされるエンコーディングと バイト順マーク の値は次のとおりです。

エンコーディング 説明 バイト順マーク
UTF8 UTF-8 EF BB BF
UTF16LE UTF-16、リトルエンディアン FF FE
UTF16BE UTF-16、ビッグエンディアン FE FF
countDWORDinxmlMarkup バッファーのサイズです。
customObjectIOpcSignatureCustomObject**out

アプリケーション固有の Object 要素を表す、新しい IOpcSignatureCustomObject インターフェイスポインターです。

新しいインターフェイスへのポインターが不要な場合、このパラメーターには NULL を指定できます。

戻り値

このメソッドは HRESULT を返します。返される値には、次の表に示すものが含まれます (ただしこれらに限定されません)。

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
count パラメーターが 0 です。xmlMarkup パラメーターには有効な XML マークアップを渡す必要があります。
E_POINTER
xmlMarkup パラメーターが NULL です。

解説(Remarks)

IOpcSignatureCustomObject インターフェイスポインターは、それが表す Object 要素の XML マークアップへのアクセスを提供します。Object 要素の XML マークアップにアクセスするには、IOpcSignatureCustomObject::GetXml メソッドを呼び出します。

IOpcSignatureCustomObject インターフェイスポインターが作成されてセットに追加されると、それが表す Object はパッケージの保存時に保存されます。

スレッドセーフティ

パッケージング関連のオブジェクトはスレッドセーフではありません。

詳細については、Getting Started with the Packaging API を参照してください。

vtbl 4 HRESULT Delete(IOpcSignatureCustomObject* customObject)

指定した IOpcSignatureCustomObject インターフェイスポインターをセットから削除します。

customObjectIOpcSignatureCustomObject*in削除する IOpcSignatureCustomObject インターフェイスポインターです。

戻り値

このメソッドは HRESULT を返します。返される値には、次の表に示すものが含まれます (ただしこれらに限定されません)。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
customObject パラメーターが NULL です。

解説(Remarks)

IOpcSignatureCustomObject インターフェイスポインターがセットから削除されると、それが表す Object はパッケージの保存時に保存されません。

スレッドセーフティ

パッケージング関連のオブジェクトはスレッドセーフではありません。

詳細については、Getting Started with the Packaging API を参照してください。

vtbl 5 HRESULT GetEnumerator(IOpcSignatureCustomObjectEnumerator** customObjectEnumerator)

セット内の IOpcSignatureCustomObject インターフェイスポインターの列挙子を取得します。

customObjectEnumeratorIOpcSignatureCustomObjectEnumerator**outセット内の IOpcSignatureCustomObject インターフェイスポインターの列挙子へのポインターです。

戻り値

このメソッドは HRESULT を返します。返される値には、次の表に示すものが含まれます (ただしこれらに限定されません)。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
customObjectEnumerator パラメーターが NULL です。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IOpcSignatureCustomObjectSet "{8F792AC5-7947-4E11-BC3D-2659FF046AE1}"
#usecom global IOpcSignatureCustomObjectSet IID_IOpcSignatureCustomObjectSet "{}"
#comfunc global IOpcSignatureCustomObjectSet_Create         3 var,int,sptr
#comfunc global IOpcSignatureCustomObjectSet_Delete         4 sptr
#comfunc global IOpcSignatureCustomObjectSet_GetEnumerator  5 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。