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 來要求其他介面指標。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shlwapi.h |
程式庫 | Shlwapi.lib |
Dll | Api-ms-win-shcore-thread-L1-1-0.dll |