CoGetMarshalSizeMax 함수(combaseapi.h)
지정된 인터페이스 포인터를 지정된 개체로 마샬링하는 데 필요한 바이트 수의 상한을 반환합니다.
HRESULT CoGetMarshalSizeMax(
[out] ULONG *pulSize,
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwDestContext,
[in, optional] LPVOID pvDestContext,
[in] DWORD mshlflags
);
[out] pulSize
마샬링 스트림에 쓸 데이터 패킷의 크기(바이트)에 대한 상한 값에 대한 포인터입니다. 이 매개 변수가 0이면 패킷 크기를 알 수 없습니다.
[in] riid
포인터를 마샬링할 인터페이스의 식별자에 대한 참조입니다. 이 인터페이스는 IUnknown 인터페이스에서 파생되어야 합니다.
[in] pUnk
마샬링할 인터페이스에 대한 포인터입니다. 이 인터페이스는 IUnknown 인터페이스에서 파생되어야 합니다.
[in] dwDestContext
지정된 인터페이스를 숨기지 않을 대상 컨텍스트입니다. dwDestContext의 값은 열거형 MSHCTX에서 가져옵니다.
[in, optional] pvDestContext
이 매개 변수는 예약되어 있으며 NULL이어야 합니다.
[in] mshlflags
마샬링할 데이터를 클라이언트 프로세스로 다시 전송할지 아니면 여러 클라이언트에서 검색할 수 있는 전역 테이블에 쓸지 여부를 나타냅니다. 값은 열거형 MSHLFLAGS에서 가져옵니다.
이 함수는 E_UNEXPECTED 표준 반환 값과 다음 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
상한이 성공적으로 반환되었습니다. |
|
이 함수를 호출하려면 CoInitialize 또는 OleInitialize 함수를 호출해야 합니다. |
이 함수는 다음 작업을 수행합니다.
- 개체에서 IMarshal 포인터를 쿼리하거나 개체가 IMarshal을 구현하지 않으면 COM의 표준 마샬러에 대한 포인터를 가져옵니다.
- 이전 항목에서 가져온 포인터를 사용하여 IMarshal::GetMarshalSizeMax를 호출합니다.
- GetMarshalSizeMax 호출에서 반환되는 값에 마샬링 데이터 헤더의 크기 및 프록시 CLSID의 값을 추가하여 마샬링 스트림에 쓸 데이터의 최대 크기(바이트)를 가져옵니다.
이 메서드에서 반환된 값은 마샬링되는 개체의 내부 상태가 변경되지 않는 한 유효합니다. 따라서 이 함수가 반환된 직후에 실제 마샬링이 수행되어야 합니다. 또는 스텁은 상태의 일부 변경으로 인해 원래 표시된 것보다 더 많은 메모리를 마샬링해야 할 수 있는 위험을 실행합니다.
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | combaseapi.h(Objbase.h 포함) |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |