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
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.