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 |