Estrutura DEFCONTEXTMENU (shlobj_core.h)

Contém informações de menu de contexto usadas por SHCreateDefaultContextMenu.

Sintaxe

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;

Membros

hwnd

Digite: HWND

Um identificador para o menu de contexto. Defina esse membro como o identificador retornado de CreateMenu.

pcmcb

Tipo: IContextMenuCB*

Um ponteiro para a interface IContextMenuCB compatível com o objeto de retorno de chamada. Esse valor é opcional e pode ser NULL.

pidlFolder

Tipo: PCIDLIST_ABSOLUTE

O PIDL da pasta que contém os objetos de arquivo selecionados ou a pasta do menu de contexto se nenhum objeto de arquivo estiver selecionado. Esse valor é opcional e pode ser NULL, nesse caso, o PIDL é calculado do membro psf .

psf

Tipo: IShellFolder*

Um ponteiro para a interface IShellFolder do objeto folder que contém os objetos de arquivo selecionados ou a pasta que contém o menu de contexto se nenhum objeto de arquivo estiver selecionado.

cidl

Tipo: UINT

A contagem de itens no apidl de membro.

apidl

Tipo: PCUITEMID_CHILD_ARRAY

Um ponteiro para uma matriz constante de estruturas ITEMIDLIST . Cada entrada na matriz descreve um item filho ao qual o menu de contexto se aplica, por exemplo, um arquivo selecionado que o usuário deseja abrir.

punkAssociationInfo

Tipo: IUnknown*

Um ponteiro para a interface IQueryAssociations no objeto do qual carregar extensões. Esse parâmetro é opcional e, portanto, pode ser NULL. Se esse valor for NULL e os membros aKeys e cKeys também forem NULL (consulte Comentários), punkAssociationInfo será calculado do membro apidl e cidl por meio de uma solicitação para IQueryAssociations por meio de IShellFolder::GetUIObjectOf.

Se IShellFolder::GetUIObjectOf retornar E_NOTIMPL, uma implementação padrão será fornecida com base nos atributos SFGAO_FOLDER e SFGAO_FILESYSTEM retornados de IShellFolder::GetAttributesOf.

cKeys

Tipo: UINT

A contagem de itens em aKeys membro. Esse valor pode ser zero. Se o valor for zero, as extensões serão carregadas com base no objeto que dá suporte a IQueryAssociations de interface, conforme especificado pelo membro punkAssociationInfo. Se o valor não for NULL, as extensões serão carregadas com base apenas no membro aKeys e não no membro punkAssociationInfo.

Nota O número máximo de chaves é 16. Os chamadores devem impor esse limite, pois a API não. Não fazer isso pode resultar em corrupção de memória.
 

aKeys

Tipo: const HKEY*

Um ponteiro para um HKEY que especifica a chave do Registro da qual carregar extensões. Esse parâmetro é opcional e pode ser NULL. Se o valor for NULL, as extensões serão carregadas com base no objeto que dá suporte a IQueryAssociations de interface, conforme especificado em punkAssociationInfo.

Comentários

Se os membros aKeys e cKeys forem válidos e o membro punkAssociationInfo também for válido (não NULL), o sistema construirá o menu usando os valores de aKeys e cKeys e ignorará o membro punkAssociationInfo (IQueryAssociations).

Os membros apidl e cidl podem ser usados como parâmetros para o método IShellFolder::GetUIObjectOf para recuperar IDataObject.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho shlobj_core.h (inclua Shlobj.h)