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

📄 mmacm.pas

📁 一套及时通讯的原码
💻 PAS
📖 第 1 页 / 共 4 页
字号:
{-----------------------------------------------------------------------}
{ acmFormatEnum                                                         }
{-----------------------------------------------------------------------}
type
    TACMFORMATENUMCB = function(hadid: THACMDRIVERID; pafd: PACMFORMATDETAILS;
                                dwInstance, fdwSupport: DWORD): Boolean; 
                                {$IFDEF WIN32}stdcall;{$ENDIF}
var
   acmFormatEnum: function(had: THACMDRIVER; pafd: PACMFORMATDETAILS;
                           fnCallBack: TACMFORMATENUMCB;
                           dwInstance, fdwEnum: DWORD): MMRESULT;
                           {$IFDEF WIN32}stdcall;{$ENDIF}

const
     ACM_FORMATENUMF_WFORMATTAG     = $00010000;
     ACM_FORMATENUMF_NCHANNELS      = $00020000;
     ACM_FORMATENUMF_NSAMPLESPERSEC = $00040000;
     ACM_FORMATENUMF_WBITSPERSAMPLE = $00080000;
     ACM_FORMATENUMF_CONVERT        = $00100000;
     ACM_FORMATENUMF_SUGGEST        = $00200000;
     ACM_FORMATENUMF_HARDWARE       = $00400000;
     ACM_FORMATENUMF_INPUT          = $00800000;
     ACM_FORMATENUMF_OUTPUT         = $01000000;

{-----------------------------------------------------------------------}
{ acmFormatSuggest                                                      }
{-----------------------------------------------------------------------}
var
   acmFormatSuggest: function(had: THACMDRIVER; pwfxSrc, pwfxDst: PWAVEFORMATEX;
                              cbwfxDst, fdwSuggest: DWORD): MMRESULT;
                              {$IFDEF WIN32}stdcall;{$ENDIF}
const
     ACM_FORMATSUGGESTF_WFORMATTAG     = $00010000;
     ACM_FORMATSUGGESTF_NCHANNELS      = $00020000;
     ACM_FORMATSUGGESTF_NSAMPLESPERSEC = $00040000;
     ACM_FORMATSUGGESTF_WBITSPERSAMPLE = $00080000;

     ACM_FORMATSUGGESTF_TYPEMASK       = $00FF0000;

{-----------------------------------------------------------------------}
{ acmFormatChoose                                                       }
{-----------------------------------------------------------------------}
const
     ACMHELPMSGSTRING       = 'acmchoose_help';
     ACMHELPMSGCONTEXTMENU  = 'acmchoose_contextmenu';
     ACMHELPMSGCONTEXTHELP  = 'acmchoose_contexthelp';

{ MM_ACM_FORMATCHOOSE is sent to hook callbacks by the Format Chooser   }
{  Dialog...                                                            }

     MM_ACM_FORMATCHOOSE           = ($8000);

     FORMATCHOOSE_MESSAGE          = 0;
     FORMATCHOOSE_FORMATTAG_VERIFY = (FORMATCHOOSE_MESSAGE+0);
     FORMATCHOOSE_FORMAT_VERIFY    = (FORMATCHOOSE_MESSAGE+1);
     FORMATCHOOSE_CUSTOM_VERIFY    = (FORMATCHOOSE_MESSAGE+2);

type
    TACMFORMATCHOOSEHOOKPROC = function(hwnd: HWND; uMsg: UINT;
                                        wParam: WPARAM; lParam: LPARAM): UINT;
                                        {$IFDEF WIN32}stdcall;{$ENDIF}

    PACMFORMATCHOOSE = ^TACMFORMATCHOOSE;
    TACMFORMATCHOOSE = record
        cbStruct       : DWORD;           { sizeof(ACMFORMATCHOOSE)      }
        fdwStyle       : DWORD;           { chooser style flags          }

        hwndOwner      : HWND;            { caller's window handle       }

        pwfx           : PWAVEFORMATEX;   { ptr to wfx buf to receive choice }
        cbwfx          : DWORD;           { size of mem buf for pwfx     }
        pszTitle       : PCHAR;           { dialog box title bar         }

        szFormatTag    : array[0..ACMFORMATTAGDETAILS_FORMATTAG_CHARS-1] of Char;
        szFormat       : array[0..ACMFORMATDETAILS_FORMAT_CHARS-1] of Char;

        pszName        : PCHAR;            { custom name selection       }
        cchName        : DWORD;            { size in chars of mem buf for pszName }

        fdwEnum        : DWORD;            { format enumeration restrictions }
        pwfxEnum       : PWAVEFORMATEX;    { format describing restrictions }

        hInstance      : THandle;          { app instance containing dlg template }
        pszTemplateName: PChar;            { custom template name           }
        lCustData      : LPARAM;           { data passed to hook fn.        }
        pfnHook        : TACMFORMATCHOOSEHOOKPROC;{ ptr to hook function }
    end;

{-----------------------------------------------------------------------}
{ ACMFORMATCHOOSE.fdwStyle                                              }
{-----------------------------------------------------------------------}
const
     ACMFORMATCHOOSE_STYLEF_SHOWHELP             = $00000004;
     ACMFORMATCHOOSE_STYLEF_ENABLEHOOK           = $00000008;
     ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE       = $00000010;
     ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE = $00000020;
     ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT      = $00000040;
     ACMFORMATCHOOSE_STYLEF_CONTEXTHELP          = $00000080;

var
   acmFormatChoose: function(pafmtc: PACMFORMATCHOOSE): MMRESULT;
                             {$IFDEF WIN32}stdcall;{$ENDIF}

{=======================================================================}
{ ACM Filter Tags                                                       }
{=======================================================================}

{-----------------------------------------------------------------------}
{ acmFilterTagDetails                                                   }
{-----------------------------------------------------------------------}
const
     ACMFILTERTAGDETAILS_FILTERTAG_CHARS = 48;

type
    PACMFILTERTAGDETAILS = ^TACMFILTERTAGDETAILS;
    TACMFILTERTAGDETAILS = record
        cbStruct        : DWORD;
        dwFilterTagIndex: DWORD;
        dwFilterTag     : DWORD;
        cbFilterSize    : DWORD;
        fdwSupport      : DWORD;
        cStandardFilters: DWORD;
        szFilterTag: array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of Char;
    end;

var
   acmFilterTagDetails: function(had: THACMDRIVER; paftd: PACMFILTERTAGDETAILS;
                                 fdwDetails: DWORD): MMRESULT;
                                 {$IFDEF WIN32}stdcall;{$ENDIF}
const
     ACM_FILTERTAGDETAILSF_INDEX       = $00000000;
     ACM_FILTERTAGDETAILSF_FILTERTAG   = $00000001;
     ACM_FILTERTAGDETAILSF_LARGESTSIZE = $00000002;
     ACM_FILTERTAGDETAILSF_QUERYMASK   = $0000000F;

{-----------------------------------------------------------------------}
{ acmFilterTagEnum                                                      }
{-----------------------------------------------------------------------}
type
    TACMFILTERTAGENUMCB = function(hadid: THACMDRIVERID;
                                   paftd: PACMFILTERTAGDETAILS;
                                   dwInstance, fdwSupport: DWORD): Boolean; 
                                   {$IFDEF WIN32}stdcall;{$ENDIF}

var
   acmFilterTagEnum: function(had: THACMDRIVER;paftd: PACMFILTERTAGDETAILS;
                              fnCallBack: TACMFILTERTAGENUMCB;
                              dwInstance, fdwEnum: DWORD): MMRESULT;
                              {$IFDEF WIN32}stdcall;{$ENDIF}

{=======================================================================}
{ ACM Filters                                                           }
{=======================================================================}

{-----------------------------------------------------------------------}
{ acmFilterDetails                                                      }
{-----------------------------------------------------------------------}
const
     ACMFILTERDETAILS_FILTER_CHARS = 128;

type
    PACMFILTERDETAILS = ^TACMFILTERDETAILS;
    TACMFILTERDETAILS = record
        cbStruct     : DWORD;
        dwFilterIndex: DWORD;
        dwFilterTag  : DWORD;
        fdwSupport   : DWORD;
        pwfltr       : PWAVEFILTER;
        cbwfltr      : DWORD;
        szFilter: array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of char;
    end;

var
   acmFilterDetails: function(had: THACMDRIVER;
                              pafd: PACMFILTERDETAILS;
                              fdwDetails: DWORD): MMRESULT;
                              {$IFDEF WIN32}stdcall;{$ENDIF}

const
     ACM_FILTERDETAILSF_INDEX     = $00000000;
     ACM_FILTERDETAILSF_FILTER    = $00000001;
     ACM_FILTERDETAILSF_QUERYMASK = $0000000F;

{-----------------------------------------------------------------------}
{ acmFilterEnum                                                         }
{-----------------------------------------------------------------------}
type
    TACMFILTERENUMCB = function(hadid: THACMDRIVERID;
                                pafd: PACMFILTERDETAILS;
                                dwInstance, fdwSupport: DWORD): Boolean;
                                {$IFDEF WIN32}stdcall;{$ENDIF}

var
   acmFilterEnum: function(had: THACMDRIVER; pafd: PACMFILTERDETAILS;
                           fnCallBack: TACMFILTERENUMCB;
                           dwInstance, fdwEnum: DWORD): MMRESULT;
                           {$IFDEF WIN32}stdcall;{$ENDIF}
const
     ACM_FILTERENUMF_DWFILTERTAG = $00010000;

{-----------------------------------------------------------------------}
{ acmFilterChoose                                                       }
{-----------------------------------------------------------------------}
{ MM_ACM_FILTERCHOOSE is sent to hook callbacks by the Filter Chooser   }
{ Dialog...                                                             }
const
     MM_ACM_FILTERCHOOSE           = ($8000);

     FILTERCHOOSE_MESSAGE          = 0;
     FILTERCHOOSE_FILTERTAG_VERIFY = (FILTERCHOOSE_MESSAGE+0);
     FILTERCHOOSE_FILTER_VERIFY    = (FILTERCHOOSE_MESSAGE+1);
     FILTERCHOOSE_CUSTOM_VERIFY    = (FILTERCHOOSE_MESSAGE+2);

type
    TACMFILTERCHOOSEHOOKPROC = function(hwnd: HWND; uMsg: UINT;
                                        wParam: WPARAM; lParam: LPARAM): UINT;
                                        {$IFDEF WIN32}stdcall;{$ENDIF}

    PACMFILTERCHOOSE = ^TACMFILTERCHOOSE;
    TACMFILTERCHOOSE = record
        cbStruct   : DWORD;        { sizeof(ACMFILTERCHOOSE)             }
        fdwStyle   : DWORD;        { chooser style flags                 }

        hwndOwner  : HWND;         { caller's window handle              }

        pwfltr     : PWAVEFILTER;  { ptr to wfltr buf to receive choice  }
        cbwfltr    : DWORD;        { size of mem buf for pwfltr          }

        pszTitle   : PChar;

        szFilterTag: array[0..ACMFILTERTAGDETAILS_FILTERTAG_CHARS-1] of Char;
        szFilter   : array[0..ACMFILTERDETAILS_FILTER_CHARS-1] of Char;
        pszName    : PChar;        { custom name selection               }
        cchName    : DWORD;        { size in chars of mem buf for pszName}

        fdwEnum    : DWORD;        { filter enumeration restrictions     }
        pwfltrEnum : PWAVEFILTER;  { filter describing restrictions      }

⌨️ 快捷键说明

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