FtmBase — Klasa
Reprezentuje obiekt marshalera bezwątkowy.
Składnia
class FtmBase :
public Microsoft::WRL::Implements<
Microsoft::WRL::RuntimeClassFlags<WinRtClassicComMix>,
Microsoft::WRL::CloakedIid<IMarshal>
>;
Uwagi
Aby uzyskać więcej informacji, zobacz RuntimeClass Class (Klasa RuntimeClass).
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
FtmBase::FtmBase | Inicjuje nowe wystąpienie klasy FtmBase . |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
FtmBase::CreateGlobalInterfaceTable | Tworzy tabelę interfejsu globalnego (GIT). |
FtmBase::D isconnectObject | Wymuszone zwalnia wszystkie połączenia zewnętrzne z obiektem. Serwer obiektu wywołuje implementację obiektu tej metody przed zamknięciem. |
FtmBase::GetMarshalSizeMax | Pobierz górną granicę liczby bajtów potrzebnych do marshalingu określonego wskaźnika interfejsu w określonym obiekcie. |
FtmBase::GetUnmarshalClass | Pobiera identyfikator CLSID używany przez com do zlokalizowania biblioteki DLL zawierającej kod odpowiedniego serwera proxy. Com ładuje tę bibliotekę DLL, aby utworzyć niezainicjowane wystąpienie serwera proxy. |
FtmBase::MarshalInterface | Zapisuje w strumieniu dane wymagane do zainicjowania obiektu proxy w procesie klienta. |
FtmBase::ReleaseMarshalData | Niszczy pakiet danych marshaled. |
FtmBase::UnmarshalInterface | Inicjuje nowo utworzony serwer proxy i zwraca wskaźnik interfejsu do tego serwera proxy. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
FtmBase::marshaller_ | Zawiera odwołanie do wolnego marshalera wątkowego. |
Hierarchia dziedziczenia
FtmBase
Wymagania
Nagłówek: ftm.h
Przestrzeń nazw: Microsoft::WRL
FtmBase::CreateGlobalInterfaceTable
Tworzy tabelę interfejsu globalnego (GIT).
static HRESULT CreateGlobalInterfaceTable(
__out IGlobalInterfaceTable **git
);
Parametry
git
Po zakończeniu tej operacji wskaźnik do tabeli interfejsu globalnego.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie hrESULT wskazujący błąd.
Uwagi
Aby uzyskać więcej informacji, zobacz IGlobalInterfaceTable
.
FtmBase::D isconnectObject
Wymuszone zwalnia wszystkie połączenia zewnętrzne z obiektem. Serwer obiektu wywołuje implementację obiektu tej metody przed zamknięciem.
STDMETHODIMP DisconnectObject(
__in DWORD dwReserved
) override;
Parametry
dwReserved
Zarezerwowane do użytku w przyszłości; musi być zero.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie hrESULT wskazujący błąd.
FtmBase::FtmBase
Inicjuje nowe wystąpienie klasy FtmBase
.
FtmBase();
FtmBase::GetMarshalSizeMax
Pobierz górną granicę liczby bajtów potrzebnych do marshalingu określonego wskaźnika interfejsu w określonym obiekcie.
STDMETHODIMP GetMarshalSizeMax(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out DWORD *pSize
) override;
Parametry
riid
Odwołanie do identyfikatora interfejsu do marshalingu.
Pv
Wskaźnik interfejsu do marshalingu; może mieć wartość NULL.
dwDestContext
Kontekst docelowy, w którym określony interfejs ma być unmarshaled.
Określ co najmniej jedną wartość wyliczenia MSHCTX.
Obecnie unmarshaling może wystąpić w innym mieszkaniu bieżącego procesu (MSHCTX_INPROC) lub w innym procesie na tym samym komputerze co bieżący proces (MSHCTX_LOCAL).
pvDestContext
Zarezerwowane do użytku w przyszłości; musi mieć wartość NULL.
mshlflags
Flaga wskazująca, czy dane do marshalingu mają być przesyłane z powrotem do procesu klienta — typowy przypadek — lub zapisywane w tabeli globalnej, gdzie można je pobrać przez wielu klientów. Określ co najmniej jedną wartość wyliczenia MSHLFLAGS.
Rozmiar p
Po zakończeniu tej operacji wskaźnik do górnej granicy ilości danych do zapisania do strumienia marshalingu.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_FAIL lub E_NOINTERFACE.
FtmBase::GetUnmarshalClass
Pobiera identyfikator CLSID używany przez com do zlokalizowania biblioteki DLL zawierającej kod odpowiedniego serwera proxy. Com ładuje tę bibliotekę DLL, aby utworzyć niezainicjowane wystąpienie serwera proxy.
STDMETHODIMP GetUnmarshalClass(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out CLSID *pCid
) override;
Parametry
riid
Odwołanie do identyfikatora interfejsu do marshalingu.
Pv
Wskaźnik do interfejsu do marshalingu; może mieć wartość NULL, jeśli obiekt wywołujący nie ma wskaźnika do żądanego interfejsu.
dwDestContext
Kontekst docelowy, w którym określony interfejs ma być unmarshaled.
Określ co najmniej jedną wartość wyliczenia MSHCTX.
Unmarshaling może wystąpić w innym mieszkaniu bieżącego procesu (MSHCTX_INPROC) lub w innym procesie na tym samym komputerze co bieżący proces (MSHCTX_LOCAL).
pvDestContext
Zarezerwowane do użytku w przyszłości; musi mieć wartość NULL.
mshlflags
Po zakończeniu tej operacji wskaż identyfikator CLSID, który ma zostać użyty do utworzenia serwera proxy w procesie klienta.
Identyfikator pCid
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie S_FALSE.
FtmBase::MarshalInterface
Zapisuje w strumieniu dane wymagane do zainicjowania obiektu proxy w procesie 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
Wskaźnik do strumienia, który ma być używany podczas marshalingu.
riid
Odwołanie do identyfikatora interfejsu do marshalingu. Ten interfejs musi pochodzić z interfejsu IUnknown
.
Pv
Wskaźnik do wskaźnika interfejsu do marshalingu; może mieć wartość NULL, jeśli obiekt wywołujący nie ma wskaźnika do żądanego interfejsu.
dwDestContext
Kontekst docelowy, w którym określony interfejs ma być unmarshaled.
Określ co najmniej jedną wartość wyliczenia MSHCTX.
Unmarshaling może wystąpić w innym mieszkaniu bieżącego procesu (MSHCTX_INPROC) lub w innym procesie na tym samym komputerze co bieżący proces (MSHCTX_LOCAL).
pvDestContext
Zarezerwowane do użytku w przyszłości; musi być zero.
mshlflags
Określa, czy dane do marshalingu mają być przesyłane z powrotem do procesu klienta — typowy przypadek — lub zapisywane w tabeli globalnej, gdzie można je pobrać przez wielu klientów.
Wartość zwracana
S_OK Wskaźnik interfejsu został pomyślnie przesłonięty.
E_NOINTERFACE Określony interfejs nie jest obsługiwany.
STG_E_MEDIUMFULL Strumień jest pełny.
E_FAIL Operacja nie powiodła się.
FtmBase::marshaller_
Zawiera odwołanie do wolnego marshalera wątkowego.
Microsoft::WRL::ComPtr<IMarshal> marshaller_; ;
FtmBase::ReleaseMarshalData
Niszczy pakiet danych marshaled.
STDMETHODIMP ReleaseMarshalData(
__in IStream *pStm
) override;
Parametry
pStm
Wskaźnik do strumienia zawierającego pakiet danych do zniszczenia.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie hrESULT wskazujący błąd.
FtmBase::UnmarshalInterface
Inicjuje nowo utworzony serwer proxy i zwraca wskaźnik interfejsu do tego serwera proxy.
STDMETHODIMP UnmarshalInterface(
__in IStream *pStm,
__in REFIID riid,
__deref_out void **ppv
) override;
Parametry
pStm
Wskaźnik do strumienia, z którego wskaźnik interfejsu ma być unmarshaled.
riid
Odwołanie do identyfikatora interfejsu, który ma być unmarshaled.
ppv
Po zakończeniu tej operacji adres zmiennej wskaźnika odbierający wskaźnik interfejsu żądany w riid. Jeśli ta operacja zakończy się pomyślnie, *ppv zawiera żądany wskaźnik interfejsu, który ma być unmarshaled.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie E_NOINTERFACE lub E_FAIL.