CreateObjrefMoniker 函式 (objbase.h)
根據物件的指標建立 OBJREF Moniker。
語法
HRESULT CreateObjrefMoniker(
[in, optional] LPUNKNOWN punk,
[out] LPMONIKER *ppmk
);
參數
[in, optional] punk
Moniker 要表示之物件上的 IUnknown 介面指標。
[out] ppmk
建立之 OBJREF Moniker 上 IMoniker 介面的指標位址。
傳回值
此函式可以傳回標準傳回值E_OUTOFMEMORY、E_UNEXPECTED和S_OK。
備註
用戶端會使用 OBJREF Moniker 來取得伺服器位址空間中執行中物件的封送處理指標。
伺服器通常會呼叫 CreateObjrefMoniker 來建立 OBJREF Moniker,然後呼叫 IMoniker::GetDisplayName,最後釋放 Moniker。 OBJREF Moniker 的顯示名稱的格式如下:
OBJREF:nnnnnnnn
其中 nnnnnnnn 是任意長 base-64 編碼,封裝執行中物件的電腦位置、進程端點和介面指標識別碼 (IPID)
然後,可以將顯示名稱傳送至用戶端做為文字。 例如,顯示名稱可以位於用戶端下載的 HTML 頁面上。
用戶端可以將顯示名稱傳遞至 MkParseDisplayName,這會根據顯示名稱建立 OBJREF Moniker。 呼叫 Monikers IMoniker::BindToObject 方法,然後取得伺服器上執行中實例的封送處理指標。
例如,Active Server Page 中包含的伺服器端 COM 元件可以建立 OBJREF Moniker、取得其顯示名稱,並將顯示名稱寫入傳送至用戶端瀏覽器的 HTML 輸出。 在用戶端上執行的腳本可以使用顯示名稱來存取執行中的物件本身。 例如,用戶端 Visual Basic 腳本可以將顯示名稱儲存在名為 strMyName 的變數中,並包含這一行:
objMyInstance = GetObject(strMyName)
腳本引擎會在內部呼叫 MkParseDisplayName 和 IMoniker::BindToObject,然後腳本可以使用 objMyInstance 直接參照執行中的物件。
需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objbase.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |
API 集合 | ext-ms-win-com-ole32-l1-1-5 (Windows 10 10.0.15063 版) |