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


Метод IWMDMStorageControl2::Insert2 (mswmdm.h)

Метод Insert2 помещает содержимое в хранилище или рядом с ним. Этот метод расширяет IWMDMStorageControl::Insert , позволяя приложению указать новое имя назначения и предоставить указатель на пользовательский COM-объект.

Синтаксис

HRESULT Insert2(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFileSource,
  [in]  LPWSTR         pwszFileDest,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [in]  IUnknown       *pUnknown,
  [out] IWMDMStorage   **ppNewObject
);

Параметры

[in] fuMode

Режим обработки, используемый для операции Insert2 . В следующей таблице перечислены режимы обработки, которые можно указать в параметре fuMode . Необходимо указать только один из первых двух режимов, ровно один из режимов STORAGECONTROL и ровно один из режимов CONTENT. Если указаны WMDM_MODE_BLOCK и WMDM_MODE_THREAD, используется режим блокировки.

Комбинации Режим Описание
Ровно один из следующих вариантов: WMDM_MODE_BLOCK Операция выполняется с помощью обработки в блочных режимах. Вызов не будет возвращать, пока операция не будет завершена.
- WMDM_MODE_THREAD Операция выполняется с помощью обработки в потоковом режиме. Вызов возвращается немедленно, и операция выполняется в фоновом потоке.
Необязательно WMDM_MODE_QUERY Выполняется проверка, чтобы определить, может ли операция вставки быть успешной, но вставка не будет выполнена.
Ровно один из следующих вариантов: WMDM_STORAGECONTROL_INSERTBEFORE Объект вставляется перед целевым объектом .
- WMDM_STORAGECONTROL_INSERTAFTER Объект вставляется после целевого объекта.
- WMDM_STORAGECONTROL_INSERTINTO Объект вставляется в текущий объект . Это будет работать, только если текущий объект является папкой.
Необязательно WMDM_FILE_CREATE_OVERWRITE Объект заменит целевой объект.
Ровно один из следующих вариантов: WMDM_CONTENT_FILE Вставляемое содержимое — это файл.
- WMDM_CONTENT_FOLDER Вставляемое содержимое — это папка. Это не приведет к переносу содержимого папки.
Необязательно WMDM_CONTENT_OPERATIONINTERFACE Вставляемое содержимое является интерфейсом операции. Данные для содержимого должны быть записаны в интерфейс IWMDMOperation , реализованный приложением.
Необязательно WMDM_MODE_PROGRESS Уведомления о ходе выполнения должны отправляться с помощью параметра pProgress .
Необязательный один из следующих вариантов: WMDM_MODE_TRANSFER_PROTECTED Вставка находится в защищенном режиме передачи.
- WMDM_MODE_TRANSFER_UNPROTECTED Вставка находится в незащищенном режиме передачи.

[in] pwszFileSource

Указатель на строку с расширенным символом, завершающуюся значением NULL, указывающую полное имя и путь к объекту для отправки на устройство. Этот параметр должен иметь значение NULL , если WMDM_CONTENT_OPERATIONINTERFACE указан в fuMode.

[in] pwszFileDest

Необязательное имя файла на устройстве. Если не указано и приложение передает указатель IWMDMOperation в pOperation, диспетчер устройств Windows Media запросит имя назначения, вызвав IWMDMOperation::GetObjectName. Если не указано и приложение не использует pOperation, используются исходное имя файла и расширение (без пути).

[in] pOperation

Необязательный указатель на интерфейс IWMDMOperation для управления передачей содержимого на устройство мультимедиа. Если этот параметр задан, fuMode должен включать флаг WMDM_CONTENT_OPERATIONINTERFACE. Этот параметр должен иметь значение NULL , если в fuMode указан WMDM_CONTENT_FILE или WMDM_CONTENT_FOLDER.

[in] pProgress

Необязательный указатель на интерфейс IWMDMProgress для передачи отчета о ходе выполнения действия в приложение. Если этот параметр задан, fuMode должен включать WMDM_MODE_PROGRESS.

[in] pUnknown

Необязательный указатель IUnknown любого пользовательского COM-объекта, передаваемого поставщику защищенного содержимого. Это позволяет передавать пользовательские сведения поставщику защищенного содержимого, если приложение имеет достаточные сведения о поставщике безопасного содержимого.

[out] ppNewObject

Указатель на интерфейс IWMDMStorage , который будет содержать новое содержимое. Вызывающий объект должен освободить этот интерфейс по завершении работы с ним.

Возвращаемое значение

Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:

  • Стандартные коды ошибок COM
  • Коды ошибок Windows, преобразованные в значения HRESULT
  • Коды ошибок диспетчер устройств Windows Media
Подробный список возможных кодов ошибок см. в разделе Коды ошибок.

Комментарии

Если устройство поддерживает IWMDMStorageControl3::Insert3, это предпочтительный метод.

Если указан флаг WMDM_MODE_THREAD, необходимо получить состояние завершения, вызвав IWMDMProgress2::End2 или IWMDMProgress3::End3. Эти методы гарантируют завершение операции, а также возвращают HRESULT со сведениями об успешном или неудачном выполнении.

Если приложение использует WMDM_MODE_THREAD и передает параметр pProgress, отличный от NULL, приложение должно убедиться, что объект, которому принадлежит pProgress, не будет уничтожен до завершения операции вставки, так как диспетчер устройств Windows Media будет отправлять уведомления о ходе выполнения в этот объект. Этот объект можно уничтожить только после получения уведомления о завершении. Невыполнение этого действия приведет к нарушениям доступа.

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

IWMDMDevice::GetStatus

Интерфейс IWMDMOperation

Интерфейс IWMDMProgress

Интерфейс IWMDMStorage

Интерфейс IWMDMStorageControl2

IWMDMStorageControl3::Insert3