Compartilhar via


CeReadRecordPropsEx (RAPI)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Esta função lê propriedades a partir de atual registro de um banco de dados em um remoto dispositivo baseado em Windows Embedded CE.

Syntax

CEOID CeReadRecordPropsEx( 
  HANDLE hDbase, 
  DWORD dwFlags,
  LPWORD lpcPropID, 
  CEPROPID * rgPropID, 
  LPBYTE * lplpBuffer,
  LPDWORD lpcbBuffer, 
  HANDLE hHeap 
);

Parameters

  • hDbase
    [no] Identificador para um aberto banco de dados. O banco de dados devem foram abertos por um chamar anterior para o CeOpenDatabaseEx função.
  • dwFlags
    [no] Especifica ler sinalizadores. Ele é um do seguinte sinalizadores.

    Valor Descrição

    0

    Existem há instruções especiais para manipulação de ler processo.

    CEDB_ALLOWREALLOC

    O LocalAlloc função foi usada para alocar a reserva especificada pelo lplpBuffer parâmetro. O servidor pode realocar a reserva se ele não for grande o suficiente para conter as propriedades solicitadas.

  • lpcPropID
    [in, Out] Ponteiro para o número de identificadores propriedade na matriz especificada pelo rgPropID parâmetro. Se rgPropID é NULL, este parâmetro recebe o número de propriedades recuperadas.
  • rgPropID
    [no] Ponteiro para uma matriz de propriedade identificadores para as propriedades a serem recuperados. Se este parâmetro é NULL, CeReadRecordPropsEx recupera todas as propriedades no registro.
  • lplpBuffer
    [out] Ponteiro para o endereço de um ponteiro para uma reserva que recebe as propriedades solicitadas. Se a pasta dwFlags parâmetro inclui o sinalizador CEDB_ALLOWREALLOC, a reserva pode ser realocada se necessário, mesmo se a função falhará. Se o ponteiro apontado pelo lplpBuffer o sinalizador CEDB_ALLOWREALLOC for especificada e não NULL ele será lançado por um chamar para LocalFree. Se o ponteiro apontado pelo lplpBuffer NULL, o servidor aloca uma reserva do apropriado tamanho no chamador é espaço de endereço e retorna um ponteiro para a reserva.
  • lpcbBuffer
    [out] Ponteiro para uma variável que contém o tamanho, em bytes, da reserva especificada pelo lplpBuffer parâmetro. Quando CeReadRecordPropsEx Retorna, lpcbBuffer recebe um valor que indica o real tamanho dos dados copiados para a reserva. Se a reserva foi muito pequena para conter os dados e CEDB_ALLOWREALLOC não foi especificado, este parâmetro pode ser usado para calcular o quantidade de memória para alocar para a reserva.
  • hHeap
    [no] Para Windows Embedded CE versões 2.10 e posterior, identificador para um heap Application-Created a ser usado quando realocando memória. Este parâmetro é significativo somente se o sinalizador CEDB_ALLOWREALLOC está definida. Como de Windows CE 5.0, este parâmetro deve ser definido para NULL.

Return Value

Identificador de objeto do registro a partir do qual a ler função indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar CeGetLastError e CeRapiGetError. Valores possíveis para CeGetLastError Incluir o seguinte:

  • ERROR_INVALID_PARAMETER
    Foi um parâmetro inválido.
  • ERROR_NO_DATA
    Nenhum das propriedades solicitadas foi encontrado. A reserva saída e o tamanho válido.
  • ERROR_INSUFFICIENT_BUFFER
    A reserva especificada não era grande o suficiente e a realocação falha se o sinalizador CEDB_ALLOWREALLOC foi especificado. O parâmetro lpcbBuffer contém o exigido tamanho do buffer.
  • ERROR_KEY_DELETED
    O registro que estava prestes a ser ler foi excluído por outro segmento. Se o atual registro foi atingido como resultado de uma autoseek, esse erro não é retornado e o próximo registro é retornado.
  • ERROR_NO_MORE_ITEMS
    O atual buscar ponteiro estiver posicionado no final do banco de dados.

Remarks

O CeReadRecordPropsEx função lê o conjunto especificado de Propriedades a partir de atual registro. Se a pasta dwFlags parâmetro de CeOpenDatabaseEx está definido para CEDB_AUTOINCREMENT, a função incrementa o ponteiro de busca para que o próximo chamar lê o próximo registro na atual ordem classificar. Não se houvesse nenhum ativo ordem classificar quando o banco de dados foi aberto, então, a ordem em que os registros são retornados não é previsível.

Você deve ler todas necessárias Propriedades a partir de registro em um único chamar. Isso ocorre porque o registro inteiro é armazenado em um formato compactado, e cada tempo uma propriedade é ler ele deve ser descompactado. Todas as propriedades são retornadas em uma única estrutura empacotada, que consiste de uma matriz de CEPROPVAL estruturas. Há um CEPROPVAL estrutura para cada propriedade solicitada ou, se rgPropID é NULL, há uma para cada propriedade encontrada.

Se uma propriedade foi solicitada, como seqüências de caracteres ou Binary Large Objects (BLOBs) que são compactados no final de matriz, os ponteiros na CEPROPVAL apontar estruturas em isso empacotado estrutura. Isso significa que a memória somente que deve ser liberada é o original ponteiro para a reserva passado para o chamar. Mesmo se a função falha, ele pode tiver alocado memória no nome do chamador. Você deve livre de ponteiro retornado por essa função se o ponteiro não for NULL.

Observação

Versões anteriores de Windows Embedded CE atribuído objeto identificadores a objetos em outros sistemas arquivo, such as o sistema de arquivos tabela de alocação de arquivos (FAT).Esses identificadores objeto foram garantia ser exclusivo em um volume, mas não entre múltiplo volumes.Eficaz com versão 3.0, apenas objetos em armazenar o objeto tiver válido, exclusivo objeto identificadores e armazenar o objeto é o único volume que pode retornar um objeto identificador.O CeReadRecordProps função é obsoleto e será substituído por essa função.

Requirements

Header rapi.h
Library rapi.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Pocket PC 2002 and later, Smartphone 2002 and later

See Also

Reference

RAPI Functions
CeOpenDatabaseEx (RAPI)
CEPROPVAL
CeSeekDatabase (RAPI)