Visual Basic, VB .NET, ASP, Active X, Access, SQL Server

Como Encontrar Constantes Não-Documentadas Usadas pelas Funções da API do Windows

Os arquivos texto de APIs que acompanham a documentação do Visual Basic documentam muitas das constantes da API requeridas pelos programadores em Visual Basic. Contudo, algumas constantes não são documentadas nestes arquivos texto. Para procurar pelas constantes, você precisará dos arquivos de inclusão distribuídos com o Visual C++.

Estes arquivos de inclusão ficam na pasta \Include do Visual C++ e têm a extensão .h. São os mesmos usados para criar os arquivos de DLLs contendo as funções da API. 

Para localizar o valor de uma constante, use o menu Iniciar\Localizar e procure pelos arquivos com a extensão .h no diretório \Include, que contenham o nome da constante procurada. Após localizar os arquivos, abra-os num editor de textos que tenha a função de localização de palavra. Procure então pelo nome da constante até achá-la em uma instrução que defina o seu valor. Pode acontecer de ela ser definida em função de uma outra constante. Você terá então que repetir a pesquisa para localizar esta outra constante nos arquivos de inclusão.

Uma vez que tenha encontrado o valor da constante, você a declarará no lugar apropriado do seu código em Visual Basic.

Por exemplo, a função SHGetSpecialFoldersLocation retorna o valor PIDL de um diretório especial informado. Para retornar o PIDL, a função requer a identificação do diretório como um dos seus parâmetros. No nosso exemplo, você desejará o valor PIDL para o diretório especial Drives, que é definido no arquivo de inclusão SHLOBJ.H como  CSIDL_DRIVES.
 

Para encontrar o valor da constante

  1. No menu Iniciar, clique "Localizar" e então em "Arquivos ou Pastas". A janela de localização de arquivos aparece.
  2. Em nome de arquivo, informe "*.h" sem as aspas duplas para que todos os arquivos de inclusão sejam pesquisados.
  3. No local para informar onde examinar, entre com o caminho do diretório \Include do C++.
  4. Na caixa de texto "Contendo o texto", digite o nome da constante cujo valor você busca. No nosso exemplo, digite CSIDL_DRIVES.
  5. Clique em "Localizar agora". O arquivo contendo esta constante é listado na listview de resultados. No nosso exemplo,  CSIDL_DRIVES está no arquivo de inclusão SHLOBJ.H.
  6. Abra o arquivo com um editor de textos, como o WordPad. Usando os recursos de localização do editor de textos, busque pelo nome da constante. No nosso exemplo usamos o WordPad como editor de textos

     

    1. No menu Editar, clique Localizar. A caixa de diálogo de localização aparece.
    2. Informe o texto a ser pesquisado digitando CSIDL_DRIVES.
    3. Clique em Localizar próximo.

    O resultado da localização mostra o valor da constante CSIDL_DRIVES igual a 0x0011.

    0x0011 é um número hexadecimal expresso na sintaxe de C e C++. Para usar este número no Visual Basic, substitua o '0x' com '&H'.

    Se um número hexadecimal estiver no intervalo de 0x8000 até 0xFFFF, adicione um & ao final da constante  hexadecimal. Adicionando um & garante que o Visual Basic não irá converter o valor da constante em um número negativo. Por exemplo, se a sua constante é igual a 0x8000, converta este valor para usá-lo no Visual Basic declarando a constante igual a &H8000&:

           Const MINHA_CONSTANTE = &H8000&

    Se você não adicionar um & ao final do valor, o Visual Basic avaliará o número como  &HFFFF8000, ou o decimal -32768, ao invés do decimal 32768, como você esperaria.