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이고 멤버 aKeys 및 cKeys도 NULL인 경우(주의 참조) punkAssociationInfo는 IShellFolder::GetUIObjectOf를 통해 IQueryAssociations에 대한 요청을 통해 apidl 멤버 및 cidl에서 계산됩니다.
IShellFolder::GetUIObjectOf가 E_NOTIMPL 반환하는 경우 IShellFolder::GetAttributesOf에서 반환된 SFGAO_FOLDER 및 SFGAO_FILESYSTEM 특성에 따라 기본 구현이 제공됩니다.
cKeys
형식: UINT
멤버 aKeys의 항목 수입니다. 이 값은 0일 수 있습니다. 값이 0이면 펑크AssociationInfo 멤버에 지정된 대로 인터페이스 IQueryAssociations를 지원하는 개체에 따라 확장이 로드됩니다. 값이 NULL이 아닌 경우 확장은 멤버 펑크AssociationInfo가 아닌 멤버 aKeys를 기반으로 로드됩니다.
aKeys
형식: const HKEY*
확장을 로드할 레지스트리 키를 지정하는 HKEY에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 값이 NULL이면 extensions는 punkAssociationInfo에 지정된 대로 인터페이스 IQueryAssociations를 지원하는 개체를 기반으로 로드됩니다.
설명
aKeys 및 cKeys 멤버가 유효하고 member punkAssociationInfo도 유효하면(NULL이 아님) 시스템은 aKeys 및 cKeys 값을 사용하여 메뉴를 생성하고 member punkAssociationInfo(IQueryAssociations)를 무시합니다.
멤버 apidl 및 cidl 은 IShellFolder::GetUIObjectOf 메서드에 대한 매개 변수로 사용하여 IDataObject를 검색할 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
머리글 | shlobj_core.h(Shlobj.h 포함) |