IFileOperation::CopyItem-Methode (shobjidl_core.h)
Deklariert ein einzelnes Element, das in ein angegebenes Ziel kopiert werden soll.
Syntax
HRESULT CopyItem(
[in] IShellItem *psiItem,
[in] IShellItem *psiDestinationFolder,
[in] LPCWSTR pszCopyName,
[in] IFileOperationProgressSink *pfopsItem
);
Parameter
[in] psiItem
Typ: IShellItem*
Zeiger auf ein IShellItem,das das Quellelement angibt.
[in] psiDestinationFolder
Typ: IShellItem*
Zeiger auf ein IShellItem,das den Zielordner angibt, der die Kopie des Elements enthalten soll.
[in] pszCopyName
Typ: LPCWSTR
Zeiger auf einen neuen Namen für das Element, nachdem es kopiert wurde. Dies ist eine mit NULL beendete Unicode-Zeichenfolge und kann NULL sein. Bei NULL ist der Name des Zielelements identisch mit der Quelle.
[in] pfopsItem
Typ: IFileOperationProgressSink*
Zeiger auf ein IFileOperationProgressSink-Objekt, das für den Status status und Fehlerbenachrichtigungen für diesen spezifischen Kopiervorgang verwendet werden soll. Wenn Sie IFileOperation::Advise für den Gesamtvorgang aufrufen, sind dort fortschritts- status und Fehlerbenachrichtigungen für den Kopiervorgang enthalten. Legen Sie daher diesen Parameter auf NULL fest.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Diese Methode kopiert das Element nicht, sondern deklariert lediglich das zu kopierende Element. Um ein Objekt zu kopieren, müssen Sie mindestens die hier beschriebene Reihenfolge der Aufrufe ausführen:
- Rufen Sie IFileOperation::CopyItem auf, um das Quellelement, den Zielordner und den Zielnamen zu deklarieren.
- Rufen Sie IFileOperation::P erformOperations auf , um den Kopiervorgang zu starten.
Beispiele
Der folgende Beispielcode zeigt eine Beispielimplementierung dieser Methode.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shobjidl_core.h (einschließlich Shobjidl.h) |