共用方式為


如何建立資料處理程式

當檔案複製到剪貼簿或拖放時,Shell 會建立支援各種標準 剪貼簿格式的資料物件。 對於屬於特定檔案類型的檔案,您可以實作和註冊 資料處理程式來擴充可用的剪貼簿格式。 傳輸檔案類型的檔案時,Shell 會在使用其中一個自訂格式時,將呼叫至資料物件的 IDataObject 介面。

建立 殼層延伸模組處理常式中會討論實作和註冊 Shell 延伸模組處理常式的一般程式。 本檔著重于資料處理程式專屬的實作層面。

指示

步驟 1:實作資料處理程式

如同所有 Shell 延伸模組處理常式,資料處理程式是同進程元件物件模型, (COM) 實作為 DLL 的物件。 除了 IUnknown之外,它們還會匯出兩個介面: IPersistFileIDataObject

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}

建立 Shell 擴充功能處理常式

IPersistFile

IDataObject