다음을 통해 공유


IWMDMStorageControl2::Insert2 메서드(mswmdm.h)

Insert2 메서드는 스토리지 옆에 콘텐츠를 넣습니다. 이 메서드는 애플리케이션이 새 대상 이름을 지정하고 사용자 지정 COM 개체에 대한 포인터를 제공할 수 있도록 하여 IWMDMStorageControl::Insert 를 확장합니다.

구문

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 모드 중 하나 및 콘텐츠 모드 중 하나를 정확히 지정해야 합니다. WMDM_MODE_BLOCK 및 WMDM_MODE_THREAD 모두 지정되면 블록 모드가 사용됩니다.

조합 Mode Description
정확히 다음 중 하나입니다. 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로 끝나는 와이드 문자열에 대한 포인터입니다. fuMode에서 WMDM_CONTENT_OPERATIONINTERFACE 지정한 경우 이 매개 변수는 NULL이어야 합니다.

[in] pwszFileDest

디바이스의 파일 이름(선택 사항)입니다. 지정하지 않고 애플리케이션이 IWMDMOperation 포인터를 pOperation에 전달하는 경우 Windows Media 장치 관리자 IWMDMOperation::GetObjectName을 호출하여 대상 이름을 요청합니다. 지정하지 않고 애플리케이션이 pOperation을 사용하지 않는 경우 원래 파일 이름 및 확장명은 경로 없이 사용됩니다.

[in] pOperation

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

[in] pProgress

작업 진행률을 애플리케이션에 다시 보고하기 위한 IWMDMProgress 인터페이스에 대한 선택적 포인터입니다. 지정된 경우 fuMode 에는 WMDM_MODE_PROGRESS 포함되어야 합니다.

[in] pUnknown

보안 콘텐츠 공급자에 전달할 사용자 지정 COM 개체의 선택적 IUnknown 포인터입니다. 이렇게 하면 애플리케이션에 보안 콘텐츠 공급자에 대한 충분한 정보가 있는 경우 보안 콘텐츠 공급자에 사용자 지정 정보를 전달할 수 있습니다.

[out] ppNewObject

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

반환 값

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

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

설명

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

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

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

요구 사항

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

추가 정보

IWMDMDevice::GetStatus

IWMDMOperation 인터페이스

IWMDMProgress 인터페이스

IWMDMStorage 인터페이스

IWMDMStorageControl2 인터페이스

IWMDMStorageControl3::Insert3