Compartilhar via


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 ao MODM_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)

Confira também

modMessage

MIDIOPENDESC

DriverCallback

MOM_OPEN