DllCanUnloadNow 함수(combaseapi.h)

이 함수를 구현하는 DLL이 사용 중인지 여부를 확인합니다. 그렇지 않은 경우 호출자는 메모리에서 DLL을 언로드할 수 있습니다.

OLE는 이 함수를 제공하지 않습니다. OLE COM(구성 요소 개체 모델)을 지원하는 DLL은 DllCanUnloadNow를 구현하고 내보내야 합니다.

구문

HRESULT DllCanUnloadNow();

반환 값

함수가 성공하면 반환 값이 S_OK. 그렇지 않으면 S_FALSE.

설명

DllCanUnloadNow에 대한 호출은 내보낸 DLL이 여전히 사용 중인지 여부를 결정합니다. DLL은 기존 개체를 관리하지 않을 때 더 이상 사용되지 않습니다(모든 개체에 대한 참조 수는 0임).

발신자에 대한 참고 사항

DllCanUnloadNow를 직접 호출할 필요가 없습니다. OLE는 CoFreeUnusedLibraries 함수에 대한 호출을 통해서만 호출합니다. S_OK 반환하면 CoFreeUnusedLibraries 가 DLL을 해제합니다.

구현자에 대한 참고 사항

에서 DllCanUnloadNow를 구현하고 CoGetClassObject 함수에 대한 호출을 통해 동적으로 로드할 DLL에서 내보내야 합니다. 또한 동일한 DLL에서 DllGetClassObject 함수를 구현하고 내보내야 합니다.

CoGetClassObject 호출을 통해 로드된 DLL이 DllCanUnloadNow를 내보내지 못하면 애플리케이션이 CoUninitialize 함수를 호출하여 OLE 라이브러리를 해제할 때까지 DLL이 언로드되지 않습니다.

DLL이 관리하는 개체에 대한 기존 참조가 있는 경우 DllCanUnloadNow는 S_FALSE 반환해야 합니다.

요구 사항

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

추가 정보

DllGetClassObject