IPortableDeviceContent::CreateObjectWithPropertiesAndData 메서드(portabledeviceapi.h)
CreateObjectWithPropertiesAndData 메서드는 디바이스의 속성과 데이터를 모두 사용하여 개체를 만듭니다.
구문
HRESULT CreateObjectWithPropertiesAndData(
IPortableDeviceValues *pValues,
[out] IStream **ppData,
[in, out] DWORD *pdwOptimalWriteBufferSize,
[in, out] LPWSTR *ppszCookie
);
매개 변수
pValues
개체에 할당할 속성의 IPortableDeviceValues 컬렉션입니다. 개체에 대한 필수 및 선택적 속성 목록은 개체에 대한 요구 사항을 참조하세요.
[out] ppData
애플리케이션이 디바이스에 개체 데이터를 보내는 데 사용하는 IStream 인터페이스에 대한 포인터를 수신하는 변수의 주소입니다. 애플리케이션이 ppData-Commit>을 호출하여 데이터를 보낼 때까지 개체가 디바이스에 만들어지지 않습니다. 진행 중인 데이터 전송을 중단하려면 ppData ->Revert를 호출할 수 있습니다. 호출자는 이 인터페이스가 완료되면 이 인터페이스를 해제해야 합니다. 기본 개체는 IStream 및 IPortableDeviceDataStream을 모두 확장합니다.
[in, out] pdwOptimalWriteBufferSize
데이터를 ppData에 쓸 때 사용할 애플리케이션의 최적 버퍼 크기를 지정하는 선택적 DWORD 포인터입니다. 애플리케이션은 TRUE 를 지정하여 이를 무시할 수 있습니다.
[in, out] ppszCookie
애플리케이션의 IPortableDeviceEventCallback 구현에서 이 만들기 요청을 식별하는 데 사용되는 null로 끝나는 선택적 문자열 ID입니다(구현된 경우). 디바이스가 개체 만들기를 마치면 이 식별자를 콜백 함수로 보냅니다. 이 식별자를 사용하면 애플리케이션이 CreateObjectWithPropertiesOnly라는 스레드와 다른 스레드에서 개체 생성을 모니터링할 수 있습니다. SDK는 이 메모리를 할당하고 호출자는 CoTaskMemFree를 사용하여 해제해야 합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
필요한 인수 중 하나 이상이 NULL 포인터였습니다. |
설명
일부 개체는 다른 개체에 대한 포인터 컬렉션일 뿐인 폴더와 같은 속성 컬렉션일 뿐이며, 다른 개체는 모든 속성과 실제 음악 비트를 포함하는 오디오 파일과 같은 속성과 데이터입니다. 이 메서드는 속성과 데이터가 모두 필요한 개체를 만드는 데 사용됩니다. 속성 전용 개체를 만들려면 CreateObjectWithPropertiesOnly를 호출합니다.
애플리케이션이 검색된 IStreamppData에서 Commit을 호출할 때까지 개체가 만들어지지 않으므로 Commit이 호출될 때까지 개체에는 ID가 없습니다. 커밋 은 동기식이므로 해당 메서드가 성공적으로 반환되면 개체가 디바이스에 존재합니다.
Commit을 호출하여 개체를 만든 후 ppData for IPortableDeviceDataStream에서 QueryInterface를 호출한 다음, IPortableDeviceDataStream::GetObjectID를 호출하여 새로 만든 개체의 ID를 가져옵니다.
예제
이 메서드를 사용하는 방법의 예는 디바이스에 이미지 또는 음악 파일 전송을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | portabledeviceapi.h |
라이브러리 | PortableDeviceGUIDs.lib |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기