Função MODM_OPEN
O WINMM envia a MODM_OPEN
mensagem para a função modMessage de um driver de saída MIDI para alocar um dispositivo especificado que um aplicativo cliente pode usar.
Sintaxe
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parâmetros
Udeviceid
Especifica a ID do dispositivo de destino. As IDs do dispositivo são sequenciais e têm um valor inicial de zero e um valor final igual a um menor que o número de dispositivos compatíveis com o driver.uMsg
O WINMM define esse parâmetro como MODM_OPEN quando chama modMessage para processar essa mensagem.dwUser
O driver de saída MIDI deve preencher esse local com seus dados de instância, mas apenas em resposta aoMODM_OPEN
.Dwparam1
Esse parâmetro especifica um ponteiro distante para uma estrutura MIDIOPENDESC . Essa estrutura contém informações adicionais para o driver, como dados de instância do cliente e uma função de retorno de chamada para o cliente.Dwparam2
Esse parâmetro especifica sinalizadores de opção que determinam como o dispositivo é aberto. Os sinalizadores podem ser qualquer um dos valores na tabela a seguir.Sinalizador Significado CALLBACK_EVENT
Se esse sinalizador for especificado, dwCallback na estrutura MIDIOPENDESC será considerado um identificador de evento.
CALLBACK_FUNCTION
Se esse sinalizador for especificado, dwCallback na estrutura MIDIOPENDESC será considerado o endereço de uma função de retorno de chamada.
CALLBACK_THREAD
Se esse sinalizador for especificado, dwCallback na estrutura MIDIOPENDESC será considerado um identificador para um thread.
CALLBACK_WINDOW
Se esse sinalizador for especificado, dwCallback na estrutura MIDIOPENDESC será considerado um identificador de janela.
MIDI_IO_COOKED
Se esse sinalizador for especificado, o dispositivo será aberto no modo de fluxo e o driver receberá mensagens de fluxo. O driver deve ser capaz de lidar com quaisquer contingências que surjam. Por exemplo, o driver deve ser capaz de reproduzir mensagens curtas e mensagens exclusivas do sistema de forma assíncrona para o fluxo.
Retornar valor
A função modMessage retornará MMSYSERR_NOERROR se a operação for bem-sucedida. Caso contrário, retornará uma das mensagens de erro na tabela a seguir.
Código de retorno | Descrição |
---|---|
MMSYSERR_NOTENABLED | Falha ao carregar ou inicializar o driver. |
MMSYSERR_ALLOCATED | O dispositivo MIDI já está alocado pelo número máximo de clientes aos quais o driver dá suporte ou o dispositivo não pode ser aberto devido a limitações de recursos do sistema que não sejam a memória. |
MMSYSERR_NOMEM | O dispositivo não pode ser aberto devido a uma falha ao alocar ou bloquear memória. |
Comentários
O driver deve ser capaz de determinar o número de clientes que pode permitir usar um dispositivo específico. Depois que um dispositivo é aberto para o número máximo de clientes compatíveis com o driver, o driver retorna MMSYSERR_ALLOCATED para quaisquer solicitações adicionais para abrir o dispositivo. Se a operação aberta for bem-sucedida, o driver usará a função DriverCallback para enviar um MOM_OPEN mensagem ao cliente.
Requisitos
Plataforma de destino |
Área de Trabalho |
Versão |
Disponível em sistemas operacionais Windows XP e posteriores do Windows. |
parâmetro |
Mmddk.h (inclua Mmddk.h, Mmsystem.h ou Windows.h) |