Compartir a través de


Método IByteBuffer::Write

[El método Write está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. La interfaz IStream proporciona una funcionalidad similar.]

El método Write escribe un número especificado de bytes en el objeto stream a partir del puntero de búsqueda actual.

Sintaxis

HRESULT Write(
  [in]  BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbWritten
);

Parámetros

pByte [in]

Dirección del búfer que contiene los datos que se van a escribir en la secuencia. Se debe proporcionar un puntero válido para este parámetro incluso cuando cb es cero.

cb [in]

Número de bytes de datos que se van a intentar escribir en la secuencia. Este parámetro puede ser cero.

pcbWritten [out]

Dirección de una variable LONG donde este método escribe el número real de bytes escritos en el objeto de secuencia. El autor de la llamada puede establecer este puntero en NULL, en cuyo caso, este método no proporciona el número real de bytes escritos.

Valor devuelto

El valor devuelto es un HRESULT. Un valor de S_OK indica que la llamada se realizó correctamente.

Comentarios

El método IByteBuffer::Write escribe los datos especificados en un objeto de secuencia. El puntero de búsqueda se ajusta para el número de bytes escritos realmente. El número de bytes escritos realmente se devuelve en el parámetro pcbWritten . Si el recuento de bytes es cero bytes, la operación de escritura no tiene ningún efecto.

Si el puntero de búsqueda está más allá del final de la secuencia y el recuento de bytes es distinto de cero, este método aumenta el tamaño de la secuencia al puntero de búsqueda y escribe los bytes especificados a partir del puntero de búsqueda. Los bytes de relleno escritos en la secuencia no se inicializan en ningún valor determinado. Esto es lo mismo que el comportamiento del final del archivo en el sistema de archivos FAT de MS-DOS.

Con un recuento de bytes cero y un puntero de búsqueda más allá del final de la secuencia, este método no crea los bytes de relleno para aumentar la secuencia al puntero de búsqueda. En este caso, debe llamar al método IByteBuffer::SetSize para aumentar el tamaño de la secuencia y escribir los bytes de relleno.

El parámetro pcbWritten puede tener un valor incluso si se produce un error.

En la implementación proporcionada por COM, los objetos de secuencia no son dispersos. Los bytes de relleno se asignan finalmente en el disco y se asignan a la secuencia.

Ejemplos

En el ejemplo siguiente se muestran los bytes de escritura en el objeto stream.

LONG     lWrite;
HRESULT  hr;

// Write to the buffer.
// byData is an array of 64 bytes.
hr = pIByteBuff->Write(byData,
                       64,
                       &lWrite);
if (FAILED(hr))
  printf("Failed IByteBuffer::Write\n");

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Scardssp.h
Biblioteca de tipos
Scardssp.tlb
Archivo DLL
Scardssp.dll
IID
IID_IByteBuffer se define como E126F8FE-A7AF-11D0-B88A-00C04FD424B9