Antarmuka IKsJackDescription (devicetopology.h)

Antarmuka IKsJackDescription menyediakan informasi tentang jack atau konektor internal yang menyediakan koneksi fisik antara perangkat pada adaptor audio dan perangkat titik akhir eksternal atau internal (misalnya, mikrofon atau pemutar CD). Klien mendapatkan referensi ke antarmuka IKsJackDescription dari suatu bagian dengan memanggil metode IPart::Activate dengan parameter refiid diatur ke REFIID IID_IKsJackDescription. Panggilan ke IPart::Activate hanya berhasil jika bagian mendukung antarmuka IKsJackDescription . Hanya objek bagian yang mewakili konektor dengan jenis koneksi Physical_External atau Physical_Internal yang akan mendukung antarmuka ini.

Sebagian besar driver adaptor audio Windows mendukung Windows Driver Model (WDM) dan menggunakan properti kernel-streaming (KS) untuk mewakili parameter deskripsi perangkat keras dalam konektor (disebut sebagai pin KS). Antarmuka IKsJackDescription menyediakan akses mudah ke properti KSPROPERTY_JACK_DESCRIPTION konektor ke perangkat titik akhir. Untuk informasi selengkapnya tentang properti KS dan pin KS, lihat dokumentasi Windows DDK.

Warisan

Antarmuka IKsJackDescription mewarisi dari antarmuka IUnknown . IKsJackDescription juga memiliki jenis anggota ini:

Metode

Antarmuka IKsJackDescription memiliki metode ini.

 
IKsJackDescription::GetJackCount

Metode GetJackCount mendapatkan jumlah jack yang diperlukan untuk terhubung ke perangkat titik akhir audio.
IKsJackDescription::GetJackDescription

Metode GetJackDescription mendapatkan deskripsi jack audio.

Keterangan

Jika perangkat titik akhir audio mendukung antarmuka IKsJackDescription , panel kontrol multimedia Windows, Mmsys.cpl, menampilkan informasi jack. Untuk melihat informasi jack, ikuti langkah-langkah berikut:

  1. Untuk menjalankan Mmsys.cpl, buka jendela Wantian Perintah dan masukkan perintah berikut:

    mmsys.cplkontrol

    Atau, Anda dapat menjalankan Mmsys.cpl dengan mengklik kanan ikon speaker di area pemberitahuan, yang terletak di sisi kanan taskbar, dan memilih Pemutaran Perangkat atau Perangkat Perekaman.

  2. Setelah jendela Mmsys.cpl terbuka, pilih perangkat dari daftar perangkat pemutaran atau daftar perangkat perekaman, dan klik Properti.
  3. Saat jendela properti terbuka, klik Umum. Jika halaman properti yang dipilih menampilkan informasi jack untuk perangkat, perangkat mendukung antarmuka IKsJackDescription . Jika halaman properti menampilkan teks "Tidak ada informasi jack yang tersedia", perangkat tidak mendukung antarmuka.
Contoh kode berikut menunjukkan cara mendapatkan antarmuka IKsJackDescription untuk perangkat titik akhir audio:
//-----------------------------------------------------------
// Get the IKsJackDescription interface that describes the
// audio jack or jacks that the endpoint device plugs into.
//-----------------------------------------------------------
#define EXIT_ON_ERROR(hres)  \
              if (FAILED(hres)) { goto Exit; }
#define SAFE_RELEASE(punk)  \
              if ((punk) != NULL)  \
                { (punk)->Release(); (punk) = NULL; }

HRESULT GetJackInfo(IMMDevice *pDevice,
                    IKsJackDescription **ppJackDesc)
{
    HRESULT hr = S_OK;
    IDeviceTopology *pDeviceTopology = NULL;
    IConnector *pConnFrom = NULL;
    IConnector *pConnTo = NULL;
    IPart *pPart = NULL;
    IKsJackDescription *pJackDesc = NULL;

    if (NULL != ppJackDesc)
    {
        *ppJackDesc = NULL;
    }
    if (NULL == pDevice || NULL == ppJackDesc)
    {
        return E_POINTER;
    }

    // Get the endpoint device's IDeviceTopology interface.
    hr = pDevice->Activate(__uuidof(IDeviceTopology), CLSCTX_ALL,
                           NULL, (void**)&pDeviceTopology);
    EXIT_ON_ERROR(hr)

    // The device topology for an endpoint device always
    // contains just one connector (connector number 0).
    hr = pDeviceTopology->GetConnector(0, &pConnFrom);
    EXIT_ON_ERROR(hr)

    // Step across the connection to the jack on the adapter.
    hr = pConnFrom->GetConnectedTo(&pConnTo);
    if (HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND) == hr)
    {
        // The adapter device is not currently active.
        hr = E_NOINTERFACE;
    }
    EXIT_ON_ERROR(hr)

    // Get the connector's IPart interface.
    hr = pConnTo->QueryInterface(__uuidof(IPart), (void**)&pPart);
    EXIT_ON_ERROR(hr)

    // Activate the connector's IKsJackDescription interface.
    hr = pPart->Activate(CLSCTX_INPROC_SERVER,
                         __uuidof(IKsJackDescription), (void**)&pJackDesc);
    EXIT_ON_ERROR(hr)

    *ppJackDesc = pJackDesc;

Exit:
    SAFE_RELEASE(pDeviceTopology)
    SAFE_RELEASE(pConnFrom)
    SAFE_RELEASE(pConnTo)
    SAFE_RELEASE(pPart)
    return hr;
}

Dalam contoh kode sebelumnya, fungsi GetJackInfo mengambil dua parameter. Parameter input pDevice menunjuk ke antarmuka IMMDevice dari perangkat titik akhir. Parameter output ppJackDesc menunjuk ke nilai pointer tempat fungsi menulis alamat antarmuka IKsJackDescription yang sesuai, jika antarmuka ada. Jika antarmuka tidak ada, fungsi menulis NULL ke *ppJackDesc dan mengembalikan kode kesalahan E_NOINTERFACE.

Dalam contoh kode sebelumnya, panggilan ke IMMDevice::Activate mengambil antarmuka IDeviceTopology dari perangkat titik akhir. Topologi perangkat dari perangkat titik akhir berisi satu konektor (nomor konektor 0) yang tersambung ke perangkat adaptor. Di sisi lain koneksi ini, konektor pada perangkat adaptor mewakili jack audio atau jack yang dicolokkan perangkat titik akhir. Panggilan ke metode IDeviceTopology::GetConnector mengambil antarmuka IConnector konektor pada perangkat titik akhir, dan panggilan metode IConnector::GetConnectedTo mengambil konektor yang sesuai pada perangkat adaptor. Terakhir, panggilan metode IConnector::QueryInterface mengambil antarmuka IPart dari konektor perangkat adaptor, dan panggilan metode IPart::Activate mengambil antarmuka IKsJackDescription konektor, jika ada.

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header devicetopology.h

Lihat juga

Antarmuka Audio Inti

DeviceTopology API

IPart::Activate