如何建立置放處理常式
根據預設,檔案不會卸載目標。 您可以藉由實作和註冊置放處理常式,將檔案類型的成員設為置放目標。
如果卸載處理常式已註冊檔案類型,每當物件被拖曳或卸載到檔案類型的成員時,就會呼叫它。 Shell 會藉由在處理常式的 IDropTarget 介面上呼叫適當的方法來管理作業。
建立 殼層延伸模組處理常式中會討論實作和註冊 Shell 延伸模組處理常式的一般程式。 本檔著重于卸載處理常式特有的實作層面。
指示
步驟 1:實作置放處理常式
如同所有殼層擴充處理常式,置放處理常式是同進程元件物件模型, (COM) 實作為 DLL 的物件。 除了 IUnknown之外,它們還會匯出兩個介面: IPersistFile 和 IDropTarget。
Shell 會透過其 IPersistFile 介面初始化處理常式。 它會使用此介面來要求處理常式的類別識別碼, (CLSID) 並提供檔案名。 如需如何實作殼層擴充處理常式的一般討論,包括 IPersistFile 介面,請參閱 建立殼層擴充處理常式。
一旦初始化置放處理常式,Shell 就會在處理常式的 IDropTarget 介面上呼叫適當的方法。
步驟 2:註冊置放處理常式
卸載處理常式會在此檔案類型的子機碼下註冊。
HKEY_CLASSES_ROOT
ProgID
shellex
DropHandler
為處理常式建立名為 DropHandler 的子機碼,並將子機碼的預設值設定為處理常式 CLSID GUID 的字串形式。 如需如何註冊殼層擴充處理常式的一般討論,請參閱 建立殼層延伸模組處理常式。
下列範例說明啟用 .myp 檔案類型之卸載處理常式的登錄專案。
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
CLSID
{00000000-1111-2222-3333-444444444444}
InProcServer32
(Default) = C:\MyDir\MyCommand.dll
ThreadingModel = Apartment
MyProgram.1
(Default) = MyProgram Application
shellex
DropHandler
(Default) = {00000000-1111-2222-3333-444444444444}
相關主題