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.