CoDisableCallCancellation 함수(combaseapi.h)

CoEnableCallCancellation에 대한 호출 작업을 실행 취소합니다. CoEnableCallCancellation에 대한 모든 호출이 CoDisableCallCancellation 호출에 의해 균형을 이루면 호출 스레드에서 동기 호출 취소를 사용하지 않도록 설정합니다.

구문

HRESULT CoDisableCallCancellation(
  [in, optional] LPVOID pReserved
);

매개 변수

[in, optional] pReserved

이 매개 변수는 예약되어 있으며 NULL이어야 합니다.

반환 값

이 함수는 다음 값뿐만 아니라 표준 반환 값 E_FAIL, E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 반환할 수 있습니다.

반환 코드 설명
S_OK
스레드에서 호출 취소를 사용하지 않도록 설정했습니다.
CO_E_CANCEL_DISABLED
CoDisableCallCancellation에 대한 호출보다 스레드에서 CoEnableCallCancellation에 대한 호출이 더 성공적이었습니다. 스레드에서 취소가 계속 활성화되어 있습니다.

설명

스레드에서 호출 취소를 사용하도록 설정하면 해당 스레드에서 동일한 컴퓨터의 개체로 마샬링된 동기 호출이 심각한 성능 저하를 겪을 수 있습니다. 기본적으로 취소 개체를 사용할 수 있더라도 동기 호출을 취소할 수 없습니다. 호출 취소를 사용하도록 설정하려면 먼저 CoEnableCallCancellation 을 호출해야 합니다.

호출 취소를 사용하지 않도록 설정하면 호출 개체에 대한 포인터를 얻으려는 시도가 실패합니다. 호출 스레드에 호출 개체에 대한 포인터가 이미 있는 경우 해당 개체에 대한 호출이 실패합니다.

스레드에서 항상 호출 취소를 사용하도록 설정하지 않으려면 CoEnableCallCancellation에 대한 호출을 CoDisableCallCancellation 호출과 페어링해야 합니다. CoEnableCallCancellation에 대한 각 성공적인 호출이 CoDisableCallCancellation에 대한 성공적인 호출에 의해 균형을 맞추는 경우에만 호출 취소가 비활성화됩니다.

호출이 이루어진 시점의 스레드 상태에 따라 호출을 취소할 수 있거나 취소할 수 없습니다. 이후에 호출 취소를 사용하거나 사용하지 않도록 설정해도 스레드에서 보류 중인 호출에는 영향을 주지 않습니다.

스레드가 초기화되지 않은 다음 CoUninitializeCoInitialize 호출로 다시 초기화되는 경우 스레드가 초기화되지 않은 경우에도 스레드에서 호출 취소를 사용할 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 combaseapi.h(Objbase.h 포함)
라이브러리 Ole32.lib
DLL Ole32.dll

추가 정보

CoEnableCallCancellation

ICancelMethodCalls