Compartilhar via


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

O método CreateObjectWithPropertiesAndData cria um objeto com propriedades e dados no dispositivo.

Sintaxe

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

Parâmetros

pValues

Um IPortableDeviceValues coleção de propriedades a serem atribuídas ao objeto. Para obter uma lista de propriedades obrigatórias e opcionais para um objeto, consulte Requirements for Objects.

[out] ppData

Endereço de uma variável que recebe um ponteiro para um IStream interface que o aplicativo usa para enviar os dados do objeto para o dispositivo. O objeto não será criado no dispositivo até que o aplicativo envie os dados chamando ppData->Commit. Para abandonar uma transferência de dados em andamento, você pode chamar ppData –>Reverter. O chamador deve liberar essa interface quando terminar com ela. O objeto subjacente estende IStream e IPortableDeviceDataStream .

[in, out] pdwOptimalWriteBufferSize

Um ponteiro DWORD opcional que especifica o tamanho ideal do buffer para o aplicativo usar ao gravar os dados para ppData. O aplicativo pode especificar TRUE para ignorar isso.

[in, out] ppszCookie

Uma ID de cadeia de caracteres exclusiva e terminada em nulo opcional que é usada para identificar essa solicitação de criação na implementação do aplicativo de IPortableDeviceEventCallback (se implementada). Quando o dispositivo terminar de criar o objeto, ele enviará esse identificador para a função de retorno de chamada. Esse identificador permite que um aplicativo monitore a criação de objeto em um thread diferente daquele que chamou CreateObjectWithPropertiesOnly. O SDK aloca essa memória e o chamador deve liberá-la usando CoTaskMemFree.

Valor de retorno

O método retorna umHRESULT . Os valores possíveis incluem, mas não se limitam a, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_POINTER
Pelo menos um dos argumentos necessários era um ponteiro de NULL .

Observações

Alguns objetos são apenas uma coleção de propriedades, como uma pasta, que é apenas uma coleção de ponteiros para outros objetos, enquanto outros objetos são propriedades e dados, como um arquivo de áudio, que contém todas as propriedades e os bits de música reais. Esse método é usado para criar um objeto que requer propriedades e dados. Para criar um objeto somente propriedades, chame CreateObjectWithPropertiesOnly.

Como o objeto não é criado até que o aplicativo chame Commit no IStream recuperadoppData, o objeto não terá uma ID até que Commit seja chamado nele. Commit é síncrono, portanto, quando esse método retorna com êxito, o objeto existirá no dispositivo.

Depois de chamar Commit para criar o objeto, chame QueryInterface em ppData para IPortableDeviceDataStream e chame IPortableDeviceDataStream::GetObjectID para obter a ID do objeto recém-criado.

Exemplos

Para obter um exemplo de como usar esse método, consulte Transferindo uma imagem ou arquivo de música para o dispositivo.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho portabledeviceapi.h
biblioteca PortableDeviceGUIDs.lib

Consulte também

interface IPortableDeviceContent

interface IPortableDeviceDataStream

transferir um arquivo de imagem ou música para o dispositivo