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,则使用块模式。

组合 “模式” 说明
恰好是以下项之一: 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 设备管理器 将向此对象发送进度通知。 此对象只有在收到结束通知后才能销毁。 如果不这样做,将导致访问冲突。

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

IWMDMDevice::GetStatus

IWMDMOperation 接口

IWMDMProgress 接口

IWMDMStorage 接口

IWMDMStorageControl2 接口

IWMDMStorageControl3::Insert3