共用方式為


GetProcessReference 函式 (shlwapi.h)

擷取 SetProcessReference 所提供的進程特定物件,遞增參考計數以讓進程保持運作。

語法

LWSTDAPI GetProcessReference(
  [out] IUnknown **punk
);

參數

[out] punk

當此函式成功傳回時,指標的位址會指向 SetProcessReference 提供給進程的 物件。 當不再需要此資源時,您的應用程式會負責釋出此資源。

自由線程 IUnknown 的指標。 元件可以透過 SHGetInstanceExplorer) 使用此介面 (,以防止主機進程終止。 此值可以是 NULL,在此情況下,進程參考已不再提供給元件使用。

傳回值

備註

有數個元件,例如殼層延伸模塊處理程式,會實作為 DLL,並在主機進程中執行,例如 Windows 檔案總管 (Explorer.exe) 或 Windows Internet Explorer (Iexplore.exe) 。 一般而言,當使用者關閉主機進程時,元件也會立即關閉。 這類突然終止可能會為某些元件建立問題。 例如,如果元件使用背景線程來下載數據或執行使用者介面函式,可能需要額外的時間來安全地關閉本身。

GetProcessReference 允許在主機進程中執行的元件,在主機進程上保存參考。 GetProcessReference 會遞增主機的參考計數,並傳回主機 IUnknown 介面的指標。 藉由保留該參考,元件可能會防止主機進程提前關閉。 元件完成必要的處理之後,應該呼叫 (*punk) -Release> 以釋放主機的參考,並允許進程終止。

注意 如果 GetProcessReference 成功,元件必須在不再需要時釋放主機的參考。 否則,與進程相關聯的所有資源都會保留在記憶體中。 *punk 所指向的 IUnknown 介面只能用來釋放此參考。 元件無法使用 (*punk) ->QueryInterface 來要求其他介面指標。
 
只有在從先前稱為 SetProcessReference 的應用程式呼叫 GetProcessReference 以設定進程參考時,GetProcessReference 才會成功。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Api-ms-win-shcore-thread-L1-1-0.dll

另請參閱

SHGetInstanceExplorer

SetProcessReference

Windows API 集合