FtmBase 클래스

자유 스레드된 마샬러 개체를 나타냅니다.

구문

class FtmBase :
    public Microsoft::WRL::Implements<
        Microsoft::WRL::RuntimeClassFlags<WinRtClassicComMix>,
        Microsoft::WRL::CloakedIid<IMarshal>
    >;

설명

자세한 내용은 RuntimeClass 클래스를 참조 하세요.

멤버

공용 생성자

속성 설명
FtmBase::FtmBase FtmBase 클래스의 새 인스턴스를 초기화합니다.

공용 메서드

이름 설명
FtmBase::CreateGlobalInterfaceTable GIT(전역 인터페이스 테이블)를 만듭니다.
FtmBase::D isconnectObject 개체에 대한 모든 외부 연결을 강제로 해제합니다. 개체의 서버는 종료하기 전에 이 메서드의 개체 구현을 호출합니다.
FtmBase::GetMarshalSizeMax 지정된 개체에서 지정된 인터페이스 포인터를 마샬링하는 데 필요한 바이트 수의 상한을 가져옵니다.
FtmBase::GetUnmarshalClass COM에서 해당 프록시에 대한 코드가 포함된 DLL을 찾는 데 사용하는 CLSID를 가져옵니다. COM은 이 DLL을 로드하여 초기화되지 않은 프록시 인스턴스를 만듭니다.
FtmBase::MarshalInterface 일부 클라이언트 프로세스에서 프록시 개체를 초기화하는 데 필요한 데이터를 스트림에 씁니다.
FtmBase::ReleaseMarshalData 마샬링된 데이터 패킷을 제거합니다.
FtmBase::UnmarshalInterface 새로 만든 프록시를 초기화하고 해당 프록시에 대한 인터페이스 포인터를 반환합니다.

공용 데이터 멤버

이름 설명
FtmBase::marshaller_ 자유 스레드 마샬러에 대한 참조를 보유합니다.

상속 계층 구조

FtmBase

요구 사항

헤더: ftm.h

네임스페이스: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

GIT(전역 인터페이스 테이블)를 만듭니다.

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

매개 변수

git
이 작업이 완료되면 전역 인터페이스 테이블에 대한 포인터입니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 오류를 나타내는 HRESULT입니다.

설명

자세한 내용은 IGlobalInterfaceTable를 참조하세요.

FtmBase::D isconnectObject

개체에 대한 모든 외부 연결을 강제로 해제합니다. 개체의 서버는 종료하기 전에 이 메서드의 개체 구현을 호출합니다.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

매개 변수

dwReserved
나중에 사용하도록 예약되어 있습니다. 0이어야 합니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 오류를 나타내는 HRESULT입니다.

FtmBase::FtmBase

FtmBase 클래스의 새 인스턴스를 초기화합니다.

FtmBase();

FtmBase::GetMarshalSizeMax

지정된 개체에서 지정된 인터페이스 포인터를 마샬링하는 데 필요한 바이트 수의 상한을 가져옵니다.

STDMETHODIMP GetMarshalSizeMax(
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags,
   __out DWORD *pSize
) override;

매개 변수

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

pv
마샬링할 인터페이스 포인터입니다. 은 NULL일 수 있습니다.

dwDestContext
지정된 인터페이스를 숨기지 않는 대상 컨텍스트입니다.

하나 이상의 MSHCTX 열거형 값을 지정합니다.

현재, 현재 프로세스의 다른 아파트(MSHCTX_INPROC) 또는 현재 프로세스(MSHCTX_LOCAL)와 동일한 컴퓨터의 다른 프로세스에서 경계 해제가 발생할 수 있습니다.

pvDestContext
나중에 사용하도록 예약됨; 은 NULL이어야 합니다.

mshlflags
마샬링할 데이터를 클라이언트 프로세스(일반적인 경우)로 다시 전송할지 아니면 여러 클라이언트에서 검색할 수 있는 전역 테이블에 쓸 것인지를 나타내는 플래그입니다. 하나 이상의 MSHLFLAGS 열거형 값을 지정합니다.

pSize
이 작업이 완료되면 마샬링 스트림에 쓸 데이터 양에 대한 상한을 가리키는 포인터입니다.

Return Value

S_OK 성공하면

FtmBase::GetUnmarshalClass

COM에서 해당 프록시에 대한 코드가 포함된 DLL을 찾는 데 사용하는 CLSID를 가져옵니다. COM은 이 DLL을 로드하여 초기화되지 않은 프록시 인스턴스를 만듭니다.

STDMETHODIMP GetUnmarshalClass(
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags,
   __out CLSID *pCid
) override;

매개 변수

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

pv
마샬링할 인터페이스에 대한 포인터입니다. 호출자에게 원하는 인터페이스에 대한 포인터가 없는 경우 NULL일 수 있습니다.

dwDestContext
지정된 인터페이스를 숨기지 않는 대상 컨텍스트입니다.

하나 이상의 MSHCTX 열거형 값을 지정합니다.

경계 해제는 현재 프로세스의 다른 아파트(MSHCTX_INPROC) 또는 현재 프로세스(MSHCTX_LOCAL)와 동일한 컴퓨터의 다른 프로세스에서 발생할 수 있습니다.

pvDestContext
나중에 사용하도록 예약됨; 은 NULL이어야 합니다.

mshlflags
이 작업이 완료되면 클라이언트 프로세스에서 프록시를 만드는 데 사용할 CLSID에 대한 포인터입니다.

pCid

Return Value

S_OK 성공하면

FtmBase::MarshalInterface

일부 클라이언트 프로세스에서 프록시 개체를 초기화하는 데 필요한 데이터를 스트림에 씁니다.

STDMETHODIMP MarshalInterface(
   __in IStream *pStm,
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags
) override;

매개 변수

pStm
마샬링하는 동안 사용할 스트림에 대한 포인터입니다.

riid
마샬링할 인터페이스의 식별자에 대한 참조입니다. 이 인터페이스는 인터페이스에서 IUnknown 파생되어야 합니다.

pv
마샬링할 인터페이스 포인터에 대한 포인터입니다. 호출자에게 원하는 인터페이스에 대한 포인터가 없는 경우 NULL일 수 있습니다.

dwDestContext
지정된 인터페이스를 숨기지 않는 대상 컨텍스트입니다.

하나 이상의 MSHCTX 열거형 값을 지정합니다.

현재 프로세스의 다른 아파트(MSHCTX_INPROC) 또는 현재 프로세스(MSHCTX_LOCAL)와 동일한 컴퓨터의 다른 프로세스에서 비마할링이 발생할 수 있습니다.

pvDestContext
나중에 사용하도록 예약되어 있습니다. 0이어야 합니다.

mshlflags
마샬링할 데이터를 클라이언트 프로세스(일반적인 경우)로 다시 전송할지, 아니면 여러 클라이언트에서 검색할 수 있는 전역 테이블에 쓸 것인지를 지정합니다.

Return Value

S_OK 인터페이스 포인터가 성공적으로 마샬링되었습니다.

E_NOINTERFACE 지정된 인터페이스는 지원되지 않습니다.

STG_E_MEDIUMFULL 스트림이 가득 찼습니다.

E_FAIL 작업이 실패했습니다.

FtmBase::marshaller_

자유 스레드 마샬러에 대한 참조를 보유합니다.

Microsoft::WRL::ComPtr<IMarshal> marshaller_; ;

FtmBase::ReleaseMarshalData

마샬링된 데이터 패킷을 제거합니다.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

매개 변수

pStm
소멸할 데이터 패킷이 포함된 스트림에 대한 포인터입니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 오류를 나타내는 HRESULT입니다.

FtmBase::UnmarshalInterface

새로 만든 프록시를 초기화하고 해당 프록시에 대한 인터페이스 포인터를 반환합니다.

STDMETHODIMP UnmarshalInterface(
   __in IStream *pStm,
   __in REFIID riid,
   __deref_out void **ppv
) override;

매개 변수

pStm
인터페이스 포인터를 숨기지 않을 스트림에 대한 포인터입니다.

riid
숨기지 않을 인터페이스의 식별자에 대한 참조입니다.

ppv
이 작업이 완료되면 riid에서 요청된 인터페이스 포인터를 수신하는 포인터 변수의 주소입니다. 이 작업이 성공하면 *ppv 에는 숨기지 않을 인터페이스의 요청된 인터페이스 포인터가 포함됩니다.

Return Value

S_OK 성공하면