Método IPortableDeviceContent::CreateObjectWithPropertiesAndData (portabledeviceapi.h)

El método CreateObjectWithPropertiesAndData crea un objeto con propiedades y datos en el dispositivo.

Sintaxis

HRESULT CreateObjectWithPropertiesAndData(
            IPortableDeviceValues *pValues,
  [out]     IStream               **ppData,
  [in, out] DWORD                 *pdwOptimalWriteBufferSize,
  [in, out] LPWSTR                *ppszCookie
);

Parámetros

pValues

Colección IPortableDeviceValues de propiedades que se asignarán al objeto . Para obtener una lista de las propiedades obligatorias y opcionales de un objeto, vea Requirements for Objects.

[out] ppData

Dirección de una variable que recibe un puntero a una interfaz IStream que la aplicación usa para enviar los datos del objeto al dispositivo. El objeto no se creará en el dispositivo hasta que la aplicación envíe los datos mediante una llamada a ppData-Commit>. Para abandonar una transferencia de datos en curso, puede llamar a ppData ->Revert. El autor de la llamada debe liberar esta interfaz cuando haya terminado con ella. El objeto subyacente extiende IStream e IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

Puntero DWORD opcional que especifica el tamaño óptimo del búfer para que la aplicación lo use al escribir los datos en ppData. La aplicación puede especificar TRUE para omitir esto.

[in, out] ppszCookie

Identificador de cadena único y nulo opcional que se usa para identificar esta solicitud de creación en la implementación de IPortableDeviceEventCallback de la aplicación (si se implementa). Cuando el dispositivo termine de crear el objeto, enviará este identificador a la función de devolución de llamada. Este identificador permite a una aplicación supervisar la creación de objetos en un subproceso diferente del que llamó a CreateObjectWithPropertiesOnly. El SDK asigna esta memoria y el autor de la llamada debe liberarla mediante CoTaskMemFree.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_POINTER
Al menos uno de los argumentos necesarios era un puntero NULL .

Comentarios

Algunos objetos son solo una colección de propiedades, como una carpeta, que es solo una colección de punteros a otros objetos, mientras que otros objetos son propiedades y datos, como un archivo de audio, que contiene todas las propiedades y los bits de música reales. Este método se usa para crear un objeto que requiere tanto propiedades como datos. Para crear un objeto de solo propiedades, llame a CreateObjectWithPropertiesOnly.

Dado que el objeto no se crea hasta que la aplicación llama a Commit en el iStreamppData recuperado, el objeto no tendrá un identificador hasta que se llame a Commit en él. La confirmación es sincrónica, por lo que cuando ese método se devuelve correctamente, el objeto existirá en el dispositivo.

Después de llamar a Commit para crear el objeto, llame a QueryInterface en ppData para IPortableDeviceDataStream y, a continuación, llame a IPortableDeviceDataStream::GetObjectID para obtener el identificador del objeto recién creado.

Ejemplos

Para obtener un ejemplo de cómo usar este método, consulta Transferir un archivo de imagen o música al dispositivo.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado portabledeviceapi.h
Library PortableDeviceGUIDs.lib

Consulte también

IPortableDeviceContent (Interfaz)

IPortableDeviceDataStream (Interfaz)

Transferencia de un archivo de imagen o música al dispositivo