Condividi tramite


Funzione di callback EDITSTREAMCALLBACK (richedit.h)

La funzione EditStreamCallback è una funzione di callback definita dall'applicazione usata con i messaggi EM_STREAMIN e EM_STREAMOUT. Viene usato per trasferire un flusso di dati in o fuori da un controllo di modifica avanzato. Il tipo EDITSTREAMCALLBACK definisce un puntatore a questa funzione di callback. EditStreamCallback è un segnaposto per il nome della funzione definita dall'applicazione.

Sintassi

EDITSTREAMCALLBACK Editstreamcallback;

DWORD Editstreamcallback(
  [in] DWORD_PTR dwCookie,
  [in] LPBYTE pbBuff,
  [in] LONG cb,
  [in] LONG *pcb
)
{...}

Parametri

[in] dwCookie

Tipo: DWORD_PTR

Valore del membro dwCookie della struttura EDITSTREAM. L'applicazione specifica questo valore quando invia il messaggio di EM_STREAMIN o EM_STREAMOUT.

[in] pbBuff

Tipo: LPBYTE

Puntatore a un buffer in cui leggere o scrivere. Per un'operazione di flusso in lettura, la funzione di callback riempie il buffer con i dati da trasferire nel controllo rich edit. Per un'operazione di streaming (scrittura), il buffer contiene dati dal controllo che la funzione di callback scrive in un archivio.

[in] cb

Tipo: LONG

Numero di byte da leggere o scrivere.

[in] pcb

Tipo: LONG*

Puntatore a una variabile impostata dalla funzione di callback sul numero di byte effettivamente letti o scritti.

Valore restituito

Tipo: DWORD

La funzione di callback restituisce zero per indicare l'esito positivo.

La funzione di callback restituisce un valore diverso da zero per indicare un errore. Se si verifica un errore, l'operazione di lettura o scrittura termina e il controllo rich edit elimina tutti i dati nel buffer pbBuff. Se la funzione di callback restituisce un valore diverso da zero, il controllo rich edit utilizza il membro dwError della struttura EDITSTREAM per passare nuovamente il valore all'applicazione.

Osservazioni

Quando si invia il messaggio di EM_STREAMIN o di EM_STREAMOUT a un controllo di modifica avanzato, il membro pfnCallback della struttura di EDITSTREAM specifica un puntatore a una funzione EditStreamCallback. Il controllo rich edit chiama ripetutamente la funzione per trasferire un flusso di dati all'interno o all'esterno del controllo.

Quando si invia il messaggio di EM_STREAMIN o di EM_STREAMOUT, si specifica un valore per il membro dwCookie della struttura EDITSTREAM . Il controllo rich edit usa il parametro dwCookie per passare questo valore alla funzione EditStreamCallback . Ad esempio, è possibile usare dwCookie per passare un handle a un file aperto. La funzione di callback può quindi usare l'handle dwCookie per leggere o scrivere nel file.

Il controllo chiama ripetutamente la funzione di callback, trasferendo una parte dei dati con ogni chiamata. Il controllo continua a chiamare la funzione di callback fino a quando non si verifica una delle condizioni seguenti:

  • La funzione di callback restituisce un valore diverso da zero.
  • La funzione di callback restituisce zero nel parametro * pcb.
  • Si verifica un errore che impedisce al controllo rich edit di trasferire i dati all'interno o all'esterno di se stesso. Esempi sono situazioni di memoria insufficiente, errore di una funzione di sistema o carattere non valido nel buffer di lettura.
  • Per un'operazione di flusso, il codice RTF contiene dati che specificano la fine di un blocco RTF.
  • Per un'operazione di flusso in un controllo di modifica a riga singola, il callback legge in un carattere di fine paragrafo (CR, LF, VT, LS o PS).

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione richedit.h

Vedere anche

EDITSTREAM

EM_STREAMIN

EM_STREAMOUT

riferimento