Metode IFileOperation::CopyItem (shobjidl_core.h)
Menyatakan satu item yang akan disalin ke tujuan tertentu.
Sintaks
HRESULT CopyItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszCopyName,
[in] IFileOperationProgressSink *pfopsItem
);
Parameter
[in] psiItem
Jenis: IShellItem*
Penunjuk ke IShellItem yang menentukan item sumber.
[in] psiDestinationFolder
Jenis: IShellItem*
Penunjuk ke IShellItem yang menentukan folder tujuan untuk berisi salinan item.
[in] pszCopyName
Jenis: LPCWSTR
Arahkan ke nama baru untuk item setelah disalin. Ini adalah untai (karakter) Unicode yang dihentikan null dan dapat berupa NULL. Jika NULL, nama item tujuan sama dengan sumbernya.
[in] pfopsItem
Jenis: IFileOperationProgressSink*
Arahkan ke objek IFileOperationProgressSink yang akan digunakan untuk status kemajuan dan pemberitahuan kesalahan untuk operasi penyalinan khusus ini. Jika Anda memanggil IFileOperation::Advise untuk operasi keseluruhan, status kemajuan dan pemberitahuan kesalahan untuk operasi salin disertakan di sana, jadi atur parameter ini ke NULL.
Mengembalikan nilai
Jenis: HRESULT
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Metode ini tidak menyalin item, hanya menyatakan item yang akan disalin. Untuk menyalin objek, Anda harus membuat setidaknya urutan panggilan yang dirinci di sini:
- Panggil IFileOperation::CopyItem untuk mendeklarasikan item sumber, folder tujuan, dan nama tujuan.
- Panggil IFileOperation::P erformOperations untuk memulai operasi penyalinan.
Contoh
Contoh kode berikut menunjukkan contoh implementasi metode ini.
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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | shobjidl_core.h (termasuk Shobjidl.h) |