IXpsSignatureBlockCollection
COM公式ドキュメント
IXpsSignatureBlock インターフェイスのコレクションです。
解説(Remarks)
このインターフェイスは、それをインスタンス化した署名マネージャーとは独立して存在することはできません。
コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
コレクション内の IXpsSignatureBlock インターフェイスポインターの数を取得します。
| count | DWORD* | out | コレクション内の IXpsSignatureBlock インターフェイスポインターの数。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。
コレクション内の指定した位置から IXpsSignatureBlock インターフェイスポインターを取得します。
| index | DWORD | in | 取得する IXpsSignatureBlock インターフェイスポインターの、0 から始まるインデックス。 |
| signatureBlock | IXpsSignatureBlock** | out | index で指定された位置にある IXpsSignatureBlock インターフェイスポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。
コレクション内の指定した位置から IXpsSignatureBlock インターフェイスポインターを削除し、解放します。
| index | DWORD | in | IXpsSignatureBlock インターフェイスポインターを削除して解放する、コレクション内の 0 から始まるインデックス。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、index で指定された位置にある IXpsSignatureBlock ポインターが参照するインターフェイスを解放します。その後、index より後にあるすべてのポインターのインデックスを 1 つ減らして、コレクションを詰めます。コレクションのメソッドの詳細については、Working with XPS OM Collection Interfaces を参照してください。
コレクションから署名ブロックを削除すると、その署名ブロックに対応する SignatureDefinitions パートとリレーションシップがパッケージから削除されます。この削除により、既存の署名は無効になります。さらに、SignatureDefinitions パート名は必須の XPS パートの一覧からも削除されるため、新しい署名が削除された署名ブロックを含めることはできなくなります。
コレクションから削除されたインターフェイスは、以後有効ではありません。アプリケーションがそのインターフェイスへのポインターを保持したままメソッドの 1 つを呼び出そうとすると、そのメソッドは XPS_E_OBJECT_DETACHED を返します。
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 指定が可能。#define global IID_IXpsSignatureBlockCollection "{23397050-FE99-467A-8DCE-9237F074FFE4}" #usecom global IXpsSignatureBlockCollection IID_IXpsSignatureBlockCollection "{}" #comfunc global IXpsSignatureBlockCollection_GetCount 3 sptr #comfunc global IXpsSignatureBlockCollection_GetAt 4 int,sptr #comfunc global IXpsSignatureBlockCollection_RemoveAt 5 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。