次の方法で共有


ICreateTypeInfo::AddFuncDesc メソッド (oaidl.h)

型の説明に関数の説明を追加します。

構文

HRESULT AddFuncDesc(
  [in] UINT     index,
  [in] FUNCDESC *pFuncDesc
);

パラメーター

[in] index

型情報の新しい FUNCDESC のインデックス。

[in] pFuncDesc

関数を記述する FUNCDESC 構造体。 FUNCDESC の bstrIDLInfo フィールドは null にする必要があります。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_ok
正常終了しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
操作を完了するにはメモリが不足しています。
E_ACCESSDENIED
宛先に書き込めません。
STG_E_INSUFFICIENTMEMORY
操作を完了するにはメモリが不足しています。
TYPE_E_WRONGTYPEKIND
型が一致しません。

注釈

インデックスは、型情報内の関数の順序を指定します。 最初の関数のインデックスは 0 です。 型情報の関数数より 1 つ小さいインデックスを指定すると、エラーが返されます。 この関数を呼び出しても、FUNCDESC 構造体の所有権 は ICreateTypeInfo に渡されません。 そのため、呼び出し元は引き続き FUNCDESC 構造体を割り当て解除する必要があります。

TYPEKIND がTKIND_MODULEの場合、または oVft が -1 または 0 の場合、FUNCDESC の渡された仮想関数テーブル (VTBL) フィールド (oVft) は無視されます。 この属性は、 ICreateTypeInfo::LayOut が呼び出されたときに設定されます。 OVft 値は、TYPEKIND がTKIND_DISPATCHでデュアル・インターフェースである場合、または TYPEKIND がTKIND_INTERFACE場合に使用されます。 oVft を使用する場合は、マシン上の sizeof(VOID *) の倍数である必要があります。それ以外の場合、関数は失敗し、E_INVALIDARGは HRESULT として返されます。

関数 AddFuncDesc は、TYPEKIND = TKIND_DISPATCHまたはTKIND_INTERFACEを持つクラスに対して、各 FUNCDESC 内の渡されたメンバー識別子 (memid) フィールドを使用します。 メンバー ID が MEMBERID_NIL に設定されている場合、 AddFuncDesc はメンバー ID を関数に割り当てます。 それ以外の場合、各 FUNCDESC 内のメンバー ID フィールドは無視されます。

FUNCDESC 構造体の HREFTYPE フィールドは、AddFuncDesc が呼び出される ITypeInfo の同じインスタンスによって生成されている必要があります。

同じプロパティの get および put アクセサー関数には、同じディスパッチ識別子 (DISPID) が必要です。

要件

要件
対象プラットフォーム Windows
ヘッダー oaidl.h

こちらもご覧ください

ICreateTypeInfo