FtmBase (clase)

Representa un objeto de cálculo de referencias con subprocesamiento libre.

Sintaxis

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

Comentarios

Para más información, consulte Clase RuntimeClass.

Miembros

Constructores públicos

Nombre Descripción
FtmBase::FtmBase Inicializa una nueva instancia de la clase FtmBase.

Métodos públicos

Nombre Descripción
FtmBase::CreateGlobalInterfaceTable Crea una tabla de interfaz global (GIT).
FtmBase::DisconnectObject Libera forzosamente todas las conexiones externas a un objeto. El servidor del objeto llama a la implementación del objeto de este método antes de apagarse.
FtmBase::GetMarshalSizeMax Obtenga el límite superior del número de bytes necesarios para serializar el puntero de interfaz especificado en el objeto especificado.
FtmBase::GetUnmarshalClass Obtiene el CLSID que COM usa para buscar el archivo DLL que contiene el código del proxy correspondiente. COM carga este archivo DLL para crear una instancia sin inicializar del proxy.
FtmBase::MarshalInterface Escribe en un flujo los datos necesarios para inicializar un objeto proxy en algún proceso de cliente.
FtmBase::ReleaseMarshalData Destruye un paquete de datos serializado.
FtmBase::UnmarshalInterface Inicializa un proxy recién creado y devuelve un puntero de interfaz a ese proxy.

Miembros de datos públicos

Nombre Descripción
FtmBase::marshaller_ Contiene una referencia al serializador con subprocesos libre.

Jerarquía de herencia

FtmBase

Requisitos

Encabezado: ftm.h

Espacio de nombres: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

Crea una tabla de interfaz global (GIT).

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Parámetros

git
Cuando se completa esta operación, un puntero a una tabla de interfaces global.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error.

Comentarios

Para obtener más información, vea IGlobalInterfaceTable.

FtmBase::DisconnectObject

Libera forzosamente todas las conexiones externas a un objeto. El servidor del objeto llama a la implementación del objeto de este método antes de apagarse.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Parámetros

dwReserved
Reservado para uso futuro; debe ser cero.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error.

FtmBase::FtmBase

Inicializa una nueva instancia de la clase FtmBase.

FtmBase();

FtmBase::GetMarshalSizeMax

Obtenga el límite superior del número de bytes necesarios para serializar el puntero de interfaz especificado en el 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
Referencia al identificador de la interfaz que se va a serializar.

pv
Puntero de interfaz que se va a serializar; puede ser NULL.

dwDestContext
Contexto de destino donde se va a anular la serialización de la interfaz especificada.

Especifique uno o varios valores de enumeración de MSHCTX.

Actualmente, la anulación de la serialización puede producirse en otro apartamento del proceso actual (MSHCTX_INPROC) o en otro proceso que se encuentra en el mismo equipo que el proceso actual (MSHCTX_LOCAL).

pvDestContext
Reservado para un uso futuro; debe ser NULL.

mshlflags
Marca que indica si los datos que se van a serializar se van a devolver al proceso cliente (el caso típico) o se van a escribir en una tabla global, donde varios clientes pueden recuperarlos. Especifique uno o varios valores de enumeración de MSHLFLAGS.

pSize
Una vez completada esta operación, el puntero se lleva al límite superior de la cantidad de datos que se van a escribir en el flujo de serialización.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, E_FAIL o E_NOINTERFACE.

FtmBase::GetUnmarshalClass

Obtiene el CLSID que COM usa para buscar el archivo DLL que contiene el código del proxy correspondiente. COM carga este archivo DLL para crear una instancia sin inicializar del 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
Referencia al identificador de la interfaz que se va a serializar.

pv
Puntero a la interfaz que se va a serializar; puede ser NULL si el autor de la llamada no tiene un puntero a la interfaz deseada.

dwDestContext
Contexto de destino donde se va a anular la serialización de la interfaz especificada.

Especifique uno o varios valores de enumeración de MSHCTX.

La anulación de la serialización puede producirse en otro apartamento del proceso actual (MSHCTX_INPROC) o en otro proceso que se encuentra en el mismo equipo que el proceso actual (MSHCTX_LOCAL).

pvDestContext
Reservado para un uso futuro; debe ser NULL.

mshlflags
Cuando se completa esta operación, el puntero al CLSID que se usará para crear un proxy en el proceso de cliente.

pCid

Valor devuelto

S_OK si es correcto; de lo contrario, S_FALSE.

FtmBase::MarshalInterface

Escribe en un flujo los datos necesarios para inicializar un objeto proxy en algún proceso 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
Puntero al flujo que se va a usar durante la serialización.

riid
Referencia al identificador de la interfaz que se va a serializar. Esta interfaz debe derivarse de la interfaz IUnknown .

pv
Puntero al puntero de la interfaz que se va a serializar; puede ser NULL si el autor de la llamada no tiene un puntero a la interfaz deseada.

dwDestContext
Contexto de destino donde se va a anular la serialización de la interfaz especificada.

Especifique uno o varios valores de enumeración de MSHCTX.

La anulación de la serialización puede producirse en otro apartamento del proceso actual (MSHCTX_INPROC) o en otro proceso que se encuentra en el mismo equipo que el proceso actual (MSHCTX_LOCAL).

pvDestContext
Reservado para uso futuro; debe ser cero.

mshlflags
Especifica si los datos que se van a serializar se van a devolver al proceso cliente (el caso típico) o se van a escribir en una tabla global, donde varios clientes pueden recuperarlos.

Valor devuelto

S_OK El puntero de la interfaz se serializó correctamente.

E_NOINTERFACE No se admite la interfaz especificada.

STG_E_MEDIUMFULL La secuencia está llena.

E_FAIL Error en la operación.

FtmBase::marshaller_

Contiene una referencia al serializador con subprocesos libre.

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

FtmBase::ReleaseMarshalData

Destruye un paquete de datos serializado.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Parámetros

pStm
Puntero a un flujo que contiene el paquete de datos que se va a destruir.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error.

FtmBase::UnmarshalInterface

Inicializa un proxy recién creado y devuelve un puntero de interfaz a ese proxy.

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

Parámetros

pStm
Puntero al flujo desde el que se va a anular la serialización del puntero de la interfaz.

riid
Referencia al identificador de la interfaz cuya serialización se va a anular.

ppv
Cuando se completa esta operación, la dirección de una variable de puntero que recibe el puntero de interfaz solicitado en riid. Si esta operación se realiza correctamente, *ppv contiene el puntero de interfaz solicitado de la interfaz que cuya serialización se va a anular.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, E_NOINTERFACE o E_FAIL.