IRunnableObject::Run 메서드(objidl.h)

개체를 강제로 실행합니다.

구문

HRESULT Run(
  [in] LPBINDCTX pbc
);

매개 변수

[in] pbc

실행 작업의 바인딩 컨텍스트에 대한 포인터입니다. IBindCtx를 참조하세요. 이 매개 변수는 NULL일 수 있습니다.

반환 값

이 메서드는 표준 반환 값 E_INVALIDARG, E_UNEXPECTED 및 S_OK 반환할 수 있습니다.

설명

컨테이너는 IRunnableObject::Run 을 호출하여 개체가 실행 중 상태로 들어가도록 합니다. 개체가 아직 실행되고 있지 않은 경우 Run 을 호출하는 작업은 몇 초의 순서로 비용이 많이 들 수 있습니다. 개체가 이미 실행 중인 경우 이 메서드는 개체에 영향을 주지 않습니다.

발신자에게 참고 사항

링크가 마지막으로 활성화된 이후 새 클래스로 변환된 연결된 개체에서 호출되면 IRunnableObject::Run 에서 OLE_E_CLASSDIFF 반환할 수 있습니다. 이 경우 클라이언트는 IOleLink::BindToSource를 호출해야 합니다.

OleRunIRunnableObject::Run에서 제공하는 기능을 편리하게 다시 패키징하는 도우미 함수입니다. OLE 2.01 릴리스에서는 QueryInterface를 호출하고 IRunnableObject를 요청한 다음 IRunnableObject::Run을 호출하도록 OleRun 구현이 변경되었습니다. 즉, 인터페이스와 도우미 함수를 서로 바꿔 사용할 수 있습니다.

구현자에 대한 참고 사항

개체가 할당된 모니커가 있는 경우 실행 중인 개체 테이블에 등록해야 합니다. 개체 자체에 강력한 잠금이 있으면 안 됩니다. 대신 불안정하고 잠금 해제된 상태로 유지되어야 합니다. 개체에 대한 첫 번째 외부 연결을 만들 때 개체를 잠가야 합니다.

포함된 개체는 실행 중 상태인 동안 포함 컨테이너에 대한 잠금을 보유해야 합니다. OLE 2에서 제공하는 기본 처리기는 EXE 개체 애플리케이션에서 구현된 개체를 대신하여 포함 컨테이너를 잠급니다. DLL 개체 애플리케이션에서 구현된 개체는 포함 컨테이너에 대한 잠금을 명시적으로 설정해야 합니다. 이 컨테이너는 먼저 IOleClientSite::GetContainer 를 호출하여 컨테이너에 대한 포인터를 가져오고 IOleContainer::LockContainer 를 호출하여 실제로 잠금을 배치합니다. IOleObject::Close가 호출될 때 이 잠금을 해제해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 objidl.h

추가 정보

IRunnableObject

OleRun