IContextMenu::InvokeCommand 메서드(shobjidl_core.h)

바로 가기 메뉴 항목과 연결된 명령을 수행합니다.

구문

HRESULT InvokeCommand(
  CMINVOKECOMMANDINFO *pici
);

매개 변수

pici

형식: LPCMINVOKECOMMANDINFO

명령에 대한 세부 정보를 포함하는 CMINVOKECOMMANDINFO 또는 CMINVOKECOMMANDINFOEX 구조체에 대한 포인터입니다.

반환 값

형식: HRESULT

이 메서드가 성공하면 S_OK 반환합니다. 그렇지 않으면 HRESULT 오류 코드를 반환합니다.

설명

IContextMenu 인터페이스는 여러 셸 확장 처리기 및 네임스페이스 확장에서 내보냅니다. 바로 가기 메뉴에 명령을 추가하는 데 사용됩니다. 사용자가 처리기 또는 네임스페이스 확장이 바로 가기 메뉴에 추가한 명령 중 하나를 선택하면 셸은 해당 명령의 InvokeCommand 메서드를 호출합니다. 이 명령은 메뉴 식별자 오프셋, IContextMenu::QueryContextMenu 가 호출된 경우 또는 연결된 동사로 정의하여 지정할 수 있습니다. 애플리케이션은 개체의 IContextMenu 인터페이스에 대한 포인터를 가져와서 이 메서드를 직접 호출할 수 있습니다. 또한 애플리케이션은 ShellExecute 또는 ShellExecuteEx를 호출하고 네임스페이스 확장 또는 처리기에서 지원하는 동사를 지정하여 이 메서드를 간접적으로 호출할 수 있습니다.

사용자에게 참고 사항

pici 매개 변수는 Shlobj.h에서 CMINVOKECOMMANDINFO 구조체로 선언되지만 CMINVOKECOMMANDINFO 또는 CMINVOKECOMMANDINFOEX를 사용할 수 있습니다. 둘 중 하나가 ANSI 문자열에 대해 작동하지만 유니코드 문자열에 대해 CMINVOKECOMMANDINFOEX 구조를 사용해야 합니다.

구현자에 대한 참고 사항

picicbSize 멤버를 확인하여 전달된 구조체(CMINVOKECOMMANDINFO 또는 CMINVOKECOMMANDINFOEX)를 확인합니다. CMINVOKECOMMANDINFOEX 구조체이고 fMask 멤버에 CMIC_MASK_UNICODE 플래그가 설정된 경우 피CMINVOKECOMMANDINFOEX로 캐스팅하여 구조체의 마지막 5개 멤버에 포함된 유니코드 정보를 사용해야 합니다.

정식 동사 이름 또는 명령 ID로 지정된 동사가 상황에 맞는 메뉴 처리기에서 인식되지 않는 경우 동사를 구현할 수 있는 다른 상황에 맞는 메뉴 처리기에 전달할 수 있도록 실패(E_FAIL)를 반환해야 합니다.

Windows Vista에서는 CMINVOKECOMMANDINFO 또는 CMINVOKECOMMANDINFOEX 구조체의 fMask 멤버에서 CMIC_MASK_ASYNCOK 플래그를 설정하여 명령을 비동기적으로 호출하는 것만으로는 충분하지 않습니다. 또한 스레드 참조 관리에 설명된 대로 호출 스레드에 스레드 참조를 설정해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)
DLL Shell32.dll(버전 4.0 이상)

추가 정보

IContextMenu