Aracılığıyla paylaş


FtmBase Sınıfı

Serbest iş parçacıklı bir sıralayıcı nesnesini temsil eder.

Sözdizimi

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

Açıklamalar

Daha fazla bilgi için bkz . RuntimeClass Sınıfı.

Üyeler

Ortak Oluşturucular

Ad Tanım
FtmBase::FtmBase FtmBase sınıfının yeni bir örneğini başlatır.

Genel Yöntemler

Ad Tanım
FtmBase::CreateGlobalInterfaceTable Genel arabirim tablosu (GIT) oluşturur.
FtmBase::D isconnectObject Bir nesneye yönelik tüm dış bağlantıları zorla serbest bırakır. Nesnenin sunucusu, kapatılmadan önce nesnenin bu yöntemi uygulamasını çağırır.
FtmBase::GetMarshalSizeMax Belirtilen nesnede belirtilen arabirim işaretçisini sıralamak için gereken bayt sayısına ilişkin üst sınırı alın.
FtmBase::GetUnmarshalClass COM'un karşılık gelen proxy'nin kodunu içeren DLL'yi bulmak için kullandığı CLSID'yi alır. COM, proxy'nin başlatılmamış bir örneğini oluşturmak için bu DLL'yi yükler.
FtmBase::MarshalInterface Bir akışa, bazı istemci işlemlerinde bir proxy nesnesi başlatmak için gereken verileri yazar.
FtmBase::ReleaseMarshalData Sıralanmış veri paketini yok eder.
FtmBase::UnmarshalInterface Yeni oluşturulan bir ara sunucuyu başlatır ve bu ara sunucuya bir arabirim işaretçisi döndürür.

Ortak Veri Üyeleri

Ad Tanım
FtmBase::marshaller_ Serbest iş parçacıklı sıralayıcısına bir başvuru tutar.

Devralma Hiyerarşisi

FtmBase

Gereksinimler

Üst bilgi: ftm.h

Ad Alanı: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

Genel arabirim tablosu (GIT) oluşturur.

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Parametreler

git
Bu işlem tamamlandığında, genel arabirim tablosuna yönelik bir işaretçi.

İade Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı gösteren bir HRESULT.

Açıklamalar

Daha fazla bilgi için bkz. IGlobalInterfaceTable.

FtmBase::D isconnectObject

Bir nesneye yönelik tüm dış bağlantıları zorla serbest bırakır. Nesnenin sunucusu, kapatılmadan önce nesnenin bu yöntemi uygulamasını çağırır.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Parametreler

dwReserved
Gelecekte kullanım için ayrılmıştır; sıfır olmalıdır.

İade Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı gösteren bir HRESULT.

FtmBase::FtmBase

FtmBase sınıfının yeni bir örneğini başlatır.

FtmBase();

FtmBase::GetMarshalSizeMax

Belirtilen nesnede belirtilen arabirim işaretçisini sıralamak için gereken bayt sayısına ilişkin üst sınırı alın.

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

Parametreler

Riid
Sıralanacak arabirimin tanımlayıcısına başvuru.

Pv
Sıralanacak arabirim işaretçisi; NULL olabilir.

dwDestContext
Belirtilen arabirimin özetlenemeyen hedef bağlamı.

Bir veya daha fazla MSHCTX numaralandırma değeri belirtin.

Şu anda, özetleme işlemi geçerli işlemin başka bir dairesinde (MSHCTX_INPROC) veya geçerli işlemle (MSHCTX_LOCAL) aynı bilgisayardaki başka bir işlemde gerçekleşebilir.

pvDestContext
Gelecekte kullanım için ayrılmıştır; NULL olmalıdır.

mshlflags
Sıralanacak verilerin istemci işlemine (tipik durum) geri iletilip aktarılmayacağını veya birden çok istemci tarafından alınabileceği genel bir tabloya yazıldığını gösteren bayrak. Bir veya daha fazla MSHLFLAGS numaralandırma değeri belirtin.

pSize
Bu işlem tamamlandığında, hazırlama akışına yazılacak veri miktarı üzerinde üst sınıra yönelik işaretçi.

İade Değeri

Başarılı olursa S_OK; aksi takdirde, E_FAIL veya E_NOINTERFACE.

FtmBase::GetUnmarshalClass

COM'un karşılık gelen proxy'nin kodunu içeren DLL'yi bulmak için kullandığı CLSID'yi alır. COM, proxy'nin başlatılmamış bir örneğini oluşturmak için bu DLL'yi yükler.

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

Parametreler

Riid
Sıralanacak arabirimin tanımlayıcısına başvuru.

Pv
Sıralanacak arabirim işaretçisi; çağıranın istenen arabirime bir işaretçisi yoksa NULL olabilir.

dwDestContext
Belirtilen arabirimin özetlenemeyen hedef bağlamı.

Bir veya daha fazla MSHCTX numaralandırma değeri belirtin.

Özetleme, geçerli işlemin (MSHCTX_INPROC) başka bir dairesinde veya geçerli işlemle (MSHCTX_LOCAL) aynı bilgisayardaki başka bir işlemde oluşabilir.

pvDestContext
Gelecekte kullanım için ayrılmıştır; NULL olmalıdır.

mshlflags
Bu işlem tamamlandığında, istemci işleminde ara sunucu oluşturmak için kullanılacak CLSID işaretçisi.

pCid

İade Değeri

Başarılı olursa S_OK; aksi takdirde S_FALSE.

FtmBase::MarshalInterface

Bir akışa, bazı istemci işlemlerinde bir proxy nesnesi başlatmak için gereken verileri yazar.

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

Parametreler

pStm
Hazırlama sırasında kullanılacak akışın işaretçisi.

Riid
Sıralanacak arabirimin tanımlayıcısına başvuru. Bu arabirim arabirimden IUnknown türetilmelidir.

Pv
Sıralanacak arabirim işaretçisinin işaretçisi; çağıranın istenen arabirime bir işaretçisi yoksa NULL olabilir.

dwDestContext
Belirtilen arabirimin özetlenemeyen hedef bağlamı.

Bir veya daha fazla MSHCTX numaralandırma değeri belirtin.

Özetleme, geçerli işlemin başka bir dairesinde (MSHCTX_INPROC) veya geçerli işlemle aynı bilgisayarda (MSHCTX_LOCAL) başka bir işlemde oluşabilir.

pvDestContext
Gelecekte kullanım için ayrılmıştır; sıfır olmalıdır.

mshlflags
Sıralanacak verilerin istemci işlemine (tipik durum) geri mi aktarılacağı yoksa birden çok istemci tarafından alınabileceği genel bir tabloya mı yazılacağı belirtir.

İade Değeri

S_OK Arabirim işaretçisi başarıyla sıralandı.

E_NOINTERFACE Belirtilen arabirim desteklenmiyor.

STG_E_MEDIUMFULL Akış dolu.

E_FAIL İşlem başarısız oldu.

FtmBase::marshaller_

Serbest iş parçacıklı sıralayıcısına bir başvuru tutar.

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

FtmBase::ReleaseMarshalData

Sıralanmış veri paketini yok eder.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Parametreler

pStm
Yok edilecek veri paketini içeren bir akışın işaretçisi.

İade Değeri

Başarılı olursa S_OK; aksi takdirde, hatayı gösteren bir HRESULT.

FtmBase::UnmarshalInterface

Yeni oluşturulan bir ara sunucuyu başlatır ve bu ara sunucuya bir arabirim işaretçisi döndürür.

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

Parametreler

pStm
Arabirim işaretçisinin özetlendirileceği akışın işaretçisi.

Riid
Özetlenemeyen arabirimin tanımlayıcısına başvuru.

Ppv
Bu işlem tamamlandığında, riid içinde istenen arabirim işaretçisini alan bir işaretçi değişkeninin adresi. Bu işlem başarılı olursa, *ppv özetlenemeyen arabirimin istenen arabirim işaretçisini içerir.

İade Değeri

Başarılı olursa S_OK; aksi takdirde, E_NOINTERFACE veya E_FAIL.