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.