Compartir a través de


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

Un IPortableDeviceValues colección de propiedades que se van a asignar 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 llamando a ppData->Commit. Para abandonar una transferencia de datos en curso, puede llamar a ppData ->Revertir. El autor de la llamada debe liberar esta interfaz cuando haya terminado con ella. El objeto subyacente extiende tanto IStream como IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

Puntero opcional DWORD 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 terminado en NULL opcional que se usa para identificar esta solicitud de creación en la implementación de la aplicación de IPortableDeviceEventCallback (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 HRESULT. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente.

Código devuelto Descripción
S_OK
El método se realizó correctamente.
E_POINTER
Al menos uno de los argumentos necesarios era un puntero NULL.

Observaciones

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 requiera 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 IStream recuperadoppData, el objeto no tendrá un identificador hasta que se llame a commit . Commit es sincrónico, 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 IPortableDeviceDataStreamy, 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, vea Transferir un archivo de imagen o música al dispositivo.

Requisitos

Requisito Valor
de la plataforma de destino de Windows
encabezado de portabledeviceapi.h
biblioteca de PortableDeviceGUIDs.lib

Consulte también

interfaz IPortableDeviceContent

interfaz IPortableDeviceDataStream

transferir un archivo de imagen o música al dispositivo