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 성공하면