다음을 통해 공유


EXCEPINFO 구조체(oaidl.h)

IDispatch::Invoke 중에 발생한 예외에 대해 설명합니다.

구문

typedef struct tagEXCEPINFO {
  WORD      wCode;
  WORD      wReserved;
  BSTR      bstrSource;
  BSTR      bstrDescription;
  BSTR      bstrHelpFile;
  DWORD     dwHelpContext;
  ULONG_PTR pvReserved;
  ULONG_PTR pfnDeferredFillIn;
  SCODE     scode;
} EXCEPINFO, *LPEXCEPINFO;

멤버

wCode

오류 코드입니다. 오류 코드는 1000보다 커야 합니다. 이 필드 또는 코드 필드를 채워야 합니다. 다른 하나는 0으로 설정해야 합니다.

wReserved

예약되어 있습니다. 0이어야 합니다.

bstrSource

예외 원본의 이름입니다. 일반적으로 이 이름은 애플리케이션 이름입니다. 이 필드는 IDispatch의 구현자가 입력해야 합니다.

bstrDescription

표시할 예외 설명입니다. 설명을 사용할 수 없는 경우 null을 사용합니다.

bstrHelpFile

정규화된 도움말 파일 경로입니다. 도움말을 사용할 수 없는 경우 null을 사용합니다.

dwHelpContext

도움말 컨텍스트 ID입니다.

pvReserved

예약되어 있습니다. Null이어야 합니다.

pfnDeferredFillIn

지연된 채우기를 제공합니다. 지연된 채우기를 원하지 않는 경우 이 필드를 null로 설정해야 합니다.

scode

오류를 설명하는 반환 값입니다. 이 필드 또는 wCode(둘 다 아님)를 채워야 합니다. 다른 하나는 0으로 설정해야 합니다. (16비트 Windows 버전만 해당)

설명

pfnDeferredFillIn 필드를 사용하여 개체가 필요할 때까지 bstrDescription, bstrHelpFiledwHelpContext 필드 채우기를 연기할 수 있도록 합니다. 예를 들어 오류에 대한 문자열을 로드하는 것이 시간이 많이 걸리는 작업인 경우 이 필드를 사용할 수 있습니다. 지연된 채우기를 사용하려면 개체가 이 슬롯에 함수 포인터를 배치하고 필요한 wCode를 제외한 다른 필드를 채우지 않습니다.

추가 정보를 가져오기 위해 호출자는 EXCEPINFO 구조를 pexcepinfo 콜백 함수로 다시 전달하여 추가 정보를 채웁니다. ActiveX 개체와 ActiveX 클라이언트가 서로 다른 프로세스에 있는 경우 ActiveX 개체는 컨트롤러로 돌아가기 전에 pfnDeferredFillIn 을 호출합니다.

요구 사항

요구 사항
헤더 oaidl.h