다음을 통해 공유


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 구조체의 상수 배열에 대한 포인터입니다. 배열의 각 항목은 상황에 맞는 메뉴가 적용되는 자식 항목을 설명하며, instance 사용자가 열려고 하는 선택한 파일을 설명합니다.

punkAssociationInfo

형식: IUnknown*

확장을 로드할 개체의 IQueryAssociations 인터페이스에 대한 포인터입니다. 이 매개 변수는 선택 사항이므로 NULL일 수 있습니다. 이 값이 NULL이고 멤버 aKeyscKeysNULL인 경우(주의 참조) punkAssociationInfoIShellFolder::GetUIObjectOf를 통해 IQueryAssociations에 대한 요청을 통해 apidl 멤버 및 cidl에서 계산됩니다.

IShellFolder::GetUIObjectOfE_NOTIMPL 반환하는 경우 IShellFolder::GetAttributesOf에서 반환된 SFGAO_FOLDERSFGAO_FILESYSTEM 특성에 따라 기본 구현이 제공됩니다.

cKeys

형식: UINT

멤버 aKeys의 항목 수입니다. 이 값은 0일 수 있습니다. 값이 0이면 펑크AssociationInfo 멤버에 지정된 대로 인터페이스 IQueryAssociations를 지원하는 개체에 따라 확장이 로드됩니다. 값이 NULL이 아닌 경우 확장은 멤버 펑크AssociationInfo가 아닌 멤버 aKeys를 기반으로 로드됩니다.

참고 최대 키 수는 16개입니다. 호출자는 API가 적용하지 않으므로 이 제한을 적용해야 합니다. 이렇게 하지 않으면 메모리가 손상될 수 있습니다.
 

aKeys

형식: const HKEY*

확장을 로드할 레지스트리 키를 지정하는 HKEY에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 값이 NULL이면 extensions는 punkAssociationInfo에 지정된 대로 인터페이스 IQueryAssociations를 지원하는 개체를 기반으로 로드됩니다.

설명

aKeyscKeys 멤버가 유효하고 member punkAssociationInfo도 유효하면(NULL이 아님) 시스템은 aKeyscKeys 값을 사용하여 메뉴를 생성하고 member punkAssociationInfo(IQueryAssociations)를 무시합니다.

멤버 apidlcidlIShellFolder::GetUIObjectOf 메서드에 대한 매개 변수로 사용하여 IDataObject를 검색할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 shlobj_core.h(Shlobj.h 포함)