FtmBase (classe)
Rappresenta un oggetto gestore del marshalling a thread libero.
Sintassi
class FtmBase :
public Microsoft::WRL::Implements<
Microsoft::WRL::RuntimeClassFlags<WinRtClassicComMix>,
Microsoft::WRL::CloakedIid<IMarshal>
>;
Osservazioni:
Per altre informazioni, vedere Classe RuntimeClass.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
FtmBase::FtmBase | Inizializza una nuova istanza della classe FtmBase . |
Metodi pubblici
Nome | Descrizione |
---|---|
FtmBase::CreateGlobalInterfaceTable | Crea una tabella di interfaccia globale (GIT). |
FtmBase::D isconnectObject | Forcibly rilascia tutte le connessioni esterne a un oggetto . Il server dell'oggetto chiama l'implementazione dell'oggetto di questo metodo prima dell'arresto. |
FtmBase::GetMarshalSizeMax | Ottiene il limite superiore sul numero di byte necessari per effettuare il marshalling del puntatore di interfaccia specificato sull'oggetto specificato. |
FtmBase::GetUnmarshalClass | Ottiene il CLSID utilizzato da COM per individuare la DLL contenente il codice per il proxy corrispondente. COM carica questa DLL per creare un'istanza non inizializzata del proxy. |
FtmBase::MarshalInterface | Scrive in un flusso i dati necessari per inizializzare un oggetto proxy in un processo client. |
FtmBase::ReleaseMarshalData | Elimina definitivamente un pacchetto di dati sottoposto a marshalling. |
FtmBase::UnmarshalInterface | Inizializza un proxy appena creato e restituisce un puntatore di interfaccia a tale proxy. |
Membri dati pubblici
Nome | Descrizione |
---|---|
FtmBase::marshaller_ | Contiene un riferimento al gestore di marshalling thread libero. |
Gerarchia di ereditarietà
FtmBase
Requisiti
Intestazione: ftm.h
Spazio dei nomi: Microsoft::WRL
FtmBase::CreateGlobalInterfaceTable
Crea una tabella di interfaccia globale (GIT).
static HRESULT CreateGlobalInterfaceTable(
__out IGlobalInterfaceTable **git
);
Parametri
git
Al termine di questa operazione, un puntatore a una tabella di interfaccia globale.
Valore restituito
S_OK se riesce; in caso contrario, HRESULT indica un errore.
Osservazioni:
Per ulteriori informazioni, vedere IGlobalInterfaceTable
.
FtmBase::D isconnectObject
Forcibly rilascia tutte le connessioni esterne a un oggetto . Il server dell'oggetto chiama l'implementazione dell'oggetto di questo metodo prima dell'arresto.
STDMETHODIMP DisconnectObject(
__in DWORD dwReserved
) override;
Parametri
dwReserved
Riservato per utilizzi futuri; deve essere zero.
Valore restituito
S_OK se riesce; in caso contrario, HRESULT indica un errore.
FtmBase::FtmBase
Inizializza una nuova istanza della classe FtmBase
.
FtmBase();
FtmBase::GetMarshalSizeMax
Ottiene il limite superiore sul numero di byte necessari per effettuare il marshalling del puntatore di interfaccia specificato sull'oggetto specificato.
STDMETHODIMP GetMarshalSizeMax(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out DWORD *pSize
) override;
Parametri
riid
Riferimento all'identificatore dell'interfaccia da sottoporre a marshalling.
Pv
Puntatore di interfaccia da sottoporre a marshalling; può essere NULL.
dwDestContext
Contesto di destinazione in cui l'interfaccia specificata deve essere annullata.
Specificare uno o più valori di enumerazione MSHCTX.
Attualmente, l'annullamento delmarshaling può verificarsi in un altro apartment del processo corrente (MSHCTX_INPROC) o in un altro processo nello stesso computer del processo corrente (MSHCTX_LOCAL).
pvDestContext
Riservato per uso futuro; deve essere NULL.
mshlflags
Flag che indica se i dati da sottoporre a marshalling devono essere trasmessi al processo client, ovvero il caso tipico, o scritti in una tabella globale, in cui è possibile recuperarli da più client. Specificare uno o più valori di enumerazione MSHLFLAGS.
pSize
Al termine di questa operazione, puntatore al limite superiore sulla quantità di dati da scrivere nel flusso di marshalling.
Valore restituito
S_OK se ha esito positivo; in caso contrario, E_FAIL o E_NOINTERFACE.
FtmBase::GetUnmarshalClass
Ottiene il CLSID utilizzato da COM per individuare la DLL contenente il codice per il proxy corrispondente. COM carica questa DLL per creare un'istanza non inizializzata del proxy.
STDMETHODIMP GetUnmarshalClass(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out CLSID *pCid
) override;
Parametri
riid
Riferimento all'identificatore dell'interfaccia da sottoporre a marshalling.
Pv
Puntatore all'interfaccia di cui effettuare il marshalling; può essere NULL se il chiamante non dispone di un puntatore all'interfaccia desiderata.
dwDestContext
Contesto di destinazione in cui l'interfaccia specificata deve essere annullata.
Specificare uno o più valori di enumerazione MSHCTX.
Unmarshaling può verificarsi in un altro apartment del processo corrente (MSHCTX_INPROC) o in un altro processo nello stesso computer del processo corrente (MSHCTX_LOCAL).
pvDestContext
Riservato per uso futuro; deve essere NULL.
mshlflags
Al termine di questa operazione, puntatore al CLSID da usare per creare un proxy nel processo client.
pCid
Valore restituito
S_OK se ha esito positivo; in caso contrario, S_FALSE.
FtmBase::MarshalInterface
Scrive in un flusso i dati necessari per inizializzare un oggetto proxy in un processo client.
STDMETHODIMP MarshalInterface(
__in IStream *pStm,
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags
) override;
Parametri
pStm
Puntatore al flusso da usare durante il marshalling.
riid
Riferimento all'identificatore dell'interfaccia da sottoporre a marshalling. Tale interfaccia deve derivare dall'interfaccia IUnknown
.
Pv
Puntatore al puntatore dell'interfaccia da sottoporre a marshalling; può essere NULL se il chiamante non dispone di un puntatore all'interfaccia desiderata.
dwDestContext
Contesto di destinazione in cui l'interfaccia specificata deve essere annullata.
Specificare uno o più valori di enumerazione MSHCTX.
Unmarshaling può verificarsi in un altro apartment del processo corrente (MSHCTX_INPROC) o in un altro processo nello stesso computer del processo corrente (MSHCTX_LOCAL).
pvDestContext
Riservato per utilizzi futuri; deve essere zero.
mshlflags
Specifica se i dati da sottoporre a marshalling devono essere trasmessi al processo client, ovvero il caso tipico, o scritti in una tabella globale, in cui possono essere recuperati da più client.
Valore restituito
S_OK Il puntatore all'interfaccia è stato eseguito correttamente il marshalling.
E_NOINTERFACE L'interfaccia specificata non è supportata.
STG_E_MEDIUMFULL Il flusso è pieno.
E_FAIL L'operazione non è riuscita.
FtmBase::marshaller_
Contiene un riferimento al gestore di marshalling thread libero.
Microsoft::WRL::ComPtr<IMarshal> marshaller_; ;
FtmBase::ReleaseMarshalData
Elimina definitivamente un pacchetto di dati sottoposto a marshalling.
STDMETHODIMP ReleaseMarshalData(
__in IStream *pStm
) override;
Parametri
pStm
Puntatore a un flusso che contiene il pacchetto di dati da eliminare definitivamente.
Valore restituito
S_OK se riesce; in caso contrario, HRESULT indica un errore.
FtmBase::UnmarshalInterface
Inizializza un proxy appena creato e restituisce un puntatore di interfaccia a tale proxy.
STDMETHODIMP UnmarshalInterface(
__in IStream *pStm,
__in REFIID riid,
__deref_out void **ppv
) override;
Parametri
pStm
Puntatore al flusso da cui deve essere scollegato il puntatore dell'interfaccia.
riid
Riferimento all'identificatore dell'interfaccia da annullare.
ppv
Al termine dell'operazione, l'indirizzo di una variabile puntatore che riceve il puntatore dell'interfaccia richiesto in riid. Se l'operazione ha esito positivo, *ppv contiene il puntatore di interfaccia richiesto dell'interfaccia da annullare.
Valore restituito
S_OK se ha esito positivo; in caso contrario, E_NOINTERFACE o E_FAIL.