共用方式為


auxOutMessage 函式 (mmeapi.h)

auxOutMessage函式會將訊息傳送至指定的輔助輸出裝置。 此函式也會在訊息中傳遞的裝置識別碼上執行錯誤檢查。

語法

MMRESULT auxOutMessage(
  UINT      uDeviceID,
  UINT      uMsg,
  DWORD_PTR dw1,
  DWORD_PTR dw2
);

參數

uDeviceID

要接收訊息之輔助輸出裝置的識別碼。

uMsg

要傳送的訊息。

dw1

訊息參數。

dw2

訊息參數。

傳回值

傳回訊息傳回值。

備註

訊息 DRV_QUERYDEVICEINTERFACE 會查詢waveInwaveOutmidiIn、midiOut混合器裝置的裝置介面名稱。

針對 DRV_QUERYDEVICEINTERFACEdwParam1 是呼叫端配置的緩衝區指標,函式會將包含裝置介面名稱的 Null 終止 Unicode 字串寫入其中。 如果裝置沒有裝置介面,則字串長度為零。

針對 DRV_QUERYDEVICEINTERFACEdwParam2 會以位元組為單位指定緩衝區大小。 這是函式的輸入參數。 呼叫端應該指定大於或等於 DRV_QUERYDEVICEINTERFACESIZE 訊息所擷取的緩衝區大小。

Windows Me 和 Windows 2000 和更新版本中支援DRV_QUERYDEVICEINTERFACE訊息。 此訊息僅適用于 waveInMessagewaveOutMessagemidiInMessagemidiOutMessage混合器Message 函式。 系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

下列兩個訊息常數會一起使用,以便取得裝置介面名稱:

  • DRV_QUERYDEVICEINTERFACESIZE
  • DRV_QUERYDEVICEINTERFACE
第一則訊息會取得包含裝置介面名稱的字串所需的緩衝區大小,以位元組為單位。 第二則訊息會擷取所需大小的緩衝區中的名稱字串。

如需詳細資訊,請參閱 取得裝置介面名稱

訊息 DRV_QUERYDEVICEINTERFACESIZE 會查詢保存裝置介面名稱所需的緩衝區大小。

針對 DRV_QUERYDEVICEINTERFACESIZEdwParam1 是緩衝區大小的指標。 此參數指向 ULONG 變數,函式會將所需的緩衝區大小寫入位元組。 大小包含名稱字串終止 Null 的儲存空間。 如果裝置識別碼識別沒有裝置介面的裝置,則大小為零。

針對 DRV_QUERYDEVICEINTERFACESIZE未使用 dwParam2 。 將此參數設定為零。

此訊息僅適用于 waveInMessagewaveOutMessagemidiInMessagemidiOutMessage混合器Message 函式。 系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

此訊息所擷取的緩衝區大小會以位元組計數表示。 它會指定保存包含裝置介面名稱之 Null 終止 Unicode 字串所需的緩衝區大小。 呼叫端會配置指定大小的緩衝區,並使用 DRV_QUERYDEVICEINTERFACE 訊息來擷取裝置介面名稱字串。

如需詳細資訊,請參閱 取得裝置介面名稱

訊息 DRV_QUERYDEVNODE 會查詢隨插即用管理員指派給裝置的 devnode 號碼。

針對 DRV_QUERYDEVNODEdwParam1 是呼叫端配置的 DWORD 變數指標,函式會將 devnode 編號寫入其中。 如果未將 devnode 指派給裝置,函式會將此變數設定為零。

針對 DRV_QUERYDEVNODE未使用 dwParam2 。 將此參數設定為零。

在 Windows 2000 和更新版本中,訊息一律會傳回MMSYSERR_NOTSUPPORTED。 此訊息僅適用于 waveInMessagewaveOutMessagemidiInMessagemidiOutMessage混合器Message 函式。 系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

訊息 DRV_QUERYMAPPABLE 會查詢對應程式是否可以使用指定的裝置。

針對 DRV_QUERYMAPPABLE未使用 dwParam1 。 將此參數設定為零。

針對 DRV_QUERYMAPPABLE未使用 dwParam2 。 將此參數設定為零。

此訊息僅適用于 waveInMessagewaveOutMessagemidiInMessagemidiOutMessage混合器MessageauxOutMessage 函式。 系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

當應用程式程式開啟對應程式而非特定音訊裝置時,系統會在應用程式和可用的裝置之間插入對應程式。 對應程式會將應用程式的需求對應至其中一個可用的裝置,以選取適當的裝置。 如需對應程式的詳細資訊,請參閱Microsoft Windows SDK檔。

訊息 DRVM_MAPPER_CONSOLEVOICECOM_GET 會擷取慣用語音通訊裝置的裝置識別碼。

針對 DRVM_MAPPER_CONSOLEVOICECOM_GETdwParam1 是裝置識別碼的指標。 此參數指向 DWORD 變數,函式會將目前慣用語音通訊裝置的裝置識別碼寫入其中。 函式會寫入值 (-1) 如果沒有符合慣用語音通訊裝置資格的裝置。

針對 DRVM_MAPPER_CONSOLEVOICECOM_GETdwParam2 是狀態旗標的指標。 此參數指向函式寫入裝置狀態旗標的 DWORD 變數。 目前只定義一個旗標位:DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY。

此訊息僅適用于 waveInMessagewaveOutMessage 函式。 當呼叫端使用DRVM_MAPPER_CONSOLEVOICECOM_GET訊息呼叫這兩個函式時,呼叫端必須將裝置識別碼指定為WAVE_MAPPER,然後將此值轉換為適當的控制碼類型。 針對 waveInMessagewaveOutMessagemidiInMessagemidiOutMessagemixsage 函式,呼叫端必須將裝置識別碼分別轉換成 HWAVEIN、HWAVEOUT、HMIDIIN、HMIDIOUT 或 HMIXER 類型的控制碼。 請注意,如果呼叫端提供有效的控制碼,而不是此參數的裝置識別碼,函式會失敗並傳回錯誤碼MMSYSERR_NOSUPPORT。

系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

此訊息提供一種方式來判斷哪些裝置特別適用于語音通訊,與 DRVM_MAPPER_PREFERRED_GET 訊息相反,這會決定其他所有音訊功能偏好哪一個裝置。

例如,語音通訊慣用 的 waveOut 裝置可能是頭戴式裝置中的耳機,但所有其他音訊功能的慣用 waveOut 裝置可能是一組身歷聲喇叭。

dwParam2指向的 DWORD 位置中設定DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY旗標位時, waveInwaveOut API 只會使用目前的慣用語音通訊裝置,而且如果慣用的裝置無法使用,則不會搜尋其他可用的裝置。 waveInMessagewaveOutMessage呼叫所輸出的旗標適用于waveInwaveOut API 的慣用語音通訊裝置,不論呼叫waveInMessage還是waveOutMessage。 如需詳細資訊,請參閱 慣用 Voice-Communications 裝置識別碼

訊息 DRVM_MAPPER_PREFERRED_GET 會擷取慣用音訊裝置的裝置識別碼。

針對 DRVM_MAPPER_PREFERRED_GETdwParam1 是裝置識別碼的指標。 此參數指向 DWORD 變數,函式會將目前慣用裝置的裝置識別碼寫入其中。 函式會將值寫入 (-1) ,如果沒有符合慣用裝置資格的裝置。

針對 DRVM_MAPPER_PREFERRED_GETdwParam2 是狀態旗標的指標。 此參數指向函式寫入裝置狀態旗標的 DWORD 變數。 目前只有一個旗標位是針對 waveInMessagewaveOutMessage 呼叫定義 () :DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY。

此訊息僅適用于 waveInMessagewaveOutMessagemidiOutMessage 函式。 當呼叫端使用DRVM_MAPPER_PREFERRED_GET訊息呼叫這些函式時,呼叫端必須先將裝置識別碼指定為 waveInMessagewaveOutMessage) WAVE_MAPPER (或 midiOutMessage) MIDI_MAPPER (,然後將此值轉換成適當的控制碼類型。 針對 waveInMessagewaveOutMessagemidiOutMessage 函式,呼叫端必須將裝置識別碼分別轉換成控制碼類型 HWAVEIN、HWAVEOUT 或 HMIDIOUT。 請注意,如果呼叫端提供有效的控制碼,而不是此參數的裝置識別碼,函式會失敗並傳回錯誤碼MMSYSERR_NOSUPPORT。

系統會攔截此訊息,並傳回適當的值,而不會將訊息傳送至設備磁碟機。 如需系統攔截 xxxMessage 函式的一般資訊,請參閱 系統攔截的裝置訊息

相較于 DRVM_MAPPER_CONSOLEVOICECOM_GET 訊息,此訊息提供一種方式來判斷一般音訊功能偏好哪一個裝置,這可決定哪些裝置特別適合用於語音通訊。

當 DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 旗標位設定在 dwParam2指向的 DWORD 位置時, waveInwaveOut API 只會使用目前的慣用裝置,而且如果慣用裝置無法使用,則不會搜尋其他可用的裝置。 請注意, midiOutMessage 函式不會輸出此旗標-- midiOut API 一律只會使用慣用的裝置。 waveInMessage 或 waveOutMessage呼叫所輸出的旗標會同時套用至waveInwaveOut API 的慣用裝置,不論呼叫是否為 waveInMessagewaveOutMessage

xxx訊息函式接受此值來取代有效的裝置控制碼,以便讓應用程式判斷預設裝置識別碼,而不需要先開啟裝置。 如需詳細資訊,請參閱 存取慣用裝置識別碼

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 mmeapi.h (包含 Windows.h)
程式庫 Winmm.lib
Dll Winmm.dll

另請參閱

波波音訊

波波函式