Compartilhar via


CeReadRecordPropsEx (CEDB)

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Esta função lê propriedades a partir de atual registro.

Essa função não trabalho com bancos de dados Edb. Para obter mais informações, consulte EDB Functions.

Uma versão RAPI dessa função existe chamado CeReadRecordPropsEx (RAPI).

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 a função CeOpenDatabaseEx2 (CEDB).
  • dwFlags
    [no] Leia sinalizador. A seguinte tabela mostra os valores possíveis.

    Valor Descrição

    CEDB_ALLOWREALLOC

    Indica que a função LocalAlloc 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. A reserva passada sejam liberada. Não é possível usar buffers pilha Se este sinalizador estiver definido.

    Zero

    Indica que existem há instruções especiais para manipulação de ler processo.

  • lpcPropID
    [no] Ponteiro para o número de identificadores propriedade na matriz especificada pelo rgPropID parâmetro. Se rgPropID é definido como 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 for definido como NULL, essa função 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 sinalizador CEDB_ALLOWREALLOC for especificada e o de conteúdo deste parâmetro é definido como 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, esse parâmetro 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] Windows CE 2.10 e posterior, identificador para um heap Application-Created a ser usado ao realocando memória. Este parâmetro é significativo somente se o sinalizador CEDB_ALLOWREALLOC estiver definida.

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 GetLastError. A seguinte tabela lista os valores possíveis.

Valor Descrição

ERROR_INSUFFICIENT_BUFFER

Indica que a reserva especificada não foi suficiente e a realocação falha se o sinalizador CEDB_ALLOWREALLOC foi especificado. O lpcbBuffer parâmetro contém o exigido tamanho do buffer.

ERROR_INVALID_PARAMETER

Indica que um parâmetro estava inválido.

ERROR_KEY_DELETED

Indica que 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_DATA

Indica que nenhuma das propriedades solicitadas foi encontrada. A reserva saída e o tamanho válido.

ERROR_NO_MORE_ITEMS

Indica que a atual buscar ponteiro estiver posicionado no final do banco de dados.

Return Value

Esta função lê o conjunto especificado de Propriedades a partir de atual registro. Se a pasta dwFlags parâmetro de CeOpenDatabaseEx2 foi 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 classificar ordem quando o banco de dados foi aberto, a ordem em que os registros são retornados não é previsível.

Quando rgPropID é definido como NULL, essa função NÃO retorna propriedades em qualquer ordem específica. Quando você definir rgPropID Para NULL, use um executar um loop para ler as propriedades retornadas por essa função e verificar a PropID valor de cada propriedade, em vez de assumindo uma ordem específica.

Quando rgPropID está definido para não-NULL, as propriedades são retornadas a ordem que eles estão listados na rgPropID. Se uma propriedade solicitada não está presente no registro, o wFlags membro da estrutura CEPROPVAL é definido como CEDB_PROPNOTFOUND.

Leia que as propriedades a partir de registro em um único chamar todos necessário porque o registro inteiro é armazenado em um formato compactado. 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 é definido como NULL, uma para cada propriedade encontrada.

Se uma propriedade Variable-sized foi solicitada, como seqüências de caracteres ou binário objetos grandes (BLOBs) que são compactados no final de matriz, os ponteiros in a 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 está definido para NULL.

Requirements

Header windbase.h
Library coredll.lib
Windows Embedded CE Windows CE 2.10 and later

See Also

Reference

CEDB Functions
CeOpenDatabaseEx2 (CEDB)
CeSeekDatabaseEx (CEDB)
CEPROPVAL (CEDB)

Other Resources

LocalAlloc