IMAPISupport::CopyFolder
Область применения: Outlook 2013 | Outlook 2016
Копирует или перемещает папку из текущей родительской папки в другую родительскую папку.
HRESULT CopyFolder(
LPCIID lpSrcInterface,
LPVOID lpSrcFolder,
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
LPVOID lpDestFolder,
LPSTR lpszNewFolderName,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
Параметры
lpSrcInterface
[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к родительской папке папки для копирования или перемещения.
lpSrcFolder
[в] Указатель на родительскую папку папки для копирования или перемещения.
cbEntryID
[в] Число байтов в идентификаторе записи, на который указывает lpEntryID.
lpEntryID
[в] Указатель на идентификатор записи папки для копирования или перемещения.
lpInterface
[в] Защищены; значение должно иметь значение NULL.
lpDestFolder
[в] Указатель на папку, которая должна получить папку для копирования или перемещения.
lpszNewFolderName
[в] Указатель на имя скопированной или перемещенной папки; в противном случае значение NULL, указывающее, что скопированная или перемещенная папка должна иметь то же имя, что и исходная папка (папка, на которую указывает lpEntryID).
ulUIParam
[в] Дескриптор окна для диалогового окна индикатора хода выполнения и связанных окон. Параметр ulUIParam игнорируется, если в параметре ulFlags не установлен флаг FOLDER_DIALOG.
lpProgress
[в] Указатель на объект выполнения, отображающий индикатор хода выполнения. Если в lpProgress передается значение NULL, поставщик хранилища сообщений отображает индикатор хода выполнения с помощью реализации объекта хода выполнения MAPI. Параметр lpProgress игнорируется, если флаг FOLDER_DIALOG не установлен в ulFlags.
ulFlags
[в] Битовая маска флагов, управляющая выполнением операции копирования или перемещения. Можно задать следующие флаги:
COPY_SUBFOLDERS
Все вложенные папки папки должны быть скопированы или перемещены. Если COPY_SUBFOLDERS не задано для операции копирования, копируется только папка, определяемая lpEntryID . При операции перемещения поведение COPY_SUBFOLDERS по умолчанию независимо от того, установлен ли флаг.
FOLDER_DIALOG
Запрашивает отображение индикатора хода выполнения.
FOLDER_MOVE
Папка должна быть перемещена, а не скопирована. Если FOLDER_MOVE не задано, папка копируется.
MAPI_UNICODE
Имя папки имеет формат Юникода. Если флаг MAPI_UNICODE не задан, имя папки будет в формате ANSI.
Возвращаемое значение
S_OK
Папка успешно скопирована или перемещена.
MAPI_E_COLLISION
Имя перемещаемой или копируемых папок совпадает с именем вложенной папки в целевой папке. Поставщик хранилища сообщений требует, чтобы имена папок были уникальными. Операция останавливается без завершения.
MAPI_W_PARTIAL_COMPLETION
Вызов выполнен успешно, но не все записи успешно скопированы. При возврате этого предупреждения вызов должен быть обработан как успешный. Чтобы проверить наличие этого предупреждения, используйте макрос HR_FAILED . Дополнительные сведения см. в разделе Использование макросов для обработки ошибок.
Замечания
Метод IMAPISupport::CopyFolder реализован для объектов поддержки поставщика хранилища сообщений. Поставщики хранилища сообщений могут вызывать IMAPISupport::CopyFolder в реализации IMAPIFolder::CopyFolder для копирования или перемещения одной папки из одной родительской папки в другую.
IMAPISupport::CopyFolder добавляет скопированную или перемещенную папку в качестве вложенной папки конечной папки.
Примечания для вызывающих методов
IMAPISupport::CopyFolder позволяет одновременно переименовать и перемещать папки, а также копировать или перемещать вложенные папки затронутой папки. Чтобы скопировать или переместить все вложенные папки, вложенные в скопированную или перемещенную папку, передайте флаг COPY_SUBFOLDERS в ulFlags.
Ожидайте следующие возвращаемые значения при следующих условиях:
Condition | Возвращаемое значение |
---|---|
CopyFolder успешно скопировал или переместил папку и все ее вложенные папки, если применимо. | S_OK |
CopyFolder не удалось скопировать или переместить все папки. | MAPI_W_PARTIAL_COMPLETION |
Не удалось завершить copyFolder. | Любое значение ошибки |
Если CopyFolder возвращает значение ошибки, не следует исходить из предположения, что работа не была выполнена. Одна или несколько папок могли быть скопированы или перемещены до сбоя CopyFolder .