IFileOperation::CopyItem 方法 (shobjidl_core.h)
宣告要複製到指定目的地的單一專案。
語法
HRESULT CopyItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszCopyName,
[in] IFileOperationProgressSink *pfopsItem
);
參數
[in] psiItem
類型: IShellItem*
指定來源專案的 IShellItem 指標。
[in] psiDestinationFolder
類型: IShellItem*
IShellItem 的指標,指定要包含項目複本的目的地資料夾。
[in] pszCopyName
類型: LPCWSTR
複製項目之後,該專案的新名稱指標。 這是以 Null 結尾的 Unicode 字串,可以是 NULL。 如果 為 NULL,則目的地專案的名稱與來源相同。
[in] pfopsItem
類型: IFileOperationProgressSink*
IFileOperationProgressSink 物件的指標,用於此特定複製作業的進度狀態和錯誤通知。 如果您針對整體作業呼叫 IFileOperation::建議 ,複製作業的進度狀態和錯誤通知會包含在該處,因此請將此參數設定為 NULL。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
這個方法不會複製專案,它只會宣告要複製的專案。 若要複製物件,您必須至少進行此處詳述的呼叫順序:
- 呼叫 IFileOperation::CopyItem 來宣告來源專案、目的地資料夾和目的地名稱。
- 呼叫 IFileOperation::P erformOperations 開始複製作業。
範例
下列範例程式代碼示範這個方法的範例實作。
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;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |