共用方式為


IWMDMStorageControl2::Insert2 方法 (mswmdm.h)

Insert2 方法會將內容放入記憶體旁/旁邊。 這個方法允許應用程式指定新的目的地名稱,並提供自定義 COM 物件的指標,藉此擴充 IWMDMStorageControl::Insert

語法

HRESULT Insert2(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFileSource,
  [in]  LPWSTR         pwszFileDest,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [in]  IUnknown       *pUnknown,
  [out] IWMDMStorage   **ppNewObject
);

參數

[in] fuMode

用於 Insert2 作業的處理模式。 下表列出可在 fuMode 參數中指定的處理模式。 您必須只指定前兩種模式的其中一個、只指定其中一個 STORAGECONTROL 模式,以及其中一個 CONTENT 模式。 如果同時指定WMDM_MODE_BLOCK和WMDM_MODE_THREAD,則會使用區塊模式。

組合 模式 Description
完全是下列其中一項: WMDM_MODE_BLOCK 作業是使用區塊模式處理來執行。 呼叫在作業完成之前不會傳回。
- WMDM_MODE_THREAD 作業是使用線程模式處理來執行。 呼叫會立即傳回,且作業會在背景線程中執行。
選擇性 WMDM_MODE_QUERY 系統會執行測試來判斷插入作業是否成功,但不會執行插入。
完全是下列其中一項: WMDM_STORAGECONTROL_INSERTBEFORE 物件會插入目標物件之前。
- WMDM_STORAGECONTROL_INSERTAFTER 物件會插入目標對象之後。
- WMDM_STORAGECONTROL_INSERTINTO 物件會插入目前的物件中。 只有在目前對像是資料夾時,才能運作。
選擇性 WMDM_FILE_CREATE_OVERWRITE 物件將會取代目標物件。
完全是下列其中一項: WMDM_CONTENT_FILE 正在插入的內容是檔案。
- WMDM_CONTENT_FOLDER 正在插入的內容是資料夾。 這不會傳輸資料夾的內容。
選擇性 WMDM_CONTENT_OPERATIONINTERFACE 正在插入的內容是作業介面。 內容的數據應該寫入應用程式實作 的IWMDMOperation 介面。
選擇性 WMDM_MODE_PROGRESS 進度通知應透過 pProgress 參數傳送。
選擇性的其中一項: WMDM_MODE_TRANSFER_PROTECTED 插入處於受保護的傳輸模式。
- WMDM_MODE_TRANSFER_UNPROTECTED 插入處於未受保護的傳輸模式。

[in] pwszFileSource

寬字元、 以 Null 結尾的字串指標,指出要傳送至裝置之物件的完整名稱和路徑。 如果在 fuMode 中指定WMDM_CONTENT_OPERATIONINTERFACE,此參數必須是 NULL

[in] pwszFileDest

裝置上的選擇性檔名。 如果未指定,而且應用程式會將IWMDMOperation指標傳遞給 pOperation,Windows Media 裝置管理員 會呼叫 IWMDMOperation::GetObjectName 來要求目的地名稱。 如果未指定,且應用程式未使用 pOperation,則會使用源檔名稱和擴展名,而不需路徑) (。

[in] pOperation

IWMDMOperation 介面的選擇性指標,以控制內容傳送至媒體裝置。 如果指定, fuMode 必須包含WMDM_CONTENT_OPERATIONINTERFACE旗標。 如果在 fuMode 中指定了 WMDM_CONTENT_FILE 或 WMDM_CONTENT_FOLDER,此參數必須是 NULL

[in] pProgress

IWMDMProgress 介面的選擇性指標,以將動作進度回報回應用程式。 如果指定, fuMode 應該包含WMDM_MODE_PROGRESS。

[in] pUnknown

要傳遞至安全內容提供者之任何自定義 COM 物件的選擇性 IUnknown 指標。 如果應用程式有足夠的安全內容提供者相關信息,這可讓您將自定義資訊傳遞至安全內容提供者。

[out] ppNewObject

將包含新內容的 IWMDMStorage 介面指標。 呼叫端必須在完成時釋放此介面。

傳回值

方法會傳回 HRESULT。 Windows Media 裝置管理員 中的所有介面方法都可以傳回下列任何錯誤碼類別:

  • 標準 COM 錯誤碼
  • 轉換成 HRESULT 值的 Windows 錯誤碼
  • Windows Media 裝置管理員 錯誤碼
如需可能錯誤碼的廣泛清單,請參閱 錯誤碼

備註

如果裝置支援 IWMDMStorageControl3::Insert3,這是要使用的慣用方法。

如果指定WMDM_MODE_THREAD旗標,您應該呼叫 IWMDMProgress2::End2IWMDMProgress3::End3 來取得完成狀態。 這些方法可確保作業已完成,也會傳回具有成功或失敗資訊的 HRESULT。

如果應用程式使用 WMDM_MODE_THREAD 並傳遞非 NullpProgress 參數,則應用程式必須確保 pProgress 所屬的物件在插入作業完成之前不會終結,因為 Windows Media 裝置管理員 會將進度通知傳送給這個物件。 只有在收到 End 通知之後,才能終結此物件。 若無法這麼做,將會導致存取違規。

規格需求

需求
目標平台 Windows
標頭 mswmdm.h
程式庫 Mssachlp.lib

另請參閱

IWMDMDevice::GetStatus

IWMDMOperation 介面

IWMDMProgress 介面

IWMDMStorage 介面

IWMDMStorageControl2 介面

IWMDMStorageControl3::Insert3