Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.