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

控制文件操作的标志。 一个或多个 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:移动成功, ppvItemppvResources 都指向有效对象。
  • COPYENGINE_S_USER_IGNORED:目标项已存在且未被覆盖。 ppvItemppvResources 指向的值NULL。 如果调用方将移动作为复制和删除操作实现,则调用方应通过删除源项来完成移动。

注解

此方法可用于创建表示复制或移动操作的目标文件夹的 Shell 项对象。 ITransferSource 接口提供了将 IShellItem 的对象实际移动到目标的方法。

在调用任何其他 ITransferDestination 方法之前调用 ITransferDestination ::Advise,以便处理程序可以回调可能发生的任何错误。 如果未设置,处理程序应将其视为没有可用反馈的指示,并执行“默认”操作。

建议使用 Objbase.h 中定义的 IID_PPV_ARGS 宏打包 riidResourcesppvResources 参数。 此宏基于 ppvResources 中的值指向的接口提供正确的 IID,这消除了编码错误的可能性。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)