Sample Code
Windows Driver Samples/ Windows Radio Management Sample/ C++/ cpp/ RadioMgr.idl/
// // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: RadioMgr.idl // //---------------------------------------------------------------------------- cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)") import "oaidl.idl"; import "wtypes.idl"; interface IMediaRadioManager; interface IRadioInstanceCollection; interface IRadioInstance; interface IMediaRadioManagerNotifySink; typedef enum _DEVICE_RADIO_STATE { DRS_RADIO_ON = 0, DRS_SW_RADIO_OFF = 1, DRS_HW_RADIO_OFF = 2, DRS_SW_HW_RADIO_OFF = 3, DRS_HW_RADIO_ON_UNCONTROLLABLE = 4, DRS_RADIO_INVALID = 5, DRS_HW_RADIO_OFF_UNCONTROLLABLE = 6, DRS_RADIO_MAX = DRS_HW_RADIO_OFF_UNCONTROLLABLE } DEVICE_RADIO_STATE; typedef enum _SYSTEM_RADIO_STATE { SRS_RADIO_ENABLED = 0, SRS_RADIO_DISABLED = 1, } SYSTEM_RADIO_STATE; //+-------------------------------------------------------------------------------- // IMediaRadioManager -- Represents high level radio operations on each radio type. // The object implementing this interface will implement a Connection point (IConnectionPoint) // for IMediaRadioManagerNotifySink. // Each IMediaRadioManager object controls several or no IRadioInstance objects. [ local, object, uuid(6CFDCAB5-FC47-42A5-9241-074B58830E73), pointer_default(unique) ] interface IMediaRadioManager : IUnknown { HRESULT GetRadioInstances( [out] IRadioInstanceCollection **ppCollection ); HRESULT OnSystemRadioStateChange( [in] SYSTEM_RADIO_STATE sysRadioState, [in] UINT32 uTimeoutSec ); }; //+--------------------------------------------------------------------------- // IRadioInstanceCollection -- a flat list of radio instances // [ local, object, uuid(E5791FAE-5665-4E0C-95BE-5FDE31644185), pointer_default(unique) ] interface IRadioInstanceCollection : IUnknown { HRESULT GetCount( [out] UINT32 *pcInstance ); HRESULT GetAt( [in] UINT32 uIndex, [out] IRadioInstance **ppRadioInstance ); }; //+--------------------------------------------------------------------------- // IRadioInstance -- Interface to control specific radio instance // [ local, object, uuid(70AA1C9E-F2B4-4C61-86D3-6B9FB75FD1A2), pointer_default(unique) ] interface IRadioInstance : IUnknown { HRESULT GetRadioManagerSignature( [out] GUID *pguidSignature ); HRESULT GetInstanceSignature( [out, string] BSTR *pbstrId ); HRESULT GetFriendlyName( [in] LCID lcid, [out, string] BSTR *pbstrName ); HRESULT GetRadioState( [out] DEVICE_RADIO_STATE *pRadioState ); HRESULT SetRadioState( [in] DEVICE_RADIO_STATE radioState, [in] UINT32 uTimeoutSec ); BOOL IsMultiComm(); BOOL IsAssociatingDevice(); } //+--------------------------------------------------------------------------- // IMediaRadioManagerNotifySink -- notify instance add/remove and radio state change event // [ local, object, uuid(89D81F5F-C147-49ED-A11C-77B20C31E7C9), pointer_default(unique) ] interface IMediaRadioManagerNotifySink : IUnknown { HRESULT OnInstanceAdd( [in] IRadioInstance *pRadioInstance ); HRESULT OnInstanceRemove( [in, string] BSTR bstrRadioInstanceId ); HRESULT OnInstanceRadioChange( [in, string] BSTR bstrRadioInstanceId, [in] DEVICE_RADIO_STATE radioState ); }; cpp_quote("#endif // (NTDDI >= NTDDI_WIN8)")
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials