Condividi tramite


Metodo IPortableDeviceContent::CreateObjectWithPropertiesAndData (portabledeviceapi.h)

Il metodo CreateObjectWithPropertiesAndData crea un oggetto con proprietà e dati nel dispositivo.

Sintassi

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

Parametri

pValues

Un IPortableDeviceValues raccolta di proprietà da assegnare all'oggetto. Per un elenco delle proprietà obbligatorie e facoltative per un oggetto, vedere Requirements for Objects.

[out] ppData

Indirizzo di una variabile che riceve un puntatore a un'interfaccia IStream usata dall'applicazione per inviare i dati dell'oggetto al dispositivo. L'oggetto non verrà creato nel dispositivo finché l'applicazione non invia i dati chiamando ppData->Commit. Per abbandonare un trasferimento dei dati in corso, è possibile chiamare ppData ->Ripristinare. Il chiamante deve rilasciare questa interfaccia al termine dell'operazione. L'oggetto sottostante estende sia IStream che IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

Puntatore DWORD facoltativo che specifica le dimensioni ottimali del buffer da usare per l'applicazione durante la scrittura dei dati in ppData. L'applicazione può specificare TRUE per ignorare questa impostazione.

[in, out] ppszCookie

ID stringa univoco e con terminazione Null facoltativo usato per identificare questa richiesta di creazione nell'implementazione dell'applicazione di IPortableDeviceEventCallback (se implementato). Al termine della creazione dell'oggetto, il dispositivo invierà questo identificatore alla funzione di callback. Questo identificatore consente a un'applicazione di monitorare la creazione di oggetti in un thread diverso da quello chiamato CreateObjectWithPropertiesOnly. L'SDK alloca questa memoria e il chiamante deve rilasciarlo usando CoTaskMemFree.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non solo, quelli nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_POINTER
Almeno uno degli argomenti obbligatori è un puntatore NULL.

Osservazioni

Alcuni oggetti sono solo una raccolta di proprietà, ad esempio una cartella, che è solo una raccolta di puntatori ad altri oggetti, mentre altri oggetti sono sia proprietà che dati, ad esempio un file audio, che contiene tutte le proprietà e i bit musicali effettivi. Questo metodo viene usato per creare un oggetto che richiede proprietà e dati. Per creare un oggetto solo proprietà, chiamare CreateObjectWithPropertiesOnly.

Poiché l'oggetto non viene creato fino a quando l'applicazione non chiama Commit nel IStreamppData, l'oggetto non avrà un ID finché non viene chiamato Commit. commit è sincrono, quindi quando il metodo viene restituito correttamente, l'oggetto esisterà nel dispositivo.

Dopo aver chiamato Commit per creare l'oggetto, chiamare QueryInterfaceppData per IPortableDeviceDataStreame quindi chiamare IPortableDeviceDataStream::GetObjectID per ottenere l'ID dell'oggetto appena creato.

Esempi

Per un esempio di come usare questo metodo, vedere Trasferimento di un'immagine o di un file musicale nel dispositivo.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione portabledeviceapi.h
libreria PortableDeviceGUIDs.lib

Vedere anche

interfaccia IPortableDeviceContent

interfaccia IPortableDeviceDataStream

trasferimento di un'immagine o di un file musicale al dispositivo