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을 지원하는 경우 사용하는 것이 좋습니다.
디바이스에 저장된 개체의 이름과 확장명은 원본 파일의 이름 및 확장명과 동일합니다( pOperation 이 NULL인 경우).
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 |