다음을 통해 공유


IAssocHandler::Invoke 메서드(shobjidl_core.h)

연결된 처리기를 직접 호출합니다.

구문

HRESULT Invoke(
  [in] IDataObject *pdo
);

매개 변수

[in] pdo

형식: IDataObject*

처리기를 호출할 선택한 항목을 나타내는 IDataObject 에 대한 포인터입니다. 여러 항목을 선택하여 IAssocHandler::Invoke 를 호출하면 안 됩니다. 여러 항목이 있는 경우 대신 IAssocHandler::CreateInvoker 를 호출합니다. 자세한 내용은 비고를 참조하세요.

반환 값

형식: HRESULT

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

설명

IAssocHandler 개체는 일반적으로 열기 메뉴를 채우는 데 사용됩니다. 이러한 메뉴 항목 중 하나를 선택하면 이 메서드가 호출되어 선택한 애플리케이션을 시작합니다.

Invoke 및 CreateInvoker

이러한 메서드에서 사용하는 IDataObject 는 단일 파일 또는 여러 파일 선택을 나타낼 수 있습니다. 모든 애플리케이션이 여러 파일 옵션을 지원하는 것은 아닙니다. 이 시나리오를 지원하는 애플리케이션은 동시에 열 수 있는 파일 수 또는 파일 형식의 허용 가능한 조합과 같은 다른 제한을 적용할 수 있습니다.

따라서 애플리케이션은 처리기를 호출하기 전에 처리기가 선택 영역을 지원하는지 여부를 결정해야 하는 경우가 많습니다. 예를 들어 애플리케이션은 해당 처리기에서 해당 선택 항목이 지원되는지 확인한 경우에만 메뉴 항목을 사용하도록 설정할 수 있습니다.

일반적으로 애플리케이션이 단일 항목에 대한 호출을 지원한다고 가정하는 것이 안전하며, 이러한 경우 애플리케이션은 일반적으로 해당 가정에 따라 IAssocHandler::Invoke 를 호출합니다.

그러나 여러 선택 시나리오의 경우 애플리케이션에서 IAssocHandler::CreateInvoker를 호출해야 합니다. 이 메서드는 호출 애플리케이션이 선택 영역이 지원되는지(SupportsSelection)를 먼저 검사 처리기(Invoke)를 호출할 수 있도록 하는 IAssocHandlerInvoker 개체를 검색합니다.

IAssocHandler::Invoke 는 여러 파일 선택에서 호출할 수 있지만, 관련된 처리 부하가 크고 성공한다는 보장이 없기 때문에 권장되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)