CMINVOKECOMMANDINFO 구조체(shobjidl_core.h)
IContextMenu::InvokeCommand에서 바로 가기 메뉴 명령을 호출하는 데 필요한 정보를 포함합니다.
구문
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
멤버
cbSize
형식:DWORD
이 구조체의 크기(바이트)입니다.
fMask
형식:DWORD
0 또는 다음 플래그 중 하나 이상.
CMIC_MASK_HOTKEY
dwHotKey 멤버가 유효합니다.
CMIC_MASK_ICON
hIcon 멤버가 유효합니다. Windows Vista를 기준으로 이 플래그는 사용되지 않습니다.
CMIC_MASK_FLAG_NO_UI
명령을 수행하는 동안 시스템에서 사용자 인터페이스 요소(예: 오류 메시지)를 표시할 수 없습니다.
CMIC_MASK_NO_CONSOLE
바로 가기 메뉴 처리기가 새 프로세스를 만들어야 하는 경우 일반적으로 새 콘솔을 만듭니다. CMIC_MASK_NO_CONSOLE 플래그를 설정하면 새 콘솔 만들기가 표시되지 않습니다.
CMIC_MASK_FLAG_SEP_VDM
이 플래그는 16비트 Windows 기반 애플리케이션을 참조하는 경우에만 유효합니다. 설정된 경우 바로 가기가 가리키는 애플리케이션이 프라이빗 VDM(Virtual DOS Machine)에서 실행됩니다. 설명 부분을 참조하세요.
CMIC_MASK_ASYNCOK
반환하기 전에 DDE 대화가 종료되기를 기다립니다.
CMIC_MASK_NOASYNC
Windows Vista 이상. IContextMenu::InvokeCommand의 구현은 완료되기 전에 반환되지 않고 동기적이어야 합니다. 권장되므로 이 플래그를 지정하는 애플리케이션을 호출해도 호출하는 동사의 구현에 익숙하지 않은 경우 이 요청이 적용되도록 보장할 수 없습니다.
CMIC_MASK_SHIFT_DOWN
SHIFT 키를 누릅니다. 동사가 호출된 이후 변경되었을 수 있는 키보드의 현재 상태를 폴링하는 대신 사용합니다.
CMIC_MASK_CONTROL_DOWN
Ctrl 키를 누릅니다. 동사가 호출된 이후 변경되었을 수 있는 키보드의 현재 상태를 폴링하는 대신 사용합니다.
CMIC_MASK_FLAG_LOG_USAGE
IContextMenu::InvokeCommand의 구현이 "최근 문서" 메뉴와 같은 기능에 대해 호출되는 항목을 추적하려고 할 수 있음을 나타냅니다.
CMIC_MASK_NOZONECHECKS
영역 검사 수행하지 마세요. 이 플래그를 사용하면 ShellExecuteEx 가 IAttachmentExecute에 의해 배치된 영역 검사를 우회할 수 있습니다.
hwnd
형식: HWND
바로 가기 메뉴의 소유자인 창에 대한 핸들입니다. 확장은 이 핸들을 표시되는 메시지 상자 또는 대화 상자의 소유자로 사용할 수도 있습니다.
lpVerb
형식: LPCSTR
수행할 명령의 언어 독립적 이름을 지정하는 null로 끝나는 문자열의 주소입니다. 이 멤버는 일반적으로 애플리케이션에서 명령을 활성화할 때 문자열입니다. 시스템은 다음 명령 문자열에 대해 미리 정의된 상수 값을 제공합니다.
상수 | 명령 문자열 |
---|---|
CMDSTR_RUNAS | "RunAs" |
CMDSTR_PRINT | "인쇄" |
CMDSTR_PREVIEW | "미리 보기" |
CMDSTR_OPEN | "열기" |
고정 집합이 아닙니다. 새 정식 동사는 상황에 맞는 메뉴 처리기에서 발명할 수 있으며 애플리케이션은 이를 호출할 수 있습니다.
정식 동사가 있고 메뉴 처리기가 정식 동사를 구현하지 않는 경우 다음 처리기가 이 동사를 처리할 수 있도록 오류 코드를 반환해야 합니다. 이렇게 하지 않으면 ShellExecute를 비롯한 시스템의 기능이 중단됩니다.
또는 포인터 대신 이 매개 변수는 MAKEINTRESOURCE(오프셋)일 수 있습니다. 여기서 오프셋 은 수행할 명령의 메뉴 식별자 오프셋입니다. 구현에서는 IS_INTRESOURCE 매크로를 사용하여 이 대안이 사용되고 있음을 감지할 수 있습니다. 셸은 사용자가 메뉴 명령을 선택할 때 이 대안을 사용합니다.
lpParameters
형식: LPCSTR
명령에 전달되는 매개 변수를 포함하는 선택적 문자열입니다. 이 문자열의 형식은 호출할 명령에 의해 결정됩니다. 이 멤버는 셸 확장에 의해 삽입된 메뉴 항목에 대해 항상 NULL 입니다.
lpDirectory
형식: LPCSTR
선택적 작업 디렉터리 이름입니다. 이 멤버는 셸 확장에 의해 삽입된 메뉴 항목에 대해 항상 NULL 입니다.
nShow
형식: int
명령이 창을 표시하거나 애플리케이션을 시작하는 경우 ShowWindow 함수에 전달할 SW_ 값 집합입니다.
dwHotKey
형식:DWORD
명령에 의해 활성화된 모든 애플리케이션에 할당할 선택적 바로 가기 키입니다. fMask 매개 변수가 CMIC_MASK_HOTKEY 지정하지 않으면 이 멤버는 무시됩니다.
hIcon
형식: HANDLE
명령에 의해 활성화된 모든 애플리케이션에 사용할 아이콘입니다. fMask 멤버가 CMIC_MASK_ICON 지정하지 않으면 이 멤버는 무시됩니다.
설명
IContextMenu::InvokeCommand 선언은 pici 매개 변수에 대한 CMINVOKECOMMANDINFO 구조를 지정하지만 CMINVOKECOMMANDINFOEX 구조체를 수락할 수도 있습니다. 이 메서드를 구현하는 경우 cbSize 를 검사하여 전달된 구조를 확인해야 합니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | shobjidl_core.h(Shobjidl.h 포함) |