⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mme.c

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 C
字号:
/* * * COPYRIGHT:            See COPYING in the top level directory * PROJECT:              ReactOS Multimedia * FILE:                 dll/win32/mmdrv/mme.c * PURPOSE:              Multimedia User Mode Driver (MME Interface) * PROGRAMMER:           Andrew Greenwood *                       Aleksey Bragin * UPDATE HISTORY: *                       Jan 14, 2007: Rewritten and tidied up */#include <mmdrv.h>/*    Sends a message to the client (application), such as WOM_DONE. This    is just a wrapper around DriverCallback which translates the    parameters appropriately.*/BOOLNotifyClient(    SessionInfo* session_info,    DWORD message,    DWORD parameter1,    DWORD parameter2){    return DriverCallback(session_info->callback,                          HIWORD(session_info->flags),                          session_info->mme_handle,                          message,                          session_info->app_user_data,                          parameter1,                          parameter2);}/*    MME Driver Entrypoint    Wave Output*/APIENTRY DWORDwodMessage(    DWORD device_id,    DWORD message,    DWORD private_handle,    DWORD parameter1,    DWORD parameter2){    switch ( message )    {        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p80.htm */        case WODM_GETNUMDEVS :            DPRINT("WODM_GETNUMDEVS\n");            return GetDeviceCount(WaveOutDevice);        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6h.htm */        case WODM_GETDEVCAPS :            DPRINT("WODM_GETDEVCAPS\n");            return GetDeviceCapabilities(WaveOutDevice,                                         device_id,                                         (PVOID) parameter1,                                         parameter2);        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p85.htm */        case WODM_OPEN :        {            WAVEOPENDESC* open_desc = (WAVEOPENDESC*) parameter1;            DPRINT("WODM_OPEN\n");            if ( parameter2 && WAVE_FORMAT_QUERY )                return QueryWaveFormat(WaveOutDevice, open_desc->lpFormat);            else                return OpenDevice(WaveOutDevice,                                  device_id,                                  open_desc,                                  parameter2,                                  private_handle);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6g.htm */        case WODM_CLOSE :        {            DPRINT("WODM_CLOSE\n");            return CloseDevice(private_handle);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p9w.htm */        case WODM_WRITE :        {            DPRINT("WODM_WRITE\n");            return WriteWaveBuffer(private_handle,                                   (PWAVEHDR) parameter1,                                   parameter2);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p86.htm */        case WODM_PAUSE :        {            DPRINT("WODM_PAUSE\n");            return HandleBySessionThread(private_handle, message, 0);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p89.htm */        case WODM_RESTART :        {            DPRINT("WODM_RESTART\n");            return HandleBySessionThread(private_handle, message, 0);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p88.htm */        case WODM_RESET :        {            DPRINT("WODM_RESET\n");            return HandleBySessionThread(private_handle, message, 0);        }        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p83.htm */#if 0        case WODM_GETPOS :        {            DPRINT("WODM_GETPOS\n");            return GetPosition(private_handle,                               (PMMTIME) parameter1,                               parameter2);        }#endif        /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6f.htm */        case WODM_BREAKLOOP :        {            DPRINT("WODM_BREAKLOOP\n");            return HandleBySessionThread(private_handle, message, 0);        }        /* TODO: Others */    }    DPRINT("Unsupported message\n");    return MMSYSERR_NOTSUPPORTED;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -