DEFCONTEXTMENU 構造体 (shlobj_core.h)
SHCreateDefaultContextMenu によって使用されるコンテキスト メニュー情報が含まれます。
構文
typedef struct {
HWND hwnd;
IContextMenuCB *pcmcb;
PCIDLIST_ABSOLUTE pidlFolder;
IShellFolder *psf;
UINT cidl;
PCUITEMID_CHILD_ARRAY apidl;
IUnknown *punkAssociationInfo;
UINT cKeys;
const HKEY *aKeys;
} DEFCONTEXTMENU;
メンバー
hwnd
型: HWND
コンテキスト メニューへのハンドル。 このメンバーを CreateMenu から返されるハンドルに設定します。
pcmcb
型: IContextMenuCB*
コールバック オブジェクトでサポートされている IContextMenuCB インターフェイスへのポインター。 この値は省略可能であり、 NULL にすることができます。
pidlFolder
種類: PCIDLIST_ABSOLUTE
選択したファイル オブジェクトを含むフォルダーの PIDL、またはファイル オブジェクトが選択されていない場合はコンテキスト メニューのフォルダー。 この値は省略可能であり、 NULL にすることができます。この場合、PIDL は psf メンバーから計算されます。
psf
種類: IShellFolder*
選択したファイル オブジェクトを含むフォルダー オブジェクトの IShellFolder インターフェイスへのポインター、またはファイル オブジェクトが選択されていない場合はコンテキスト メニューを含むフォルダーへのポインター。
cidl
型: UINT
メンバー apidl 内の項目の数。
apidl
種類: PCUITEMID_CHILD_ARRAY
ITEMIDLIST 構造体の定数配列へのポインター。 配列内の各エントリは、コンテキスト メニューが適用される子項目 (たとえば、ユーザーが 開きたい選択したファイル) を記述します。
punkAssociationInfo
種類: IUnknown*
拡張機能を読み込むオブジェクトの IQueryAssociations インターフェイスへのポインター。 このパラメーターは省略可能であるため、 NULL にすることができます。 この値が NULL で、メンバー aKeys と cKeys も NULL である場合 (「解説」を参照)、punkAssociationInfo は、iShellFolder::GetUIObjectOf を介した IQueryAssociations の要求を介して apidl メンバーと cidl から計算されます。
IShellFolder::GetUIObjectOf がE_NOTIMPLを返す場合、IShellFolder::GetAttributesOf から返されるSFGAO_FOLDER属性とSFGAO_FILESYSTEM属性に基づいて既定の実装が提供されます。
cKeys
型: UINT
メンバー aKeys 内の項目の数。 この値はゼロの場合があります。 値が 0 の場合、拡張は、メンバー punkAssociationInfo で指定されたインターフェイス IQueryAssociations をサポートする オブジェクトに基づいて読み込まれます。 値が NULL 以外の場合、拡張機能はメンバー aKeys にのみ基づいて読み込まれ、メンバー punkAssociationInfo には基づいて読み込まれません。
aKeys
型: const HKEY*
拡張機能の読み込み元のレジストリ キーを指定する HKEY へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 値が NULL の場合、拡張は punkAssociationInfo で指定されているインターフェイス IQueryAssociations をサポートする オブジェクトに基づいて読み込まれます。
解説
aKeys メンバーと cKeys メンバーが有効で、メンバー punkAssociationInfo も有効 (NULL ではない) の場合、システムは aKeys と cKeys の値を使用してメニューを構築し、メンバー punkAssociationInfo (IQueryAssociations) を無視します。
メンバー apidl と cidl は、IDataObject を取得する IShellFolder::GetUIObjectOf メソッドのパラメーターとして使用できます。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | shlobj_core.h (Shlobj.h を含む) |