Método ILockBytes::WriteAt (objidl.h)

O método WriteAt grava o número especificado de bytes começando em um deslocamento especificado desde o início da matriz de bytes.

Sintaxe

HRESULT WriteAt(
  [in]  ULARGE_INTEGER ulOffset,
  [in]  const void     *pv,
  [in]  ULONG          cb,
  [out] ULONG          *pcbWritten
);

Parâmetros

[in] ulOffset

Especifica o ponto de partida desde o início da matriz de bytes para os dados a serem gravados.

[in] pv

Ponteiro para o buffer que contém os dados a serem gravados.

[in] cb

Especifica o número de bytes de dados a serem gravados na matriz de bytes.

[out] pcbWritten

Ponteiro para um local em que esse método especifica o número real de bytes gravados na matriz de bytes. Você pode definir esse ponteiro como NULL para indicar que não está interessado nesse valor. Nesse caso, esse método não fornece o número real de bytes gravados.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK Indica que o número especificado de bytes foi gravado.
E_FAIL Ocorreu uma falha geral durante a operação de gravação.
E_PENDING Somente armazenamento assíncrono: parte ou todos os dados a serem gravados não estão disponíveis no momento.
STG_E_ACCESSDENIED O chamador não tem permissões suficientes para gravar essa matriz de bytes.
STG_E_WRITEFAULT O número de bytes a serem gravados não é igual ao número de bytes que foram realmente gravados.
STG_E_MEDIUMFULL A operação de gravação não foi concluída porque não há espaço no dispositivo de armazenamento. O número real de bytes gravados ainda é retornado em pcbWritten.

Comentários

ILockBytes::WriteAt grava os dados especificados no local especificado na matriz de bytes. O número de bytes realmente gravados deve sempre ser retornado em pcbWritten, mesmo se um erro for retornado. Se a contagem de bytes for zero bytes, a operação de gravação não terá efeito.

Se ulOffset estiver além do final da matriz de bytes e cb for maior que zero, ILockBytes::WriteAt aumentará o tamanho da matriz de bytes. Os bytes de preenchimento gravados na matriz de bytes não são inicializados para nenhum valor específico.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h
Biblioteca Uuid.lib
DLL Ole32.dll

Confira também

ILockBytes – implementação de File-Based

ILockBytes – Implementação de memória global

ILockBytes::ReadAt

ILockBytes::SetSize