ICreateErrorInfo
COM公式ドキュメント
エラー情報を返します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
エラーを定義したインターフェイスのグローバル一意識別子 (GUID) を設定します。
| rguid | GUID* | in | エラーを定義したインターフェイスの GUID。エラーがオペレーティングシステムによって定義された場合は GUID_NULL を指定します。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
このメソッドは、エラーを定義したインターフェイスの GUID を設定します。エラーがシステムによって定義された場合は、ICreateErrorInfo::SetGUID に GUID_NULL を設定します。
この GUID は必ずしもエラーの発生源を表すわけではありません。ただし、発生源はエラーを発生させたクラスまたはアプリケーションです。この GUID を使用することで、アプリケーションはインターフェイスを実装するクラスに依存せず、そのインターフェイスにおけるエラーを処理できます。
この関数の使用例は、COM Fundamentals Hello サンプルの Main.cpp ファイルで示されています。
エラーを発生させたクラスまたはアプリケーションの、言語依存のプログラム識別子 (ProgID) を設定します。
| szSource | LPWSTR | in | progname.objectname 形式の ProgID。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
このメソッドは、エラーの発生源となったクラスまたはアプリケーションを識別するために使用します。返される ProgID の言語は、呼び出し時にメソッドへ渡されたロケール識別子 (LCID) に依存します。
この関数の使用例は、COM Fundamentals Hello サンプルの Main.cpp ファイルで示されています。
エラーのテキストによる説明を設定します。
| szDescription | LPWSTR | in | エラーの簡単な説明。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
テキストは、エラーを発生させたメソッドに渡されたロケール ID (LCID) で指定された言語で提供する必要があります。詳細については、タイプライブラリとオブジェクト記述言語の LCID 属性を参照してください。
この関数の使用例は、COM Fundamentals Hello サンプルの Main.cpp ファイルで示されています。
エラーを説明するヘルプファイルのパスを設定します。
| szHelpFile | LPWSTR | in | エラーを説明するヘルプファイルの完全修飾パス。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
このメソッドは、現在のエラーを説明するヘルプファイルの完全修飾パスを設定します。ヘルプファイル内でエラーに対応するヘルプコンテキスト ID を設定するには、ICreateErrorInfo::SetHelpContext を使用します。
エラーのヘルプコンテキスト識別子 (ID) を設定します。
| dwHelpContext | DWORD | in | エラーのヘルプコンテキスト ID。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 操作を完了するためのメモリが不足しています。 |
解説(Remarks)
このメソッドは、エラーのヘルプコンテキスト ID を設定します。これが適用されるヘルプファイルを指定するには、ICreateErrorInfo::SetHelpFile を使用します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICreateErrorInfo "{22F03340-547D-101B-8E65-08002B2BD119}" #usecom global ICreateErrorInfo IID_ICreateErrorInfo "{}" #comfunc global ICreateErrorInfo_SetGUID 3 var #comfunc global ICreateErrorInfo_SetSource 4 wstr #comfunc global ICreateErrorInfo_SetDescription 5 wstr #comfunc global ICreateErrorInfo_SetHelpFile 6 wstr #comfunc global ICreateErrorInfo_SetHelpContext 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ICreateErrorInfo "{22F03340-547D-101B-8E65-08002B2BD119}" #usecom global ICreateErrorInfo IID_ICreateErrorInfo "{}" #comfunc global ICreateErrorInfo_SetGUID 3 sptr #comfunc global ICreateErrorInfo_SetSource 4 wstr #comfunc global ICreateErrorInfo_SetDescription 5 wstr #comfunc global ICreateErrorInfo_SetHelpFile 6 wstr #comfunc global ICreateErrorInfo_SetHelpContext 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。