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

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

구문

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

매개 변수

[in] iMethod

메서드 번호입니다.

[in] pBuffer

마샬링된 매개 변수를 포함하는 버퍼에 대한 포인터입니다.

[in] cbBuffer

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

[in] ibFirstRelease

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

[in] dataRep

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

[in] pcontext

경계를 해제할 컨텍스트에 대한 정보를 포함하는 CALLFRAME_MARSHALCONTEXT 구조체에 대한 포인터입니다.

반환 값

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

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

설명

마샬링된 버퍼에 보관된 리소스를 클린 위해 ReleaseMarshalData 메서드를 호출해야 합니다. 그러나 MSHLFLAGS 열거형이 정상으로 설정된 경우 이 작업은 경계를 해제할 때 자동으로 수행됩니다.

ReleaseMarshalData 는 마샬링된 매개 변수 및 외부 매개 변수 모두에서 사용할 수 있습니다.

요구 사항

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

추가 정보

ICallUnmarshal