ICallFrame::ReleaseMarshalData 메서드(callobj.h)

마샬링된 데이터 패킷에 있는 인터페이스 포인터에 의해 유지되는 리소스를 해제합니다. 이 메서드는 패킷의 모든 인터페이스 포인터를 찾아 각각 에 대해 CoReleaseMarshalData 함수를 호출합니다.

구문

HRESULT ReleaseMarshalData(
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

매개 변수

[in] pBuffer

마샬링된 [out] 값을 포함하는 버퍼에 대한 포인터입니다.

[in] cbBuffer

버퍼의 크기(바이트)입니다.

[in] ibFirstRelease

해제할 버퍼의 첫 번째 바이트입니다. 값이 0이면 전체 버퍼의 인터페이스 포인터를 해제해야 합니다. 마샬링된 인터페이스 포인터는 다른 메커니즘에 의해 해제된 것으로 간주됩니다.

[in] dataRep

데이터가 마샬링된 데이터 표현입니다.

[in] pcontext

마샬링 해제가 수행되는 방법에 대한 컨텍스트 정보를 포함하는 CALLFRAME_MARSHALCONTEXT 구조체에 대한 포인터입니다.

반환 값

이 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 완료되었습니다.
E_UNEXPECTED
예기치 않은 오류가 발생했습니다.

설명

마샬링된 버퍼에 보관된 리소스를 클린 위해 ReleaseMarshalData 메서드를 정확히 한 번 호출해야 합니다. 그러나 MSHLFLAGS 열거형이 MSHLFLAGS_NORMAL 설정되면 마샬링 해제 중에 자동으로 수행되므로 명시적으로 수행할 필요가 없습니다.

이 메서드는 마샬링된 [in] 및 [out] 매개 변수 모두에서 올바르게 작동할 수 있습니다.

요구 사항

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

추가 정보

ICallFrame