다음을 통해 공유


IMarshal::ReleaseMarshalData 메서드(objidlbase.h)

마샬링된 데이터 패킷을 삭제합니다.

구문

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

매개 변수

[in] pStm

삭제할 데이터 패킷을 포함하는 스트림에 대한 포인터입니다.

반환 값

이 메서드는 S_OK 및 E_FAIL 표준 반환 값과 IStream 인터페이스에 대한 스트림 액세스 오류를 반환할 수 있습니다.

설명

클라이언트 프로세스 공간에서 개체의 마샬링된 데이터 패킷이 숨기지 않고 패킷이 더 이상 필요하지 않은 경우 클라이언트는 프록시의 IMarshal 구현에서 ReleaseMarshalData를 호출하여 개체에 데이터 패킷 을 삭제하도록 지시합니다. 호출은 CoReleaseMarshalData 함수 내에서 발생합니다. 데이터 패킷은 개체에 대한 추가 참조 역할을 하며, 데이터를 해제하는 것은 Release를 호출하여 인터페이스 포인터를 해제하는 것과 같습니다.

마샬링된 데이터 패킷이 클라이언트 프로세스에 도착하지 않거나 ReleaseMarshalData 가 프록시에서 성공적으로 다시 생성되지 않은 경우 COM은 개체 자체에서 이 메서드를 호출할 수 있습니다.

발신자에 대한 참고 사항

이 메서드를 직접 호출할 기회가 있는 경우는 거의 없습니다. 가능한 예외는 IMarshal 을 구현하는 클래스 개체에 대한 클래스 팩터리에서 IMarshal을 구현하는 경우입니다. 이 경우 개체를 여러 클라이언트에서 검색할 수 있는 테이블로 마샬링하는 경우 경계를 해제하는 루틴의 일부로 ReleaseMarshalData 를 호출하여 각 프록시에 대한 데이터 패킷을 해제할 수 있습니다.

구현자에 대한 참고 사항

구현에서 마샬링된 데이터 패킷에 대한 상태 정보를 저장하는 경우 이 메서드를 사용하여 pStm으로 표시되는 데이터 패킷과 연결된 상태 정보를 해제할 수 있습니다. 또한 구현은 데이터의 마지막 바이트를 지나 스트림에 검색 포인터를 배치해야 합니다.

요구 사항

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

추가 정보

CoReleaseMarshalData

IMarshal