共用方式為


IEmptyVolumeCache2::InitializeEx 方法 (emptyvc.h)

初始化磁碟清除處理程式。 它提供比 Initialize 更好的當地語系化支援。

語法

HRESULT InitializeEx(
  [in]      HKEY    hkRegKey,
  [in]      LPCWSTR pcwszVolume,
  [in]      LPCWSTR pcwszKeyName,
  [out]     LPWSTR  *ppwszDisplayName,
  [out]     LPWSTR  *ppwszDescription,
  [out]     LPWSTR  *ppwszBtnText,
  [in, out] DWORD   *pdwFlags
);

參數

[in] hkRegKey

類型: HKEY

保存處理程式物件相關信息之登錄機碼的句柄。

[in] pcwszVolume

類型: LPCWSTR

具有磁碟區根目錄之 Null 終止 Unicode 字串的指標,例如 “C:”。

[in] pcwszKeyName

類型: LPCWSTR

具有處理程式登錄機碼名稱之 Null 終止 Unicode 字串的指標。

[out] ppwszDisplayName

類型: LPWSTR*

以 Null 終止的 Unicode 字串指標,其名稱會顯示在磁碟清除管理員的處理程式清單中。 您必須將值指派給此參數。

[out] ppwszDescription

類型: LPWSTR*

從磁碟清除管理員的可用磁碟清除程式清單中選取此物件時,將會顯示的 Null 終止 Unicode 字串指標。 您必須將值指派給此參數。

[out] ppwszBtnText

類型: LPWSTR*

以 Null 終止的 Unicode 字串指標,其中包含將在磁碟清除管理員的 [ 設定 ] 按鈕上顯示的文字。 如果 已設定EVCF_HASSETTINGS 旗標,您必須將值指派給 ppwszBtnText。 否則,您可以將它設定為 NULL

[in, out] pdwFlags

類型: DWORD*

用來將資訊傳遞至處理程式的旗標,並傳回磁碟清除管理員。

這些旗標可以傳入物件:

EVCF_OUTOFDISKSPACE

如果設定此旗標,使用者就會離開磁碟驅動器上的磁碟空間。 收到此旗標時,即使造成效能遺失,處理程式也應該積極釋放磁碟空間。 不過,處理程式不應該刪除會導致應用程式失敗的檔案,或使用者遺失數據。

EVCF_SETTINGSMODE

如果磁碟清除管理員會依排程執行,則會設定 EVCF_SETTINGSMODE 旗標。 您必須將值指派給 ppwszDisplayNameppwszDescription 參數。 如果設定此旗標,磁碟清除管理員將不會呼叫 GetSpaceUsedPurgeShowProperties。 由於不會呼叫 清除 ,因此 必須由 InitializeEx 處理清除。 處理程式應該忽略 pcwszVolume 參數,並清除任何不需要的檔案,而不論它們位於哪個磁碟驅動器上。 因為使用者意見反應沒有機會,所以應該只觸及最安全清除的檔案。

這些旗標可由處理程式傳回磁碟清除管理員:

EVCF_DONTSHOWIFZERO

如果沒有要刪除的檔案,請設定此旗標。 呼叫 GetSpaceUsed 時,請將 pdwSpaceUsed 參數設定為零,而磁碟清除管理員會從其清單中省略處理程式。

EVCF_ENABLEBYDEFAULT

將此旗標設定為在磁碟清除管理員清單中預設檢查處理程式。 除非使用者清除處理程式的複選框,否則每次執行磁碟清除公用程式時,都會執行處理程式。 清除複選框之後,除非使用者再次選取處理程式,否則不會執行處理程式。

EVCF_ENABLEBYDEFAULT_AUTO

將此旗標設定為讓處理程式在排程清除期間自動執行。 只有在刪除檔案時,才應該設定此旗標。 如同 EVCF_ENABLEBYDEFAULT,用戶可以選擇不要在磁碟清除管理員清單中清除處理程式的複選框來執行處理程式。

EVCF_HASSETTINGS

設定此旗標以指出處理程式可以顯示UI。 簡單 UI 的範例是顯示可刪除檔案的清單框,可讓使用者選取要刪除的檔案。 磁碟清除管理員接著會顯示清除處理程式描述下方的按鈕。 用戶按下此按鈕以要求UI。 使用 ppwszBtnText 參數來指定按鈕的文字。

EVCF_REMOVEFROMLIST

設定此旗標以從磁碟清除管理員清單中移除處理程式。 所有登錄信息都會遭到刪除,而且在還原機碼及其值之前,無法再次執行處理程式。 此旗標主要用於一次性清除作業。

傳回值

類型: HRESULT

這個方法可以傳回其中一個值。

傳回碼 描述
S_OK
成功。
S_FALSE
沒有要刪除的檔案。
E_ABORT
清除作業已提前結束。
E_FAIL
清除作業失敗。

備註

Windows 2000 磁碟清除管理員會先呼叫 IEmptyVolumeCache2::InitializeEx 來初始化磁碟清除處理程式。 只有在未實作 IEmptyVolumeCache2 介面時,才會呼叫 Initialize。 Windows 98 磁碟清除管理員僅支援 Initialize

InitializeEx 旨在提供比 Initialize 更好的當地語系化支援。 呼叫 InitializeEx 時,處理程式應用程式必須將適當本地化的值指派給 ppwszDisplayNameppwszDescription 參數。 如果啟用 [ 設定 ] 按鈕,您也必須將值指派給 ppwszBtnText 參數。 不同於 Initialize,如果您將這些字串設定為 NULL ,以通知磁碟清除管理員從登錄擷取預設值, InitializeEx 將會失敗。

使用 CoTaskMemAlloc 為透過 ppwszDisplayNameppwszDescriptionppwszBtnText 傳回的字串配置記憶體。 當不再需要磁碟清理管理員時,磁碟清除管理員會釋放記憶體。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 emptyvc.h
Dll Shell32.dll (5.0 版或更新版本)