Поделиться через


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 .

См. также

IMAPISupport: IUnknown