CoRevokeClassObject 함수(combaseapi.h)

이전에 CoRegisterClassObject 함수에 등록된 클래스 개체를 더 이상 사용할 수 없음을 OLE에 알릴 수 있습니다.

구문

HRESULT CoRevokeClassObject(
  [in] DWORD dwRegister
);

매개 변수

[in] dwRegister

이전에 CoRegisterClassObject 함수에서 반환된 토큰입니다.

반환 값

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

반환 코드 설명
S_OK
클래스 개체가 취소되었습니다.

설명

CoRevokeClassObject를 성공적으로 호출하면 클래스 개체가 전역 클래스 개체 테이블에서 제거되었음을 의미합니다(클래스 개체를 해제하지는 않음). 다른 클라이언트에 여전히 클래스 개체에 대한 포인터가 있고 IUnknown::AddRef 호출로 인해 참조 수가 증가된 경우 참조 수는 0이 되지 않습니다. 이 경우 클래스 개체에 대한 후속 호출( AddRefIUnknown::Release의 명백한 예외 포함)이 실패하는 경우 애플리케이션이 이점을 얻을 수 있습니다. CoRegisterClassObjectAddRef를 호출하고 CoRevokeClassObjectRelease를 호출하므로 두 함수는 AddRef/릴리스 쌍을 형성합니다.

개체 애플리케이션은 프로그램을 종료하기 전에 CoRevokeClassObject 를 호출하여 등록된 클래스 개체를 해지해야 합니다. 클래스 개체 구현자는 릴리스 시퀀스의 일부로 CoRevokeClassObject 를 호출해야 합니다. CoRegisterClassObject 호출에서 REGCLS_SINGLEUSE 플래그 값을 지정한 경우에도 클래스 개체를 구체적으로 취소해야 하며, 이는 하나의 애플리케이션만 클래스 개체에 연결할 수 있음을 나타냅니다.

요구 사항

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

추가 정보

CoGetClassObject

CoRegisterClassObject