ITransferDestination::CreateItem 方法 (shobjidl_core.h)
创建指定的文件。
语法
HRESULT CreateItem(
[in] LPCWSTR pszName,
[in] DWORD dwAttributes,
[in] ULONGLONG ullSize,
[in] TRANSFER_SOURCE_FLAGS flags,
[out] REFIID riidItem,
[out] void **ppvItem,
[in] REFIID riidResources,
[out] void **ppvResources
);
参数
[in] pszName
类型: LPCWSTR
指向以 null 结尾的缓冲区的指针,该缓冲区包含相对于当前目录的文件的名称。
[in] dwAttributes
类型:DWORD
BY_HANDLE_FILE_INFORMATION 结构中定义的 一个或多个FILE_ATTRIBUTE 标志。 最重要的值是 FILE_ATTRIBUTE_DIRECTORY,指示应创建文件夹。
[in] ullSize
类型: ULONGLONG
要创建的文件的大小(以字节为单位)。 如果大小未知,此值可以为 0。
[in] flags
控制文件操作的标志。 一个或多个 TRANSFER_SOURCE_FLAGS 标志。
[out] riidItem
类型: REFIID
对要通过 ppvItem 检索的接口的 IID 的引用,通常IID_IShellItem或派生自它的另一个接口。
[out] ppvItem
类型: void**
此方法返回时,包含 riidItem 中请求的接口指针。 这通常是 IShellItem 或派生接口。
[in] riidResources
类型: REFIID
对要通过 ppvResources 检索的接口的 IID 的引用,通常IID_IShellItemResources或派生自它的另一个接口。
[out] ppvResources
类型: void**
此方法返回时,包含 riidResources 中请求的接口指针。 这通常是 IShellItemResources 或派生接口。
返回值
类型: HRESULT
如果成功,则返回成功代码,否则返回错误值。 成功代码包括:
- S_OK:移动成功, ppvItem 和 ppvResources 都指向有效对象。
- COPYENGINE_S_USER_IGNORED:目标项已存在且未被覆盖。 ppvItem 和 ppvResources 指向的值为 NULL。 如果调用方将移动作为复制和删除操作实现,则调用方应通过删除源项来完成移动。
注解
此方法可用于创建表示复制或移动操作的目标文件夹的 Shell 项对象。 ITransferSource 接口提供了将 IShellItem 的对象实际移动到目标的方法。
在调用任何其他 ITransferDestination 方法之前调用 ITransferDestination ::Advise,以便处理程序可以回调可能发生的任何错误。 如果未设置,处理程序应将其视为没有可用反馈的指示,并执行“默认”操作。
建议使用 Objbase.h 中定义的 IID_PPV_ARGS 宏打包 riidResources 和 ppvResources 参数。 此宏基于 ppvResources 中的值指向的接口提供正确的 IID,这消除了编码错误的可能性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |