다음을 통해 공유


IWMDMStorageControl::Insert 메서드(mswmdm.h)

Insert 메서드는 디바이스의 스토리지에 콘텐츠를 넣습니다.

구문

HRESULT Insert(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFile,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [out] IWMDMStorage   **ppNewObject
);

매개 변수

[in] fuMode

다음 값의 비트 OR 입니다. 다음 표에서는 fuMode 매개 변수에 지정할 수 있는 처리 모드를 나열합니다. 처음 두 모드 중 하나, 정확히 STORAGECONTROL 모드 중 하나 및 CONTENT 모드 중 하나를 정확히 지정해야 합니다. WMDM_MODE_BLOCK 및 WMDM_MODE_THREAD 모두 지정되면 블록 모드가 사용됩니다.

조합 Mode Description
정확히 다음 중 하나입니다. WMDM_MODE_BLOCK 작업은 블록 모드 처리를 사용하여 수행됩니다. 작업이 완료될 때까지 호출이 반환되지 않습니다.
WMDM_MODE_THREAD 작업은 스레드 모드 처리를 사용하여 수행됩니다. 호출은 즉시 반환되고 작업은 백그라운드 스레드에서 수행됩니다.
정확히 다음 중 하나입니다. WMDM_STORAGECONTROL_INSERTBEFORE 개체가 현재 개체 앞에 삽입됩니다.
WMDM_STORAGECONTROL_INSERTAFTER 개체는 현재 개체 뒤에 삽입됩니다.
WMDM_STORAGECONTROL_INSERTINTO 개체가 현재 개체에 삽입됩니다. 현재 개체가 폴더인 경우에만 작동합니다.
정확히 다음 중 하나입니다. WMDM_CONTENT_FILE 삽입되는 콘텐츠는 파일입니다.
WMDM_CONTENT_FOLDER 삽입되는 콘텐츠는 폴더입니다. 이렇게 하면 폴더의 내용이 전송되지 않습니다.
WMDM_CONTENT_OPERATIONINTERFACE 삽입되는 콘텐츠는 작업 인터페이스입니다. 콘텐츠에 대한 데이터는 애플리케이션 구현 IWMDMOperation 인터페이스에 기록되어야 합니다.
0개 이상: WMDM_FILE_CREATE_OVERWRITE 개체는 현재 개체를 대체합니다.
WMDM_MODE_QUERY 삽입 작업이 성공할 수 있는지 여부를 확인하기 위해 테스트가 수행되지만 삽입은 수행되지 않습니다.
WMDM_MODE_PROGRESS 메서드는 pProgress를 통해 진행률 알림을 반환해야 합니다.
0개 또는 다음 중 하나: WMDM_MODE_TRANSFER_PROTECTED 삽입이 보호된 전송 모드에 있습니다.
WMDM_MODE_TRANSFER_UNPROTECTED 삽입이 보호되지 않는 전송 모드에 있습니다.

[in] pwszFile

삽입 작업의 콘텐츠를 찾을 위치를 나타내는 와이드 문자 null로 끝나는 문자열에 대한 포인터입니다. fuMode에서 WMDM_CONTENT_OPERATIONINTERFACE 지정한 경우 이 매개 변수는 NULL이어야 합니다.

[in] pOperation

미디어 디바이스에 대한 콘텐츠 전송을 제어하기 위한 IWMDMOperation 인터페이스에 대한 선택적 포인터입니다. 지정된 경우 fuMode 에는 WMDM_CONTENT_OPERATIONINTERFACE 플래그가 포함되어야 합니다. fuMode에서 WMDM_CONTENT_FILE 또는 WMDM_CONTENT_FOLDER 지정한 경우 이 매개 변수는 NULL이어야 합니다.

[in] pProgress

Windows Media 장치 관리자 애플리케이션에 진행률을 다시 보고하는 데 사용할 IWMDMProgress 인터페이스에 대한 선택적 포인터입니다. 이 옵션을 사용하는 경우 fuMode 에는 WMDM_MODE_PROGRESS 포함되어야 합니다.

[out] ppNewObject

새 콘텐츠를 포함할 IWMDMStorage 인터페이스에 대한 포인터입니다. 호출자는 이 인터페이스가 완료되면 이 인터페이스를 해제해야 합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. Windows Media 장치 관리자 모든 인터페이스 메서드는 다음 오류 코드 클래스를 반환할 수 있습니다.

  • 표준 COM 오류 코드
  • HRESULT 값으로 변환된 Windows 오류 코드
  • Windows Media 장치 관리자 오류 코드
가능한 오류 코드의 광범위한 목록은 오류 코드를 참조하세요.

설명

디바이스에서 IWMDMStorageControl3::Insert3을 지원하는 경우 사용하는 것이 좋습니다.

디바이스에 저장된 개체의 이름과 확장명은 원본 파일의 이름 및 확장명과 동일합니다( pOperationNULL인 경우).

WMDM_MODE_THREAD 플래그가 지정된 경우 IWMDMProgress2::End2 또는 IWMDMProgress3::End3을 호출하여 완료 상태 가져와야 합니다. 이러한 메서드는 작업이 완료되었는지 확인하고 성공 또는 실패 정보가 포함된 HRESULT도 반환합니다.

Insert 메서드는 디바이스가 순서가 지정된 파일 삽입을 지원한다고 보장하지는 않지만 WMDM_STORAGECONTROL_INSERTBEFORE 플래그를 제공하고 경우에 대비하여 WMDM_STORAGECONTROL_INSERTAFTER. 파일 시스템에서 정렬(instance, FAT32의 경우)을 지원하지 않는 경우 WMDM_STORAGECONTROL_INSERTBEFORE 및 WMDM_STORAGECONTROL_INSERTAFTER 파일 시스템 계층 구조의 현재 개체와 동일한 수준에서 새 스토리지 개체를 삽입합니다.

애플리케이션이 WMDM_MODE_THREAD 사용하고 null이 아닌 pProgress 매개 변수를 전달하는 경우 Windows Media 장치 관리자 이 개체에 진행률 알림을 보내기 때문에 pProgress가 속한 개체가 삽입 작업이 완료될 때까지 제거되지 않도록 해야 합니다. 이 개체는 종료 알림을 받은 후에만 제거할 수 있습니다. 이렇게 하지 않으면 액세스 위반이 발생합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 mswmdm.h
라이브러리 Mssachlp.lib

추가 정보

IWMDMStorageControl 인터페이스

IWMDMStorageControl2::Insert2

IWMDMStorageControl3::Insert3

IWMDMStorageControl::Read

디바이스에 파일 쓰기