Bagikan melalui


Kelas FtmBase

Mewakili objek marshaler berulir bebas.

Sintaks

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

Keterangan

Untuk informasi selengkapnya, lihat Kelas RuntimeClass.

Anggota

Konstruktor Publik

Nama Deskripsi
FtmBase::FtmBase Menginisialisasi instans baru kelas FtmBase.

Metode Publik

Nama Deskripsi
FtmBase::CreateGlobalInterfaceTable Membuat tabel antarmuka global (GIT).
FtmBase::D isconnectObject Secara paksa merilis semua koneksi eksternal ke objek. Server objek memanggil implementasi objek dari metode ini sebelum mematikan.
FtmBase::GetMarshalSizeMax Dapatkan batas atas pada jumlah byte yang diperlukan untuk melakukan marshal penunjuk antarmuka yang ditentukan pada objek yang ditentukan.
FtmBase::GetUnmarshalClass Mendapatkan CLSID yang digunakan COM untuk menemukan DLL yang berisi kode untuk proksi yang sesuai. COM memuat DLL ini untuk membuat instans proksi yang tidak diinisialisasi.
FtmBase::MarshalInterface Menulis ke dalam aliran data yang diperlukan untuk menginisialisasi objek proksi dalam beberapa proses klien.
FtmBase::ReleaseMarshalData Menghancurkan paket data marshal.
FtmBase::UnmarshalInterface Menginisialisasi proksi yang baru dibuat dan mengembalikan penunjuk antarmuka ke proksi tersebut.

Anggota Data Publik

Nama Deskripsi
FtmBase::marshaller_ Memegang referensi ke marshaler utas gratis.

Hierarki Warisan

FtmBase

Persyaratan

Header: ftm.h

Namespace: Microsoft::WRL

FtmBase::CreateGlobalInterfaceTable

Membuat tabel antarmuka global (GIT).

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Parameter

git
Ketika operasi ini selesai, penunjuk ke tabel antarmuka global.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, HRESULT yang menunjukkan kesalahan.

Keterangan

Untuk informasi selengkapnya, lihat IGlobalInterfaceTable .

FtmBase::D isconnectObject

Secara paksa merilis semua koneksi eksternal ke objek. Server objek memanggil implementasi objek dari metode ini sebelum mematikan.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Parameter

dwReserved
Dicadangkan untuk digunakan di masa mendatang; harus nol.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, HRESULT yang menunjukkan kesalahan.

FtmBase::FtmBase

Menginisialisasi instans baru kelas FtmBase.

FtmBase();

FtmBase::GetMarshalSizeMax

Dapatkan batas atas pada jumlah byte yang diperlukan untuk melakukan marshal penunjuk antarmuka yang ditentukan pada objek yang ditentukan.

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

Parameter

riid
Referensi ke pengidentifikasi antarmuka yang akan dirusak.

Pv
Penunjuk antarmuka yang akan dinaikkan; bisa NULL.

dwDestContext
Konteks tujuan di mana antarmuka yang ditentukan akan dilepas napasnya.

Tentukan satu atau beberapa nilai enumerasi MSHCTX.

Saat ini, unmarshaling dapat terjadi baik di apartemen lain dari proses saat ini (MSHCTX_INPROC) atau dalam proses lain pada komputer yang sama dengan proses saat ini (MSHCTX_LOCAL).

pvDestContext
Dicadangkan untuk digunakan di masa mendatang; harus NULL.

mshlflags
Bendera yang menunjukkan apakah data yang akan diluncurkan akan ditransmisikan kembali ke proses klien — kasus umum — atau ditulis ke tabel global, di mana data tersebut dapat diambil oleh beberapa klien. Tentukan satu atau beberapa nilai enumerasi MSHLFLAGS.

pSize
Ketika operasi ini selesai, arahkan ke batas atas pada jumlah data yang akan ditulis ke aliran marshaling.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, E_FAIL atau E_NOINTERFACE.

FtmBase::GetUnmarshalClass

Mendapatkan CLSID yang digunakan COM untuk menemukan DLL yang berisi kode untuk proksi yang sesuai. COM memuat DLL ini untuk membuat instans proksi yang tidak diinisialisasi.

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

Parameter

riid
Referensi ke pengidentifikasi antarmuka yang akan dirusak.

Pv
Arahkan ke antarmuka yang akan di-marshal; dapat berupa NULL jika pemanggil tidak memiliki penunjuk ke antarmuka yang diinginkan.

dwDestContext
Konteks tujuan di mana antarmuka yang ditentukan akan dilepas napasnya.

Tentukan satu atau beberapa nilai enumerasi MSHCTX.

Unmarshaling dapat terjadi baik di apartemen lain dari proses saat ini (MSHCTX_INPROC) atau dalam proses lain pada komputer yang sama dengan proses saat ini (MSHCTX_LOCAL).

pvDestContext
Dicadangkan untuk digunakan di masa mendatang; harus NULL.

mshlflags
Ketika operasi ini selesai, arahkan ke CLSID untuk digunakan untuk membuat proksi dalam proses klien.

pCid

Tampilkan Nilai

S_OK jika berhasil; jika tidak, S_FALSE.

FtmBase::MarshalInterface

Menulis ke dalam aliran data yang diperlukan untuk menginisialisasi objek proksi dalam beberapa proses klien.

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

Parameter

pStm
Penunjuk ke aliran yang akan digunakan selama marshaling.

riid
Referensi ke pengidentifikasi antarmuka yang akan dirusak. Antarmuka ini harus berasal dari antarmuka IUnknown.

Pv
Arahkan ke penunjuk antarmuka untuk dinamai; dapat berupa NULL jika pemanggil tidak memiliki penunjuk ke antarmuka yang diinginkan.

dwDestContext
Konteks tujuan di mana antarmuka yang ditentukan akan dilepas napasnya.

Tentukan satu atau beberapa nilai enumerasi MSHCTX.

Unmarshaling dapat terjadi di apartemen lain dari proses saat ini (MSHCTX_INPROC) atau dalam proses lain pada komputer yang sama dengan proses saat ini (MSHCTX_LOCAL).

pvDestContext
Dicadangkan untuk digunakan di masa mendatang; harus nol.

mshlflags
Menentukan apakah data yang akan di-marshalasi akan ditransmisikan kembali ke proses klien — kasus umum — atau ditulis ke tabel global, di mana data dapat diambil oleh beberapa klien.

Tampilkan Nilai

S_OK Penunjuk antarmuka berhasil dinapaskan.

E_NOINTERFACE Antarmuka yang ditentukan tidak didukung.

STG_E_MEDIUMFULL Aliran penuh.

E_FAIL Operasi gagal.

FtmBase::marshaller_

Memegang referensi ke marshaler utas gratis.

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

FtmBase::ReleaseMarshalData

Menghancurkan paket data marshal.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Parameter

pStm
Penunjuk ke aliran yang berisi paket data yang akan dihancurkan.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, HRESULT yang menunjukkan kesalahan.

FtmBase::UnmarshalInterface

Menginisialisasi proksi yang baru dibuat dan mengembalikan penunjuk antarmuka ke proksi tersebut.

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

Parameter

pStm
Penunjuk ke aliran tempat penunjuk antarmuka tidak akan dirusak.

riid
Referensi ke pengidentifikasi antarmuka yang akan dibatalkan namanya.

ppv
Ketika operasi ini selesai, alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid. Jika operasi ini berhasil, *ppv berisi penunjuk antarmuka antarmuka yang diminta untuk tidak dirusak.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, E_NOINTERFACE atau E_FAIL.