次の方法で共有


CDefFolderMenu_Create2関数 (shlobj_core.h)

選択したファイル フォルダー オブジェクトのグループのコンテキスト メニューを作成します。

構文

SHSTDAPI CDefFolderMenu_Create2(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in, optional] HWND                  hwnd,
                 UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IShellFolder          *psf,
  [in, optional] LPFNDFMCALLBACK       pfn,
                 UINT                  nKeys,
  [in, optional] const HKEY            *ahkeys,
  [out]          IContextMenu          **ppcm
);

パラメーター

[in, optional] pidlFolder

種類: PCIDLIST_ABSOLUTE

親フォルダーの ITEMIDLIST 構造体。 この値には NULL を指定できます。

[in, optional] hwnd

型: HWND

親ウィンドウへのハンドル。 この値には NULL を指定できます。

cidl

型: UINT

apidl が指す配列内の ITEMIDLIST 構造体の数。

[in, optional] apidl

種類: PCUITEMID_CHILD_ARRAY*

選択されている項目ごとに 1 つずつ、 ITEMIDLIST 構造体の配列へのポインター。

[in, optional] psf

種類: IShellFolder*

親フォルダーの IShellFolder インターフェイスへのポインター。 この IShellFolder は、IDataObject インターフェイスをサポートする必要があります。 そうでない場合、 CDefFolderMenu_Create2 は失敗し、E_NOINTERFACEを返します。 この値には NULL を指定できます。

[in, optional] pfn

型: LPFNDFMCALLBACK

LPFNDFMCALLBACK コールバック オブジェクト。 コールバック オブジェクトが不要な場合、この値は NULL にすることができます。

nKeys

型: UINT

ahkeys が指す配列内のレジストリ キーの数。

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

[in, optional] ahkeys

型: const HKEY*

メニューのエントリで使用されるコンテキスト メニュー ハンドラーを指定するレジストリ キーの配列へのポインター。 コンテキスト メニュー ハンドラーの詳細については、「コンテキスト メニュー ハンドラー の作成」を参照してください。 この配列には、最大 16 個のレジストリ キーを含めることができます。

[out] ppcm

型: IContextMenu**

この関数が正常に返されるときに、コンテキスト メニューを表す IContextMenu オブジェクトを指す IContextMenu インターフェイス ポインターのアドレス。

戻り値

型: HRESULT

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlobj_core.h (Shlobj.h を含む)
Library Shell32.lib
[DLL] Shell32.dll (バージョン 5.00 以降)

関連項目

SHCreateDefaultContextMenu