Compartilhar via


Classe FtmBase

Representa um objeto marshaler de thread livre.

Sintaxe

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

Comentários

Para obter mais informações, consulte Classe RuntimeClass.

Membros

Construtores públicos

Nome Descrição
FtmBase::FtmBase Inicializa uma nova instância da classe FtmBase.

Métodos públicos

Nome Descrição
FtmBase::CreateGlobalInterfaceTable Cria uma tabela de interface global (GIT).
FtmBase::DisconnectObject Libera à força todas as conexões externas com um objeto. O servidor do objeto chama a implementação do objeto desse método antes de desligar.
FtmBase::GetMarshalSizeMax Obtém o limite superior no número de bytes necessários para realizar marshal do ponteiro de interface especificado no objeto especificado.
FtmBase::GetUnmarshalClass Obtém o CLSID que o COM usa para localizar a DLL que contém o código do proxy correspondente. O COM carrega essa DLL para criar uma instância não inicializada do proxy.
FtmBase::MarshalInterface Grava em um fluxo os dados necessários para inicializar um objeto proxy em algum processo de cliente.
FtmBase::ReleaseMarshalData Destrói um pacote de dados que teve marshal realizado.
FtmBase::UnmarshalInterface Inicializa um proxy recém-criado e retorna um ponteiro de interface para esse proxy.

Membros de Dados Públicos

Nome Descrição
FtmBase::marshaller_ Contém uma referência ao marshaler livre de threads.

Hierarquia de herança

FtmBase

Requisitos

Cabeçalho: ftm.h

Namespace: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

Cria uma tabela de interface global (GIT).

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Parâmetros

git
Quando essa operação for concluída, um ponteiro para uma tabela de interface global.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro.

Comentários

Para obter mais informações, consulte IGlobalInterfaceTable.

FtmBase::DisconnectObject

Libera à força todas as conexões externas com um objeto. O servidor do objeto chama a implementação do objeto desse método antes de desligar.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Parâmetros

dwReserved
Reservado para uso futuro; deve ser zero.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro.

FtmBase::FtmBase

Inicializa uma nova instância da classe FtmBase.

FtmBase();

FtmBase::GetMarshalSizeMax

Obtém o limite superior no número de bytes necessários para realizar marshal do ponteiro de interface especificado no objeto especificado.

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

Parâmetros

riid
Faz referência ao identificador da interface na qual vai ser realizado marshal.

pv
Ponteiro da interface na qual vai ser realizado marshal; pode ser NULL.

dwDestContext
Contexto de destino em que será realizado unmarshaling da interface especificada.

Especifique um ou mais valores de enumeração MSHCTX.

Atualmente, pode ocorrer unmarshaling em outro apartament do processo atual (MSHCTX_INPROC) ou em outro processo no mesmo computador o processo atual (MSHCTX_LOCAL).

pvDestContext
Reservado para uso futuro; deve ser NULL.

mshlflags
Sinalizador que indica se os dados nos quais será realizado marshal devem ser transmitidos de volta para o processo do cliente – caso típico – ou gravados em uma tabela global, na qual podem ser recuperados por vários clientes. Especifique um ou mais valores de enumeração MSHLFLAGS.

pSize
Quando essa operação for concluída, ponteiro para o limite superior da quantidade de dados a serem gravados no fluxo de marshaling.

Valor de retorno

S_OK se tiver êxito; caso contrário, E_FAIL ou E_NOINTERFACE.

FtmBase::GetUnmarshalClass

Obtém o CLSID que o COM usa para localizar a DLL que contém o código do proxy correspondente. O COM carrega essa DLL para criar uma instância não inicializada do proxy.

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

Parâmetros

riid
Faz referência ao identificador da interface na qual vai ser realizado marshal.

pv
Ponteiro para a interface na qual vai ser realizado marshal; pode ser NULL se o chamador não tiver um ponteiro para a interface desejada.

dwDestContext
Contexto de destino em que será realizado unmarshaling da interface especificada.

Especifique um ou mais valores de enumeração MSHCTX.

Pode ocorrer unmarshaling em outro apartament do processo atual (MSHCTX_INPROC) ou em outro processo no mesmo computador do processo atual (MSHCTX_LOCAL).

pvDestContext
Reservado para uso futuro; deve ser NULL.

mshlflags
Quando essa operação for concluída, o ponteiro indica o CLSID a ser usado para criar um proxy no processo do cliente.

pCid

Valor de retorno

S_OK se bem-sucedido; caso contrário, S_FALSE.

FtmBase::MarshalInterface

Grava em um fluxo os dados necessários para inicializar um objeto proxy em algum processo de cliente.

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

Parâmetros

pStm
Ponteiro para o fluxo a ser usado durante o marshaling.

riid
Faz referência ao identificador da interface na qual vai ser realizado marshal. Essa interface deve ser derivada da interface IUnknown .

pv
Ponteiro para o ponteiro da interface na qual vai ser realizado marshal; pode ser NULL se o chamador não tiver um ponteiro para a interface desejada.

dwDestContext
Contexto de destino em que será realizado unmarshaling da interface especificada.

Especifique um ou mais valores de enumeração MSHCTX.

Pode ocorrer unmarshaling em outro apartament do processo atual (MSHCTX_INPROC) ou em outro processo no mesmo computador do processo atual (MSHCTX_LOCAL).

pvDestContext
Reservado para uso futuro; deve ser zero.

mshlflags
Especifica se os dados nos quais será realizado marshal devem ser transmitidos de volta para o processo do cliente – caso típico – ou gravados em uma tabela global, na qual podem ser recuperados por vários clientes.

Valor de retorno

S_OK O ponteiro da interface foi empacotado com êxito.

E_NOINTERFACE Não há suporte para a interface especificada.

STG_E_MEDIUMFULL O fluxo está cheio.

E_FAIL A operação falhou.

FtmBase::marshaller_

Contém uma referência ao marshaler livre de threads.

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

FtmBase::ReleaseMarshalData

Destrói um pacote de dados que teve marshal realizado.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Parâmetros

pStm
Ponteiro para um fluxo que contém o pacote de dados a ser destruído.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro.

FtmBase::UnmarshalInterface

Inicializa um proxy recém-criado e retorna um ponteiro de interface para esse proxy.

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

Parâmetros

pStm
Ponteiro para o fluxo do qual deve ser realizado unmarshaling no ponteiro da interface.

riid
Faz referência ao identificador da interface na qual vai ser realizado unmarshaling.

ppv
Quando essa operação for concluída, o endereço de uma variável de ponteiro recebe o ponteiro da interface solicitado no riid. Se essa operação for bem-sucedida, *ppv conterá o ponteiro da interface solicitado da interface na qual será realizado unmarshaling.

Valor de retorno

S_OK se tiver êxito; caso contrário, E_NOINTERFACE ou E_FAIL.