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::End2 或 IWMDMProgress3::End3 来获取完成状态。 这些方法将确保操作完成,并且还会返回包含成功或失败信息的 HRESULT。
如果应用程序使用 WMDM_MODE_THREAD并传递非 nullpProgress 参数,则应用程序必须确保 pProgress 所属的对象在插入操作完成之前不会被销毁,因为 Windows Media 设备管理器 将向此对象发送进度通知。 此对象只有在收到结束通知后才能销毁。 如果不这样做,将导致访问冲突。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mswmdm.h |
Library | Mssachlp.lib |