ICopyHookA 介面 (shlobj.h)
公開方法,這個方法會建立
遺產
ICopyHookA 介面繼承自 IUnknown 介面。
方法
ICopyHookA 介面具有這些方法。
ICopyHookA::CopyCallback 決定是否允許殼層移動、複製、刪除或重新命名資料夾或列印機物件。 (ANSI) |
言論
複製攔截處理程式,這是 OLE 進程內伺服器(dll),不會執行工作本身,但它會核准或拒絕動作。 如果殼層收到複製攔截處理程式的核准,它會執行文件系統作業。 複製攔截處理程式不會得知作業成功,因此除非使用 FindFirstChangeNotification
資料夾物件可以有多個複製攔截處理程式。 例如,即使Shell已經有針對特定資料夾物件註冊的複製攔截處理程式,您仍然可以註冊自己的其中一個。 如果為對象註冊兩個或多個複製攔截處理程式,Shell 只會在執行其中一個指定的文件系統作業之前呼叫每個處理程式。
殼層會直接初始化 ICopyHookA ,而不先使用 IShellExtInit 介面。
CopyCallback 會傳回 int 值,指出殼層是否應該執行作業。 Shell 會呼叫為資料夾物件註冊的每個複製攔截處理程式,直到呼叫所有處理程式,或直到其中一個處理程式傳回 IDYES 以外的值為止。 處理程式會傳回 IDYES 以指定應該執行作業,或 IDNO 或 IDCANCEL 指定應該停止作業。
當您想要控制指定物件上是否執行這些檔案系統作業時,請實作複製攔截處理程式。 例如,您可能想要在共享資料夾上使用複製攔截處理程式。
您不會直接呼叫此 Shell 擴充功能。 在移動、複製、刪除或重新命名Shell資料夾物件之前,殼層會先呼叫 copyCallback。
注意
shlobj.h 標頭會將 ICopyHook 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
標頭 | shlobj.h |