如何建立資料處理程式
當檔案複製到剪貼簿或拖放時,Shell 會建立支援各種標準 剪貼簿格式的資料物件。 對於屬於特定檔案類型的檔案,您可以實作和註冊 資料處理程式來擴充可用的剪貼簿格式。 傳輸檔案類型的檔案時,Shell 會在使用其中一個自訂格式時,將呼叫至資料物件的 IDataObject 介面。
建立 殼層延伸模組處理常式中會討論實作和註冊 Shell 延伸模組處理常式的一般程式。 本檔著重于資料處理程式專屬的實作層面。
指示
步驟 1:實作資料處理程式
如同所有 Shell 延伸模組處理常式,資料處理程式是同進程元件物件模型, (COM) 實作為 DLL 的物件。 除了 IUnknown之外,它們還會匯出兩個介面: IPersistFile 和 IDataObject。
Shell 會透過其 IPersistFile 介面初始化處理常式。 它會使用此介面來要求處理常式的類別識別碼 (CLSID) ,並提供檔案名。 如需如何實作 Shell 延伸模組處理常式的一般討論,包括 IPersistFile 介面,請參閱 建立殼層擴充功能處理常式。
初始化資料處理程式之後,Shell 會在使用其中一個自訂格式時,從資料物件呼叫處理常式的 IDataObject 介面。
步驟 2:註冊資料處理程式
資料處理程式會在檔案類型的ProgID子機碼下註冊,如下所示:HKEY_CLASSES_ROOT\ProgID\殼層ex\DataHandler
在 DataHandler 下為處理常式建立名為 的子機碼,並將該處理常式子機碼的預設值設定為處理常式 CLSID GUID 的字串格式。 如需如何註冊 Shell 延伸模組處理常式的一般討論,請參閱 建立殼層延伸模組處理常式。
下列範例說明啟用範例 .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
DataHandler
(Default) = {00000000-1111-2222-3333-444444444444}
相關主題