FtmBase 類別
代表無限制執行緒封送處理器物件。
語法
class FtmBase :
public Microsoft::WRL::Implements<
Microsoft::WRL::RuntimeClassFlags<WinRtClassicComMix>,
Microsoft::WRL::CloakedIid<IMarshal>
>;
備註
如需詳細資訊,請參閱 RuntimeClass 類別 。
成員
公用建構函式
名稱 | 描述 |
---|---|
FtmBase::FtmBase | 初始化 FtmBase 類別的新執行個體。 |
公用方法
名稱 | 描述 |
---|---|
FtmBase::CreateGlobalInterfaceTable | 建立全域介面資料表 (GIT)。 |
FtmBase::D isconnectObject | 強制釋放物件的所有外部連接。 物件的伺服器會在關閉之前呼叫物件的這個方法實作。 |
FtmBase::GetMarshalSizeMax | 取得在指定物件上封送處理指定介面指標所需的位元組數目上限。 |
FtmBase::GetUnmarshalClass | 取得 COM 用來尋找包含對應 Proxy 程式碼的 DLL 的 CLSID。 COM 會載入此 DLL,以建立未初始化的 Proxy 實例。 |
FtmBase::MarshalInterface | 寫入資料流程,以在某些用戶端程式中初始化 Proxy 物件所需的資料。 |
FtmBase::ReleaseMarshalData | 終結封送處理的資料封包。 |
FtmBase::UnmarshalInterface | 初始化新建立的 Proxy,並傳回該 Proxy 的介面指標。 |
公用資料成員
名稱 | 描述 |
---|---|
FtmBase::marshaller_ | 保存自由執行緒封送處理器的參考。 |
繼承階層架構
FtmBase
需求
標頭: ftm.h
命名空間: Microsoft::WRL
FtmBase::CreateGlobalInterfaceTable
建立全域介面資料表 (GIT)。
static HRESULT CreateGlobalInterfaceTable(
__out IGlobalInterfaceTable **git
);
參數
Git
此作業完成時,全域介面資料表的指標。
傳回值
如果作業成功,會傳送 S_OK;反之則傳送表示錯誤的 HRESULT 值。
備註
如需詳細資訊,請參閱IGlobalInterfaceTable
。
FtmBase::D isconnectObject
強制釋放物件的所有外部連接。 物件的伺服器會在關閉之前呼叫物件的這個方法實作。
STDMETHODIMP DisconnectObject(
__in DWORD dwReserved
) override;
參數
dwReserved
保留以備將來之用;必須為零。
傳回值
如果作業成功,會傳送 S_OK;反之則傳送表示錯誤的 HRESULT 值。
FtmBase::FtmBase
初始化 FtmBase
類別的新執行個體。
FtmBase();
FtmBase::GetMarshalSizeMax
取得在指定物件上封送處理指定介面指標所需的位元組數目上限。
STDMETHODIMP GetMarshalSizeMax(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out DWORD *pSize
) override;
參數
riid
要封送處理之介面識別碼的參考。
光伏
要封送處理的介面指標;可以是 Null。
dwDestCoNtext
指定介面要取消封殺的目的地內容。
指定一或多個 MSHCTX 列舉值。
目前,取消分界可能發生在目前進程的另一個公寓(MSHCTX_INPROC)或同一部電腦上的另一個進程中(MSHCTX_LOCAL)。
pvDestCoNtext
保留供日後使用;必須是 Null。
mshlflags
旗標,指出要封送處理的資料是否要傳輸回用戶端進程,也就是一般案例,或寫入至全域資料表,其中可由多個用戶端擷取。 指定一或多個 MSHLFLAGS 列舉值。
pSize
當此作業完成時,要寫入封送處理資料流程之資料量上限的指標。
傳回值
如果成功,S_OK;否則,E_FAIL或E_NOINTERFACE。
FtmBase::GetUnmarshalClass
取得 COM 用來尋找包含對應 Proxy 程式碼的 DLL 的 CLSID。 COM 會載入此 DLL,以建立未初始化的 Proxy 實例。
STDMETHODIMP GetUnmarshalClass(
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags,
__out CLSID *pCid
) override;
參數
riid
要封送處理之介面識別碼的參考。
光伏
要封送處理之介面的指標;如果呼叫端沒有所需介面的指標,可以是 Null。
dwDestCoNtext
指定介面要取消封殺的目的地內容。
指定一或多個 MSHCTX 列舉值。
取消分量可能發生在目前進程的另一個 Apartment(MSHCTX_INPROC)或與目前進程相同的電腦上另一個進程(MSHCTX_LOCAL)。
pvDestCoNtext
保留供日後使用;必須是 Null。
mshlflags
當此作業完成時,要用來在用戶端程式中建立 Proxy 的 CLSID 指標。
pCid
傳回值
如果成功,S_OK;否則,S_FALSE。
FtmBase::MarshalInterface
寫入資料流程,以在某些用戶端程式中初始化 Proxy 物件所需的資料。
STDMETHODIMP MarshalInterface(
__in IStream *pStm,
__in REFIID riid,
__in_opt void *pv,
__in DWORD dwDestContext,
__reserved void *pvDestContext,
__in DWORD mshlflags
) override;
參數
pStm
封送處理期間所要使用的資料流程指標。
riid
要封送處理之介面識別碼的參考。 這個介面必須衍生自 IUnknown
介面。
光伏
要封送處理之介面指標的指標;如果呼叫端沒有所需介面的指標,可以是 Null。
dwDestCoNtext
指定介面要取消封殺的目的地內容。
指定一或多個 MSHCTX 列舉值。
取消分割可能發生在目前進程的另一個 Apartment(MSHCTX_INPROC)或與目前進程相同電腦上的另一個進程中(MSHCTX_LOCAL)。
pvDestCoNtext
保留以備將來之用;必須為零。
mshlflags
指定要封送處理的資料是要傳輸回用戶端進程,也就是一般案例,還是寫入至全域資料表,以便由多個用戶端擷取資料。
傳回值
S_OK介面指標已成功封送處理。
E_NOINTERFACE不支援指定的介面。
STG_E_MEDIUMFULL資料流程已滿。
E_FAIL 作業失敗。
FtmBase::marshaller_
保存自由執行緒封送處理器的參考。
Microsoft::WRL::ComPtr<IMarshal> marshaller_; ;
FtmBase::ReleaseMarshalData
終結封送處理的資料封包。
STDMETHODIMP ReleaseMarshalData(
__in IStream *pStm
) override;
參數
pStm
資料流程的指標,其中包含要終結的資料封包。
傳回值
如果作業成功,會傳送 S_OK;反之則傳送表示錯誤的 HRESULT 值。
FtmBase::UnmarshalInterface
初始化新建立的 Proxy,並傳回該 Proxy 的介面指標。
STDMETHODIMP UnmarshalInterface(
__in IStream *pStm,
__in REFIID riid,
__deref_out void **ppv
) override;
參數
pStm
介面指標要取消分流之資料流程的指標。
riid
要取消封殺之介面識別碼的參考。
Ppv
當此作業完成時,接收 riid 中所 要求介面指標的指標變數位址。 如果這項作業成功,* ppv 會包含要取消封殺之介面的要求介面指標。
傳回值
如果成功,S_OK;否則,E_NOINTERFACE或E_FAIL。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應