다음을 통해 공유


IMarshal::D isconnectObject 메서드(objidlbase.h)

개체에 대한 모든 연결을 해제합니다. 개체의 서버는 종료하기 전에 개체의 이 메서드 구현을 호출합니다.

구문

HRESULT DisconnectObject(
  [in] DWORD dwReserved
);

매개 변수

[in] dwReserved

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

반환 값

메서드가 성공하면 반환 값이 S_OK. 그렇지 않으면 E_FAIL.

설명

이 메서드는 프록시가 아닌 개체에 구현됩니다.

발신자에 대한 참고 사항

이 메서드가 호출되는 일반적인 경우는 최종 사용자가 IMarshal을 구현하는 하나 이상의 실행 중인 개체가 있는 COM 서버를 강제로 닫을 때 발생합니다. 종료하기 전에 서버는 CoDisconnectObject 함수를 호출하여 실행 중인 모든 개체에 대한 외부 연결을 해제합니다. 그러나 IMarshal을 구현하는 각 개체에 대해 이 함수는 DisconnectObject 를 호출하여 자체 마샬링을 관리하는 각 개체가 종료하려고 했음을 프록시에 알리는 단계를 수행할 수 있도록 합니다.

구현자에 대한 참고 사항

일반 종료 코드의 일부로 서버는 CoDisconnectObject를 호출해야 합니다. 그러면 IMarshal을 구현하는 실행 중인 각 개체에서 DisconnectObject를 호출합니다.

이 메서드의 구현 결과는 원래 개체에 대한 호출을 전달하지 않고 RPC_E_DISCONNECTED 또는 CO_E_OBJNOTCONNECTED 반환하여 프록시가 클라이언트의 모든 후속 호출에 응답할 수 있도록 하는 것입니다. 프록시를 삭제하는 것은 클라이언트의 입니다.

모니커와 같은 변경할 수 없는 개체에 대해 이 메서드를 구현하는 경우 이러한 개체는 일반적으로 클라이언트의 주소 공간에 전체적으로 복사되므로 구현에서 아무 작업도 수행할 필요가 없습니다. 따라서 프록시나 원래 개체에 대한 연결이 없습니다. 변경할 수 없는 개체를 마샬링하는 방법에 대한 자세한 내용은 IMarshal 항목의 "구현 시기" 섹션을 참조하세요.

요구 사항

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

추가 정보

CoDisconnectObject

IMarshal