1

いくつかの復調器パラメーター (シンボル レート、変調タイプなど) を構成するアプリケーションを構築する必要があり、Microsoft BDA アーキテクチャを介してこれらのことを行いました。

CComPtr <IBDA_Topology> pITopology;
CComPtr <IBDA_AutoDemodulate>   m_pIAutoDemod;
CComPtr <IBDA_DigitalDemodulator>   m_pIDigiDemod;

hr = m_pTunerDevice->QueryInterface(IID_IBDA_Topology,
reinterpret_cast<void**>(&pITopology) );

ULONG   nNodesTypeNum = 0;
ULONG   NodesType[10];

hr = pITopology->GetNodeTypes(&nNodesTypeNum, 10, NodesType);

CComPtr <IUnknown> pIUknow;

// NodesType[1] is the Demod node
hr = pITopology->GetControlNode(0, 1, NodesType[1], &pIUknow);

ULONG   nInterfacesNum = 0;
GUID    InterfacesGUID[10];

// After this call, we sure that InerfacesGUID[0] == IID_IBDA_AutoDemodulate
// and InerfacesGUID[1] == IID_IBDA_DigitalDemodulator
hr = pITopology->GetNodeInterfaces(NodesType[1], &nInterfacesNum, 10,
InerfacesGUID);

// Call this success
hr = pIUknow->QueryInterface(IID_IBDA_DigitalDemodulator, (void
**)&m_pIDigiDemod);

ModulationType type = BDA_MOD_NOT_DEFINED;
hr = m_pIDigiDemod->get_ModulationType(&type);//failed here

問題なくインターフェイス オブジェクトを取得できます。しかし、どのメソッド (変調タイプの取得、シンボル レートの取得) を呼び出しても、常に E_HANDLE が返されます。また、BDA ドライバーが適切であることも確認します。

私を正しい方向に向けるアイデアは大歓迎です。

4

0 に答える 0