CoRevokeClassObject 함수(combaseapi.h)
이전에 CoRegisterClassObject 함수에 등록된 클래스 개체를 더 이상 사용할 수 없음을 OLE에 알릴 수 있습니다.
구문
HRESULT CoRevokeClassObject(
[in] DWORD dwRegister
);
매개 변수
[in] dwRegister
이전에 CoRegisterClassObject 함수에서 반환된 토큰입니다.
반환 값
이 함수는 다음 값뿐만 아니라 E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
클래스 개체가 취소되었습니다. |
설명
CoRevokeClassObject를 성공적으로 호출하면 클래스 개체가 전역 클래스 개체 테이블에서 제거되었음을 의미합니다(클래스 개체를 해제하지는 않음). 다른 클라이언트에 여전히 클래스 개체에 대한 포인터가 있고 IUnknown::AddRef 호출로 인해 참조 수가 증가된 경우 참조 수는 0이 되지 않습니다. 이 경우 클래스 개체에 대한 후속 호출( AddRef 및 IUnknown::Release의 명백한 예외 포함)이 실패하는 경우 애플리케이션이 이점을 얻을 수 있습니다. CoRegisterClassObject는 AddRef를 호출하고 CoRevokeClassObject는 Release를 호출하므로 두 함수는 AddRef/릴리스 쌍을 형성합니다.
개체 애플리케이션은 프로그램을 종료하기 전에 CoRevokeClassObject 를 호출하여 등록된 클래스 개체를 해지해야 합니다. 클래스 개체 구현자는 릴리스 시퀀스의 일부로 CoRevokeClassObject 를 호출해야 합니다. CoRegisterClassObject 호출에서 REGCLS_SINGLEUSE 플래그 값을 지정한 경우에도 클래스 개체를 구체적으로 취소해야 하며, 이는 하나의 애플리케이션만 클래스 개체에 연결할 수 있음을 나타냅니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | combaseapi.h(Objbase.h 포함) |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |