IToc
COM公式ドキュメント
IToc インターフェイスは、個々の目次 (table of contents) を表します。目次にエントリを追加したり、目次からエントリを削除したりするためのメソッドを提供します。
メソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SetDescriptor メソッドは、ディスクリプタを目次に関連付けます。
| pDescriptor | TOC_DESCRIPTOR* | inout | ディスクリプタを格納する TOC_DESCRIPTOR 構造体へのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
GetDescriptor メソッドは、SetDescriptor によって以前に設定された目次のディスクリプタを取得します。
| pDescriptor | TOC_DESCRIPTOR* | inout | ディスクリプタを受け取る TOC_DESCRIPTOR 構造体へのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
SetDescription メソッドは、説明 (description) を目次に関連付けます。
| pwszDescription | LPWSTR | in | 説明を格納する、NULL で終端されたワイド文字列へのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを使用すると、任意の説明を目次に関連付けることができます。TOC パーサーは、この説明を検査したり解釈したりしません。
GetDescription メソッドは、以前の SetDescription の呼び出しによって設定された目次の説明を取得します。
| pwDescriptionSize | WORD* | inout | pwszDescription が NULL の場合、これは、説明を受け取るために必要なバッファのサイズ (ワイド文字単位) を受け取る出力パラメーターです。pwszDescription が NULL でない場合、これは、pwszDescription が指す呼び出し元が割り当てたバッファのサイズ (ワイド文字単位) を指定する入力パラメーターです。 |
| pwszDescription | LPWSTR | outoptional | NULL、または、正常に完了したときに説明を受け取る、呼び出し元が割り当てたバッファへのポインタです。説明は NULL で終端されます。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| pwszDescription が NULL でなく、かつ説明が NULL 終端文字を含めて pwDescriptionSize で指定されたサイズより大きい場合、このメソッドはこのエラーコードを返します。その場合、pwDescriptionSize は出力パラメーターとして機能し、必要なバッファのサイズを受け取ります。 |
SetContext メソッドは、呼び出し元が指定したコンテキストブロックを目次に関連付けます。
| dwContextSize | DWORD | in | コンテキストブロックのサイズ (バイト単位) です。 |
| pbtContext | BYTE* | inout | コンテキストブロックの先頭バイトへのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドを使用すると、任意の情報を目次に関連付けることができます。コンテキストブロックに格納する情報の種類は、完全に利用者の自由です。TOC パーサーは、コンテキストブロックを検査したり解釈したりしません。
GetContext メソッドは、以前に SetContext の呼び出しによって目次に関連付けられたバイトブロックを取得します。
| pdwContextSize | DWORD* | inout | pbtContext が NULL の場合、これは、コンテキストブロックのサイズ (バイト単位) を受け取る出力パラメーターです。pbtContext が NULL でない場合、これは、pbtContext が指す呼び出し元が割り当てたバッファのサイズ (バイト単位) を指定する入力パラメーターです。 |
| pbtContext | BYTE* | inout | NULL、または、正常に完了したときにコンテキストブロックを受け取る、呼び出し元が割り当てたバッファへのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| pbtContext が NULL でなく、かつコンテキストブロックが bdwContextSize で指定されたサイズより大きい場合、このメソッドはこのエラーコードを返します。その場合、pdwContextSize は出力パラメーターとして機能し、必要なバッファのサイズ (バイト単位) を受け取ります。 |
GetEntryListCount メソッドは、目次内のエントリリストの数を取得します。
| pwCount | WORD* | inout | エントリリストの数を受け取る WORD へのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
GetEntryListByIndex メソッドは、インデックスで指定されたエントリリストを目次から取得します。
| wEntryListIndex | WORD | in | 取得するエントリリストのインデックスです。 |
| ppEntryList | ITocEntryList** | out | ITocEntryList インターフェイスへのポインタを受け取る変数へのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
AddEntryList メソッドは、目次にエントリリストを追加し、そのエントリリストにインデックスを割り当てます。
| pEntryList | ITocEntryList* | in | 追加するエントリリストを表す ITocEntryList インターフェイスへのポインタです。 |
| pwEntryListIndex | WORD* | inout | 追加されたエントリリストのインデックスを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
AddEntryListByIndex メソッドは、目次にエントリリストを追加し、呼び出し元が指定したインデックスをそのエントリリストに関連付けます。
| wEntryListIndex | WORD | in | 呼び出し元が指定する、エントリリストに関連付けるインデックスです。 |
| pEntryList | ITocEntryList* | in | 追加するエントリリストを表す ITocEntryList インターフェイスへのポインタです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
RemoveEntryListByIndex メソッドは、インデックスで指定されたエントリリストを目次から削除します。
| wEntryListIndex | WORD | in | 削除するエントリリストのインデックスです。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IToc "{D6F05441-A919-423B-91A0-89D5B4A8AB77}" #usecom global IToc IID_IToc "{}" #comfunc global IToc_SetDescriptor 3 var #comfunc global IToc_GetDescriptor 4 var #comfunc global IToc_SetDescription 5 wstr #comfunc global IToc_GetDescription 6 var,var #comfunc global IToc_SetContext 7 int,var #comfunc global IToc_GetContext 8 var,var #comfunc global IToc_GetEntryListCount 9 var #comfunc global IToc_GetEntryListByIndex 10 int,sptr #comfunc global IToc_AddEntryList 11 sptr,var #comfunc global IToc_AddEntryListByIndex 12 int,sptr #comfunc global IToc_RemoveEntryListByIndex 13 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IToc "{D6F05441-A919-423B-91A0-89D5B4A8AB77}" #usecom global IToc IID_IToc "{}" #comfunc global IToc_SetDescriptor 3 sptr #comfunc global IToc_GetDescriptor 4 sptr #comfunc global IToc_SetDescription 5 wstr #comfunc global IToc_GetDescription 6 sptr,sptr #comfunc global IToc_SetContext 7 int,sptr #comfunc global IToc_GetContext 8 sptr,sptr #comfunc global IToc_GetEntryListCount 9 sptr #comfunc global IToc_GetEntryListByIndex 10 int,sptr #comfunc global IToc_AddEntryList 11 sptr,sptr #comfunc global IToc_AddEntryListByIndex 12 int,sptr #comfunc global IToc_RemoveEntryListByIndex 13 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。