Método IFileOperation::CopyItem (shobjidl_core.h)
Declara um único item que deve ser copiado para um destino especificado.
Sintaxe
HRESULT CopyItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszCopyName,
[in] IFileOperationProgressSink *pfopsItem
);
Parâmetros
[in] psiItem
Tipo: IShellItem*
Ponteiro para um IShellItem que especifica o item de origem.
[in] psiDestinationFolder
Tipo: IShellItem*
Ponteiro para um IShellItem que especifica a pasta de destino para conter a cópia do item.
[in] pszCopyName
Tipo: LPCWSTR
Ponteiro para um novo nome para o item depois que ele tiver sido copiado. Essa é uma cadeia de caracteres Unicode terminada em nulo e pode ser NULL. Se FOR NULL, o nome do item de destino será o mesmo que a origem.
[in] pfopsItem
Tipo: IFileOperationProgressSink*
Ponteiro para um objeto IFileOperationProgressSink a ser usado para status de progresso e notificações de erro para essa operação de cópia específica. Se você chamar IFileOperation::Advise para a operação geral, as status de progresso e as notificações de erro para a operação de cópia serão incluídas lá, portanto, defina esse parâmetro como NULL.
Retornar valor
Tipo: HRESULT
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
Esse método não copia o item, apenas declara o item a ser copiado. Para copiar um objeto, você deve fazer pelo menos a sequência de chamadas detalhada aqui:
- Chame IFileOperation::CopyItem para declarar o item de origem, a pasta de destino e o nome do destino.
- Chame IFileOperation::P erformOperations para iniciar a operação de cópia.
Exemplos
O código de exemplo a seguir mostra uma implementação de exemplo desse método.
HRESULT CopyItem(__in PCWSTR pszSrcItem, __in PCWSTR pszDest, PCWSTR pszNewName)
{
//
// Initialize COM as STA.
//
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (SUCCEEDED(hr))
{
IFileOperation *pfo;
//
// Create the IFileOperation interface
//
hr = CoCreateInstance(CLSID_FileOperation,
NULL,
CLSCTX_ALL,
IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
//
// Set the operation flags. Turn off all UI from being shown to the
// user during the operation. This includes error, confirmation,
// and progress dialogs.
//
hr = pfo->SetOperationFlags(FOF_NO_UI);
if (SUCCEEDED(hr))
{
//
// Create an IShellItem from the supplied source path.
//
IShellItem *psiFrom = NULL;
hr = SHCreateItemFromParsingName(pszSrcItem,
NULL,
IID_PPV_ARGS(&psiFrom));
if (SUCCEEDED(hr))
{
IShellItem *psiTo = NULL;
if (NULL != pszDest)
{
//
// Create an IShellItem from the supplied
// destination path.
//
hr = SHCreateItemFromParsingName(pszDest,
NULL,
IID_PPV_ARGS(&psiTo));
}
if (SUCCEEDED(hr))
{
//
// Add the operation
//
hr = pfo->CopyItem(psiFrom, psiTo, pszNewName, NULL);
if (NULL != psiTo)
{
psiTo->Release();
}
}
psiFrom->Release();
}
if (SUCCEEDED(hr))
{
//
// Perform the operation to copy the file.
//
hr = pfo->PerformOperations();
}
}
//
// Release the IFileOperation interface.
//
pfo->Release();
}
CoUninitialize();
}
return hr;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |