Win32 API 日本語リファレンス
ホームStorage.Xps › IXpsSignatureBlockCollection

IXpsSignatureBlockCollection

COM
IID23397050-fe99-467a-8dce-9237f074ffe4継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IXpsSignatureBlock インターフェイスのコレクションです。

解説(Remarks)

このインターフェイスは、それをインスタンス化した署名マネージャーとは独立して存在することはできません。

コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。

メソッド 3

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

vtbl 3 HRESULT GetCount(DWORD* count)

コレクション内の IXpsSignatureBlock インターフェイスポインターの数を取得します。

countDWORD*outコレクション内の IXpsSignatureBlock インターフェイスポインターの数。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。

vtbl 4 HRESULT GetAt(DWORD index, IXpsSignatureBlock** signatureBlock)

コレクション内の指定した位置から IXpsSignatureBlock インターフェイスポインターを取得します。

indexDWORDin取得する IXpsSignatureBlock インターフェイスポインターの、0 から始まるインデックス。
signatureBlockIXpsSignatureBlock**outindex で指定された位置にある IXpsSignatureBlock インターフェイスポインター。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。

vtbl 5 HRESULT RemoveAt(DWORD index)

コレクション内の指定した位置から IXpsSignatureBlock インターフェイスポインターを削除し、解放します。

indexDWORDinIXpsSignatureBlock インターフェイスポインターを削除して解放する、コレクション内の 0 から始まるインデックス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、index で指定された位置にある IXpsSignatureBlock ポインターが参照するインターフェイスを解放します。その後、index より後にあるすべてのポインターのインデックスを 1 つ減らして、コレクションを詰めます。コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。

コレクションから署名ブロックを削除すると、その署名ブロックに対応する SignatureDefinitions パートとリレーションシップがパッケージから削除されます。この削除により、既存の署名は無効になります。さらに、SignatureDefinitions パート名は必須の XPS パートの一覧からも削除されるため、新しい署名が削除された署名ブロックを含めることはできなくなります。

コレクションから削除されたインターフェイスは、以後有効ではありません。アプリケーションがそのインターフェイスへのポインターを保持したままメソッドの 1 つを呼び出そうとすると、そのメソッドは XPS_E_OBJECT_DETACHED を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IXpsSignatureBlockCollection "{23397050-FE99-467A-8DCE-9237F074FFE4}"
#usecom global IXpsSignatureBlockCollection IID_IXpsSignatureBlockCollection "{}"
#comfunc global IXpsSignatureBlockCollection_GetCount  3 var
#comfunc global IXpsSignatureBlockCollection_GetAt     4 int,sptr
#comfunc global IXpsSignatureBlockCollection_RemoveAt  5 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。