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 で、メンバー aKeyscKeysNULL である場合 (「解説」を参照)、punkAssociationInfoiShellFolder::GetUIObjectOf を介した IQueryAssociations の要求を介して apidl メンバーと cidl から計算されます。

IShellFolder::GetUIObjectOf がE_NOTIMPLを返す場合、IShellFolder::GetAttributesOf から返されるSFGAO_FOLDER属性とSFGAO_FILESYSTEM属性に基づいて既定の実装が提供されます。

cKeys

型: UINT

メンバー aKeys 内の項目の数。 この値はゼロの場合があります。 値が 0 の場合、拡張は、メンバー punkAssociationInfo で指定されたインターフェイス IQueryAssociations をサポートする オブジェクトに基づいて読み込まれます。 値が NULL 以外の場合、拡張機能はメンバー aKeys にのみ基づいて読み込まれ、メンバー punkAssociationInfo には基づいて読み込まれません。

メモ キーの最大数は 16 です。 API では適用されないため、呼び出し元はこの制限を適用する必要があります。 これを行わないと、メモリが破損する可能性があります。
 

aKeys

型: const HKEY*

拡張機能の読み込み元のレジストリ キーを指定する HKEY へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 値が NULL の場合、拡張は punkAssociationInfo で指定されているインターフェイス IQueryAssociations をサポートする オブジェクトに基づいて読み込まれます。

解説

aKeys メンバーと cKeys メンバーが有効で、メンバー punkAssociationInfo も有効 (NULL ではない) 場合、システムは aKeyscKeys の値を使用してメニューを構築し、メンバー punkAssociationInfo (IQueryAssociations) を無視します。

メンバー apidlcidl は、IDataObject を取得する IShellFolder::GetUIObjectOf メソッドのパラメーターとして使用できます。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header shlobj_core.h (Shlobj.h を含む)