다음을 통해 공유


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