Sdílet prostřednictvím


FtmBase – třída

Představuje objekt zařazovač s volným vláknem.

Syntaxe

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

Poznámky

Další informace naleznete v tématu RuntimeClass – třída.

Členové

Veřejné konstruktory

Název Popis
FtmBase::FtmBase Inicializuje novou instanci FtmBase třídy.

Veřejné metody

Název Popis
FtmBase::CreateGlobalInterfaceTable Vytvoří tabulku globálního rozhraní (GIT).
FtmBase::D isconnectObject Vynuceně uvolní všechna externí připojení k objektu. Server objektu volá implementaci tohoto objektu před vypnutím.
FtmBase::GetMarshalSizeMax Získejte horní mez počtu bajtů potřebných k zařazování zadaného ukazatele rozhraní na zadaný objekt.
FtmBase::GetUnmarshalClass Získá CLSID, který COM používá k vyhledání knihovny DLL obsahující kód pro odpovídající proxy. Com načte tuto knihovnu DLL, aby se vytvořila neinicializovaná instance proxy serveru.
FtmBase::MarshalInterface Zapíše do datového proudu data potřebná k inicializaci objektu proxy v určitém procesu klienta.
FtmBase::ReleaseMarshalData Zničí zařazovaný datový paket.
FtmBase::UnmarshalInterface Inicializuje nově vytvořený proxy server a vrátí ukazatel rozhraní na tento proxy server.

Veřejné datové členy

Název Popis
FtmBase::marshaller_ Obsahuje odkaz na volný zařazovač vláken.

Hierarchie dědičnosti

FtmBase

Požadavky

Hlavička: ftm.h

Obor názvů: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

Vytvoří tabulku globálního rozhraní (GIT).

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Parametry

git
Po dokončení této operace je ukazatel na tabulku globálního rozhraní.

Návratová hodnota

S_OK v případě úspěchu; v opačném případě hodnota HRESULT označující chybu.

Poznámky

Další informace najdete na webu IGlobalInterfaceTable.

FtmBase::D isconnectObject

Vynuceně uvolní všechna externí připojení k objektu. Server objektu volá implementaci tohoto objektu před vypnutím.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Parametry

dwReserved
Vyhrazeno pro budoucí použití; musí být nula.

Návratová hodnota

S_OK v případě úspěchu; v opačném případě hodnota HRESULT označující chybu.

FtmBase::FtmBase

Inicializuje novou instanci FtmBase třídy.

FtmBase();

FtmBase::GetMarshalSizeMax

Získejte horní mez počtu bajtů potřebných k zařazování zadaného ukazatele rozhraní na zadaný objekt.

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

Parametry

riid
Odkaz na identifikátor rozhraní, které má být zařazováno.

Pv
Ukazatel rozhraní, který má být zařazován; může mít hodnotu NULL.

dwDestContext
Cílový kontext, ve kterém má být zadané rozhraní nezastřeženo.

Zadejte jednu nebo více hodnot výčtu MSHCTX.

V současné době může dojít k zrušení ohraničení buď v jiném apartmánu aktuálního procesu (MSHCTX_INPROC) nebo v jiném procesu ve stejném počítači jako aktuální proces (MSHCTX_LOCAL).

pvDestContext
Vyhrazeno pro budoucí použití; musí mít hodnotu NULL.

mshlflags
Příznak označující, jestli se mají data zařazovaná přenést zpět do procesu klienta – typický případ – nebo zapsat do globální tabulky, kde je může načíst více klientů. Zadejte jednu nebo více hodnot výčtu MSHLFLAGS.

pSize
Po dokončení této operace najeďte ukazatelem na horní mez množství dat, která se mají zapisovat do zařazujícího datového proudu.

Návratová hodnota

S_OK v případě úspěchu; v opačném případě E_FAIL nebo E_NOINTERFACE.

FtmBase::GetUnmarshalClass

Získá CLSID, který COM používá k vyhledání knihovny DLL obsahující kód pro odpovídající proxy. Com načte tuto knihovnu DLL, aby se vytvořila neinicializovaná instance proxy serveru.

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

Parametry

riid
Odkaz na identifikátor rozhraní, které má být zařazováno.

Pv
Ukazatel na rozhraní, které má být zařazováno; může mít hodnotu NULL, pokud volající nemá ukazatel na požadované rozhraní.

dwDestContext
Cílový kontext, ve kterém má být zadané rozhraní nezastřeženo.

Zadejte jednu nebo více hodnot výčtu MSHCTX.

Zrušení tvaru může nastat buď v jiném apartmánu aktuálního procesu (MSHCTX_INPROC), nebo v jiném procesu ve stejném počítači jako aktuální proces (MSHCTX_LOCAL).

pvDestContext
Vyhrazeno pro budoucí použití; musí mít hodnotu NULL.

mshlflags
Po dokončení této operace najeďte ukazatelem na CLSID, který se má použít k vytvoření proxy serveru v procesu klienta.

pCid

Návratová hodnota

S_OK v případě úspěchu; jinak S_FALSE.

FtmBase::MarshalInterface

Zapíše do datového proudu data potřebná k inicializaci objektu proxy v určitém procesu klienta.

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

Parametry

pStm
Ukazatel na datový proud, který se má použít během zařazování.

riid
Odkaz na identifikátor rozhraní, které má být zařazováno. Toto rozhraní musí být odvozeno z IUnknown rozhraní.

Pv
Ukazatel na ukazatel rozhraní, který má být zařazován; může mít hodnotu NULL, pokud volající nemá ukazatel na požadované rozhraní.

dwDestContext
Cílový kontext, ve kterém má být zadané rozhraní nezastřeženo.

Zadejte jednu nebo více hodnot výčtu MSHCTX.

Změna tvaru může nastat v jiném apartmánu aktuálního procesu (MSHCTX_INPROC) nebo v jiném procesu ve stejném počítači jako aktuální proces (MSHCTX_LOCAL).

pvDestContext
Vyhrazeno pro budoucí použití; musí být nula.

mshlflags
Určuje, jestli mají být data zařazována zpět do procesu klienta – typický případ – nebo zapsána do globální tabulky, kde je může načíst více klientů.

Návratová hodnota

S_OK Ukazatel rozhraní byl úspěšně zařazován.

E_NOINTERFACE Zadané rozhraní není podporováno.

STG_E_MEDIUMFULL Stream je plný.

E_FAIL Operace se nezdařila.

FtmBase::marshaller_

Obsahuje odkaz na volný zařazovač vláken.

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

FtmBase::ReleaseMarshalData

Zničí zařazovaný datový paket.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Parametry

pStm
Ukazatel na datový proud, který obsahuje datový paket, který se má zničit.

Návratová hodnota

S_OK v případě úspěchu; v opačném případě hodnota HRESULT označující chybu.

FtmBase::UnmarshalInterface

Inicializuje nově vytvořený proxy server a vrátí ukazatel rozhraní na tento proxy server.

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

Parametry

pStm
Ukazatel na datový proud, ze kterého má být ukazatel rozhraní nezarovnaný.

riid
Odkaz na identifikátor rozhraní, který se má zrušit.

ppv
Po dokončení této operace bude adresa proměnné ukazatele, která obdrží ukazatel rozhraní požadovaný v riidu. Pokud je tato operace úspěšná, *ppv obsahuje požadovaný ukazatel rozhraní, který se má zrušit.

Návratová hodnota

S_OK v případě úspěchu; v opačném případě E_NOINTERFACE nebo E_FAIL.