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,且aKeyscKeys成員也是Null (請參閱備註) ,則 punkAssociationInfo會從apidl成員計算,並透過透過 IShellFolder::GetUIObjectOfIQueryAssociations要求來計算 cidl

如果IShellFolder::GetUIObjectOf傳回E_NOTIMPL,則會根據IShellFolder::GetAttributesOf傳回的SFGAO_FOLDER和SFGAO_FILESYSTEM屬性來提供預設實作。

cKeys

類型: UINT

成員 aKeys中的專案計數。 此值可以是零。 如果值為零,則會根據支援成員punkAssociationInfo所指定之介面IQueryAssociations的物件載入延伸模組。 如果值為非 Null,則延伸模組只會根據成員 aKeys 載入,而不是成員 punkAssociationInfo

注意 索引鍵數目上限為 16。 呼叫端必須強制執行此限制,因為 API 不會。 若無法這麼做,可能會導致記憶體損毀。
 

aKeys

類型: const HKEY*

HKEY 的指標,指定要從中載入延伸模組的登錄機碼。 這個參數是選擇性的,而且可以是 Null。 如果值為Null,則會根據支援在 punkAssociationInfo 中指定的介面 IQueryAssociations物件載入延伸模組。

備註

如果 aKeyscKeys 成員有效,而且成員 punkAssociationInfo 也有效 (非 Null) ,則系統會使用 aKeyscKeys的值來建構功能表,並忽略成員 punkAssociationInfo (IQueryAssociations) 。

成員 apidlcidl 可用來做為 IShellFolder::GetUIObjectOf 方法的參數來擷取 IDataObject

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 shlobj_core.h (包含 Shlobj.h)