CoMarshalInterThreadInterfaceInStream 함수(combaseapi.h)

동일한 프로세스에서 한 스레드에서 다른 스레드로 인터페이스 포인터를 마샬링합니다.

구문

HRESULT CoMarshalInterThreadInterfaceInStream(
  [in]  REFIID    riid,
  [in]  LPUNKNOWN pUnk,
  [out] LPSTREAM  *ppStm
);

매개 변수

[in] riid

마샬링할 인터페이스의 식별자에 대한 참조입니다.

[in] pUnk

마샬링할 인터페이스에 대한 포인터로, IUnknown에서 파생되어야 합니다. 이 매개 변수는 NULL일 수 있습니다.

[out] ppStm

마샬링된 인터페이스가 포함된 스트림에 대한 인터페이스 포인터를 수신하는 IStream* 포인터 변수의 주소입니다.

반환 값

이 함수는 E_OUTOFMEMORY 및 S_OK 표준 반환 값을 반환할 수 있습니다.

설명

CoMarshalInterThreadInterfaceInStream 함수를 사용하면 개체가 동일한 프로세스의 다른 스레드에 대한 인터페이스 포인터를 쉽고 안정적으로 마샬링할 수 있습니다. ppStm 매개 변수에 반환된 스트림은 수신 스레드에서 실행 중인 클라이언트가 포인터를 분리하려고 할 때 올바르게 동작하도록 보장됩니다. 그런 다음 클라이언트는 CoGetInterfaceAndReleaseStream 을 호출하여 인터페이스 포인터를 숨기지 않고 스트림 개체를 해제할 수 있습니다.

CoMarshalInterThreadInterfaceInStream 함수는 다음 작업을 수행합니다.

  1. 스트림 개체를 만듭니다.
  2. 스트림 개체의 IStream 포인터를 CoMarshalInterface에 전달합니다.
  3. 호출자에 대한 IStream 포인터를 반환합니다.

요구 사항

요구 사항 값
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 combaseapi.h(Objbase.h 포함)
라이브러리 Ole32.lib
DLL Ole32.dll

추가 정보

CoGetInterfaceAndReleaseStream