// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#if ( _MSC_VER >= 1020 )") cpp_quote("#pragma once") cpp_quote("#endif") cpp_quote("DEFINE_GUID(SID_3GPP_SUPSVCMODEL, 0xd7d08e07, 0xd767, 0x4478, 0xb1, 0x4a, 0xee, 0xcc, 0x87, 0xea, 0x12, 0xf7);") import "oaidl.idl"; import "ocidl.idl"; midl_pragma warning( disable: 2456 ) import "RilAPITypes.idl"; // // Forward declarations - major objects // interface IOemCellular; interface IOemCellularModem; interface IOemCan; interface IOemCanExtForIMS; interface IOemSlot; interface IOemUICCApp; interface IOemUICCAppEx; interface IOemUICCAppEx2; interface IOemUICC; interface IOem3GPPSupServices; interface IOemIMSStatusChange; // // State change interfaces unique to the OEM API // interface IOemCellularModemExistenceChange; interface IOemSlotChange; interface IOemCellularCanAvailabilityChange; interface IOemCanRegistrationStateChange; interface IOemSlotStateChange; interface IOemUiccChange; interface IOemUiccAppChange; // // State change interfaces shared with CellularAPI.idl // interface IPowerStateChange; // // Completion interfaces unique to the OEM API // // // Completion interfaces shared with CellularAPI.idl // interface IModemOpaqueCommandCompletion; interface IOpaqueModemNotifications; interface ISetRFStateCompletion; interface IGetRFStateCompletion; interface IGetRFStateExCompletion; interface ICanInfoCompletion; interface IPositionInfoCompletion; interface IPinLockStateCompletion; interface IGetRecordStatusCompletion; interface IReadRecordCompletion; interface IWriteRecordCompletion; interface IIMSICompletion; interface IGetSIDNIDCompletion; interface IGetNAICompletion; interface ISubscriberNumbersCompletion; interface IGetPLMNwAcT; interface ISetPLMNwAcT; interface IGetCallForwardingCompletion; interface ISimpleModemCompletion; interface ICallWaitingSettingsCompletion; // // Other classes that are unique to the OEM API // interface IOemRegistrationStatus; const int MAXLENGTH_NAI = 72; // // Data types shared with CellularAPI.idl enum MODEMPOWERSTATE { MODEM_POWER_OFF = 0x0001, MODEM_POWER_GOING_ON = 0x0002, MODEM_POWER_ON = 0x0003, MODEM_POWER_GOING_OFF = 0x0004, MODEM_POWER_SHUTING_DOWN = 0x0005 } ; // BUGBUG: These should have been defined in RilAPITypes.idl or given a different name, since only idertifiers in the IHVRIL // interface should have names beginning with the prefix RIL typedef enum RILSIDNIDPARAMMASK RILSIDNIDPARAMMASK; typedef struct RILSIDNID RILSIDNID; typedef struct RILSIDNID *LPRILSIDNID; typedef struct RILNAI NAI; typedef struct RILNAI* LPRILNAI; enum RILNAIPARAMMASK { RIL_PARAM_NAI_NAI = 0x00000001, RIL_PARAM_NAI_ALL = 0x00000001 } ; struct RILNAI { DWORD cbSize; DWORD dwParams; WCHAR wszNAI[MAXLENGTH_NAI + 1]; }; enum RILSIDNIDPARAMMASK { RIL_PARAM_SIDNID_SID = 0x00000001, RIL_PARAM_SIDNID_NID = 0x00000002, RIL_PARAM_SIDNID_ALL = 0x00000003 } ; struct RILSIDNID { DWORD cbSize; DWORD dwParams; DWORD dwSid; DWORD dwNid; } ; typedef enum UICCDATASTOREACCESSMODE UICCDATASTOREACCESSMODE; enum UICCDATASTOREACCESSMODE { UICCDATASTORE_PUBLIC = 0x0001, UICCDATASTORE_PRIVATE = 0x0002 } ; const int MAXLENGTH_UICCDATASTORE = 10; struct UICCDATASTOREENTRY { DWORD position; DWORD lengthIccId; BYTE iccId[MAXLENGTH_ICCID]; } ; typedef struct UICCDATASTOREINFO UICCDATASTOREINFO; struct UICCDATASTOREINFO { DWORD dwCount; struct UICCDATASTOREENTRY entries[MAXLENGTH_UICCDATASTORE]; } ; /////////////////////////////////////////////////////////////////////////////////////////////// // // Major Objects // // IOemCellular - external version of ICellular [object, oleautomation, uuid(17AE6DC1-3723-4085-99BA-7160CDB8BFC1)] interface IOemCellular : IUnknown { [helpstring("Register to be informed of modems within the system")] HRESULT RegisterForOemModemExistenceChanges([in] IOemCellularModemExistenceChange *pCallback); [helpstring("Unregister for information about modems within the system")] HRESULT UnregisterForOemModemExistenceChanges([in] IOemCellularModemExistenceChange *pCallback); [helpstring("Close/clean up all objects (does not alter actual hardware state)")] HRESULT Destroy(); [helpstring("Wait for the Destroy operation to finish")] HRESULT WaitForDestroyCompletion(); } // IOemCellular - external version of ICellularDatastrore [object, oleautomation, uuid(b470078a-2784-4d09-ad35-42b2290abc54)] interface IOemCellularDataStore : IUnknown { // // UICC data Store functionality // Allows clients to store and retrive per UICC setting from the datastore // setting related to up to 10 UICC will be stored [helpstring("Set a Name-value pair for a card identified by IccID")] HRESULT SetNamedValue([in] const BYTE *pIccId, [in] DWORD lengthIccId, [in] LPCWSTR pClientId, [in] LPCWSTR pPropertyName, [in] const BYTE *pPropertyValue, [in] DWORD lengthValue, [in] UICCDATASTOREACCESSMODE accessMode); [helpstring("Get a Name-value pair for a card identified by IccID")] HRESULT GetNamedValue([in] const BYTE *pIccId, [in] DWORD lengthIccId, [in] LPCWSTR pClientId, [in] LPCWSTR pPropertyName, [out] BYTE *pPropertyValue, [in, out] DWORD *pLengthValue, [in] UICCDATASTOREACCESSMODE accessMode); [helpstring("Get a list with all IccIds stored in the data store and the corresponding position in usage history")] HRESULT GetUiccDataStoreInfo([in, out] struct UICCDATASTOREINFO *pDatastoreInfo); } // IOemCellularModem - external version of ICellularModem [object, oleautomation, uuid(82F4E49E-1E6B-43C9-8769-FE3D437AE8A9)] interface IOemCellularModem : IUnknown { // // Can state changes - OEM version // [helpstring("Register for Can state changes on this modem")] HRESULT RegisterForOemCanAvailabilityChanges([in] IOemCellularCanAvailabilityChange *pCallBack); [helpstring("Unregister for Can state changes on this modem")] HRESULT UnregisterForOemCanAvailabilityChanges([in] IOemCellularCanAvailabilityChange *pCallback); // // Slot state changes - OEM version // [helpstring("Register for slot insertion/removal notifications.")] HRESULT RegisterForOemSlotChanges([in] IOemSlotChange *pCallback); [helpstring("Unregister for slot insertion/removal notifications.")] HRESULT UnregisterForOemSlotChanges([in] IOemSlotChange *pCallback); // // Power state changes // [helpstring("Register for power state changes on this modem")] HRESULT RegisterForPowerStateChanges([in] IPowerStateChange *pCallback, [in] INT_PTR context); [helpstring("Unregister for power state changes on this modem")] HRESULT UnregisterForPowerStateChanges([in] IPowerStateChange *pCallback); // // DevSpecific and SAR related APIs // [helpstring ("Send an Opaque Command to the Modem")] HRESULT SendModemOpaqueCommand([in] IModemOpaqueCommandCompletion *pCallback, [in,size_is(cbSize)] BYTE *pOpaquePayload, [in] DWORD cbSize, [in] INT_PTR context); [helpstring("Register for Opaque Modem Notifications")] HRESULT RegisterForOpaqueModemNotifications([in] IOpaqueModemNotifications *pCallback); [helpstring("UnRegister for Opaque Modem Notifications")] HRESULT UnRegisterForOpaqueModemNotifications([in] IOpaqueModemNotifications *pCallback); [helpstring ("Set the RF Power (Level) State for SAR")] HRESULT SetRFState([in] ISetRFStateCompletion *pCallback, [in] DWORD dwRFPowerState, [in] INT_PTR context); [helpstring ("Gets the RF Power(Level)State for SAR")] HRESULT GetRFState([in] IGetRFStateCompletion *pCallback, [in] INT_PTR context); } // IOemCellularModemEx - extended external version of ICellularModem [object, oleautomation, uuid(1902f624-534e-4624-a815-3546021f0854)] interface IOemCellularModemEx : IUnknown { [helpstring ("Set the RF Power (Level) State for SAR")] HRESULT SetRFState([in] ISetRFStateCompletion *pCallback, [in] LPRILRFSTATE lpRFState, [in] INT_PTR context); [helpstring ("Gets the RF Power(Level)State for SAR")] HRESULT GetRFState([in] IGetRFStateExCompletion *pCallback, [in] INT_PTR context); } // IOemCan - external version of ICan [object, oleautomation, uuid(A3822E4E-FFB5-4E46-8980-0182B8454E2E)] interface IOemCan : IUnknown { // // Registration changes // [helpstring("Register for can registration status")] HRESULT RegisterForOemCanRegistrationChanges([in] IOemCanRegistrationStateChange *pCallback); [helpstring("UnRegister for can registration status")] HRESULT UnregisterForOemCanRegistrationChanges([in] IOemCanRegistrationStateChange *pCallback); // // GetDeviceInfo // [helpstring("Get Can information such as radio serial number, revision number, etc.")] HRESULT GetInfo([in] enum RILDEVICEINFORMATION deviceInfo, [in] ICanInfoCompletion *pCallback, [in] INT_PTR context); // // GetPositionInfo // [helpstring("Get radio measurments used to determine position")] HRESULT GetPositionInfo([in] IPositionInfoCompletion *pCallback, [in] INT_PTR context); // // IServiceProvider // [helpstring("Used to get a 3GPP or 3GPP2 call provider")] HRESULT QueryService([in] REFGUID guidService, [in] REFIID riid, [out, iid_is(riid)] void **ppv); } // IOemCanExtForIMS - external version of ICan [object, oleautomation, uuid(C5310A1A-E885-4450-B823-84AD7FD15CBF)] interface IOemCanExtForIMS : IUnknown { // // (Un)Register for IMS status changes // [helpstring ("Register for IMS status changes. The callback is invoked at least once with current IMS status")] HRESULT RegisterForOemIMSStatusChanges([in] IOemIMSStatusChange *pCallback); [helpstring ("Unregister for IMS status changes")] HRESULT UnregisterForOemIMSStatusChanges([in] IOemIMSStatusChange *pCallback); } // IOemSlot - external version of ISlot [object, oleautomation, uuid(DAE67DE6-0C18-4158-9323-CF7FB14EC216)] interface IOemSlot : IUnknown { [helpstring("Register for state changes on this slot")] HRESULT RegisterForOemSlotChanges([in] IOemSlotStateChange *pCallback); [helpstring("Unregister for state changes on this slot")] HRESULT UnregisterForOemSlotChanges([in] IOemSlotStateChange *pCallback); } // IOemUICC - external version of IUICC [object, oleautomation, uuid(FD5DBCF6-810D-4CE8-AC06-1B8628808950)] interface IOemUicc : IUnknown { [helpstring("Register for changes on this UICC")] HRESULT RegisterForOemUiccChanges([in] IOemUiccChange *pCallback); [helpstring("Un-register for changes on this UICC")] HRESULT UnregisterForOemUiccChanges([in] IOemUiccChange *pCallback); } // IOemUiccApp - external version of IUICCApp and ILine // Attempting to use an ILine method on a non-ILine will fail with E_INVALIDARG [object, oleautomation, uuid(2D00BFEE-AA9F-48FD-9D2B-E8D3D3EDDC60)] interface IOemUiccApp : IUnknown { [helpstring("Gets the application ID for this UICC application")] HRESULT GetAppId([out] BYTE *appId, [in, out] DWORD *length); [helpstring("Gets the type of this UICC application")] HRESULT GetType([out] RILUICCAPPTYPE *pType); [helpstring("Get pin lock state of this UICC application")] HRESULT GetPinLockState([in] IPinLockStateCompletion *pCallback, [in] INT_PTR context); [helpstring("Read from a specific file on this application")] HRESULT ReadRecord([in] IReadRecordCompletion *pCallback, [in] DWORD fileID, [in] DWORD recordIndex, [in] INT_PTR context); [helpstring("Write to a specific file on this application")] HRESULT WriteRecord([in] IWriteRecordCompletion *pCallback, [in] DWORD fileID, [in] DWORD recordIndex, [in] const BYTE *bData, [in] DWORD cbSize, [in] INT_PTR context); [helpstring("Get record status for a specific file path on the UICC application")] HRESULT GetRecordStatusOnFilePath([in] IGetRecordStatusCompletion *pCallback, [in, size_is(filePathLen)] const WORD *uiccFilePath, [in] DWORD filePathLen, [in] INT_PTR context); [helpstring("Read from a specific file path on this application")] HRESULT ReadRecordOnFilePath([in] IReadRecordCompletion *pCallback, [in, size_is(filePathLen)] const WORD *uiccFilePath, [in] DWORD filePathLen, [in] DWORD recordIndex, [in] INT_PTR context); [helpstring("Write to a specific file path on this application")] HRESULT WriteRecordOnFilePath([in] IWriteRecordCompletion *pCallback, [in, size_is(filePathLen)] const WORD *uiccFilePath, [in] DWORD filePathLen, [in] DWORD recordIndex, [in] const BYTE *bData, [in] DWORD cbSize, [in] INT_PTR context); // need read/write binary [helpstring("Get the IMSI from the application")] HRESULT GetIMSI([in] IIMSICompletion *pCallback, [in] INT_PTR context); [helpstring("Get the SID and NID for the application")] HRESULT GetSIDNID([in] IGetSIDNIDCompletion *pCallback, [in] INT_PTR context); [helpstring("Get the subscriber numbers")] HRESULT GetSubscriberNumbers([in] ISubscriberNumbersCompletion *pCallback, [in] INT_PTR context); } // IOemUiccAppEx - external version of IUICCApp and ILine // implemented in Portico [object, oleautomation, uuid(0C50366C-D5ED-4F00-AA54-1537A63D8A01)] interface IOemUiccAppEx : IUnknown { [helpstring("Get Prefered Operator List")] HRESULT GetPreferredOperatorList([in] IGetPLMNwAcT * pResponseHandler); [helpstring("Set Prefered Operator List")] HRESULT SetPreferredOperatorList([in] ISetPLMNwAcT * pResponseHandler, [in,size_is(dwLength)] RILOPERATORNAMES * pOperatorList, [in] DWORD dwLength); } // IOemUiccAppEx2 - external version of IUICCApp and ILine [object, oleautomation, uuid(C9772450-A940-4E27-A3EA-AFCC5ECC7556)] interface IOemUiccAppEx2 : IUnknown { [helpstring("Get NAI")] HRESULT GetNAI([in] IGetNAICompletion *pCallback, [in] INT_PTR context); } [object, oleautomation, uuid(138820C5-299D-4d1d-80B9-1664A17B1B41)] interface IOem3GPPSupServices : IUnknown { [helpstring("Get call forwarding settings, infoClasses is a mask of RIL_INFOCLASS_ values")] HRESULT GetCallForwardingSettings([in] IGetCallForwardingCompletion *pCallback, [in] INT_PTR context, [in] RILCALLFORWARDINGSETTINGSREASON reason, [in] BOOL allClasses, [in] DWORD infoClasses); [helpstring("Set callforwarding status")] HRESULT SetCallForwardingStatus([in] ISimpleModemCompletion *pCallback, [in] INT_PTR context, [in] RILCALLFORWARDINGSETTINGSREASON dwReason, [in] BOOL fAllClasses, [in] DWORD dwInfoClasses, [in] RILSERVICESETTINGSSTATUS dwStatus); [helpstring("Add a call forwarding rule")] HRESULT AddCallForwarding([in] ISimpleModemCompletion *pCallback, [in] INT_PTR context, [in] RILCALLFORWARDINGSETTINGSREASON dwReason, [in] const RILCALLFORWARDINGSETTINGS *lpSettings); [helpstring("Remove a call forwarding rule")] HRESULT RemoveCallForwarding([in] ISimpleModemCompletion *pCallback, [in] INT_PTR context, [in] RILCALLFORWARDINGSETTINGSREASON dwReason, [in] DWORD dwInfoClasses); [helpstring("Get callwaiting settings")] HRESULT GetCallWaitingSettings([in] ICallWaitingSettingsCompletion *pCallback, [in] INT_PTR context, [in] BOOL fAllClasses, [in] DWORD dwInfoClasses); [helpstring("Set callwaiting settings")] HRESULT SetCallWaitingSettings([in] ISimpleModemCompletion *pCallback, [in] INT_PTR context, [in] BOOL fAllClasses, [in] DWORD dwInfoClasses, [in] RILSERVICESETTINGSSTATUS dwStatus ); } /////////////////////////////////////////////////////////////////////////////////////////////// // // State Change Interfaces // [object, oleautomation, uuid(A2CBC3C1-79D5-4F9D-A6F9-FDE497848EC1)] interface IOemCellularModemExistenceChange : IUnknown { [helpstring("Called when a modem is added [becomes available]")] HRESULT OnOemModemAdded([in] IOemCellularModem *pModem); [helpstring("Called when a modem is removed [is no longer available]")] HRESULT OnOemModemRemoved([in] IOemCellularModem *pModem); [helpstring("Called when the initial list of modems is determined")] HRESULT OnOemModemExistenceDone(); } [object, oleautomation, uuid(CF34841C-A795-4EC6-B1BC-C3744A2D6DCA)] interface IOemCellularCanAvailabilityChange : IUnknown { [helpstring("Called when a can is added")] HRESULT OnOemCanAdded([in] IOemCan *pCan); [helpstring("Called when a Can is removed")] HRESULT OnOemCanRemoved([in] IOemCan *pCan); [helpstring("Called when the initial list of cans is determined.")] HRESULT OnOemCanDone(); } [object, oleautomation, uuid(20C4AF87-BC47-4150-BA97-4F53FFD95E48)] interface IOemSlotChange : IUnknown { [helpstring("Called when a slot is added")] HRESULT OnOemSlotAdded([in] IOemSlot *pSlot, [in] IOemCellularModem *pCellularModem); [helpstring("Called when a slot is removed")] HRESULT OnOemSlotRemoved([in] IOemSlot *pSlot, [in] IOemCellularModem *pCellularModem); [helpstring("Called when the initial list of slots is determined.")] HRESULT OnOemSlotExistenceDone([in] IOemCellularModem *pCellularModem); } [object, oleautomation, uuid(B8E5DF58-2329-400C-93C5-FFB951BF3415)] interface IOemCanRegistrationStateChange : IUnknown { [helpstring("Notification for when registration status changes")] HRESULT OnOemRegistrationStatusChanged([in, size_is(cStatus)] IOemRegistrationStatus **status, [in] DWORD cStatus); } [object, oleautomation, uuid(59BB79ED-5435-456C-A8D1-6680D56AAD1E)] interface IOemSlotStateChange : IUnknown { [helpstring("Slot state changed")] HRESULT OnOemSlotStateChanged([in] RILUICCSLOTSTATE currentSlotState, [in] IOemSlot *pSlot); [helpstring("On UICC added")] HRESULT OnOemUiccAdded([in] IOemUicc *pUicc, [in] IOemSlot *pSlot); [helpstring("On UICC removed")] HRESULT OnOemUiccRemoved([in] IOemUicc *pUicc, [in] IOemSlot *pSlot); [helpstring("Done with the first snapshot")] HRESULT OnOemFirstSnapshotDone([in] IOemSlot *pSlot); } [object, oleautomation, uuid(302739D6-299D-4B82-A12E-EF930FD8BD16)] interface IOemUiccChange : IUnknown { [helpstring("Provide the UICC ICCID")] HRESULT UiccIccId([in] BYTE *iccID, [in] DWORD length, [in] IOemUicc *pUicc); [helpstring("New line got added on the UICC in the slot")] HRESULT OnOemUiccAppAdded([in] IOemUiccApp *uiccApp, [in] IOemUicc* pUicc); [helpstring("A existing line got removed from the UICC in the slot")] HRESULT OnOemUiccAppRemoved([in] IOemUiccApp *uiccApp, [in] IOemUicc *pUicc); [helpstring("Done with the first snapshot")] HRESULT OnOemUiccAppFetchDone([in] IOemUicc *pUicc); } /////////////////////////////////////////////////////////////////////////////////////////////// // Interfaces representing other objects that are different in CellularAPI_OEM [object, oleautomation, uuid(F8C3B6D1-4629-414B-8E38-DD396FEBE730)] interface IOemRegistrationStatus : IUnknown { [propget, helpstring("Retrieves the active line.")] HRESULT Subscription([out, retval] IOemUiccApp **ret); [propget, helpstring("Retrieves the system type of the registered network")] HRESULT SystemType([out, retval] enum RILSYSTEMTYPE *systemType); [propget, helpstring("Retrieves the reject code as sent by the network. Is only valid till the time regstat doesn't return back to home or roaming.")] HRESULT RejectReason([out, retval] DWORD *reason); [propget, helpstring("Retrieves the operator name struct")] HRESULT OperatorName([out, retval] struct RILOPERATORNAMES *name); [propget, helpstring("Retrieves the actual registration state as reported by the modem")] HRESULT RegistrationStatus([out, retval] enum RILREGSTAT *status); [propget, helpstring("Retrieves the network code information for the operator")] HRESULT NetworkCode([out, retval] struct RILNETWORKCODE *pNetworkCode); } /////////////////////////////////////////////////////////////////////////////////////////////// // The following interfaces are shared by CellularAPI and CellularAPI_OEM [object, oleautomation, uuid(0e7d938e-d7fb-49a4-8cac-4db70d952c03)] interface IPowerStateChange : IUnknown { HRESULT OnPowerStateChange([in] enum MODEMPOWERSTATE state, [in] INT_PTR context); } [object, oleautomation, uuid(C9B4415B-0643-4855-BB04-A5354F038E62)] interface IModemOpaqueCommandCompletion : IUnknown { [helpstring("Modem Opaque Command Completion")] HRESULT OnModemOpaqueCommandCompletion([in] HRESULT result, [in,size_is(cbSize)] BYTE *pOpaqueResponse, [in] DWORD cbSize, [in] INT_PTR context); } [object, oleautomation, uuid(85A26F4E-CD62-4B6E-90A1-0D5E2D6EE3FF)] interface IOpaqueModemNotifications : IUnknown { [helpstring("Unsolicited Modem Opaque Notification")] HRESULT OnOpaqueModemNotifications([in] DWORD dwCode, [in] BYTE* pOpaqueNotification, [in] DWORD cbSize); } [object, oleautomation, uuid(340B4A01-07CE-4334-B367-05C87085CBB0)] interface ISetRFStateCompletion : IUnknown { HRESULT OnSetRFStateCompletion([in] HRESULT result, [in] INT_PTR context); } [object, oleautomation, uuid(4255DD18-D829-4C04-849A-624727B990A2)] interface IGetRFStateCompletion : IUnknown { HRESULT OnGetRFStateCompletion([in] HRESULT result, [in] DWORD *pRFState, [in] INT_PTR context); } [object, oleautomation, uuid(74e511fd-f17b-48fc-bd56-93af42e71031)] interface IGetRFStateExCompletion : IUnknown { HRESULT OnGetRFStateCompletion([in] HRESULT result, [in] LPRILRFSTATE lpRFState, [in] INT_PTR context); } [object, oleautomation, uuid(b5bb6a5e-8d3f-4203-b58b-26c3d4e8eedc)] interface ICanInfoCompletion : IUnknown { [helpstring ("On Can GetInfo completion")] HRESULT OnGetInfoCompletion([in] HRESULT result, [in] const WCHAR *value, [in] INT_PTR context); } [object, oleautomation, uuid(03569923-a28f-47bd-9315-38d8fb11717d)] interface IPositionInfoCompletion : IUnknown { [helpstring ("On get position information")] HRESULT OnGetPositionInfoCompletion([in] HRESULT result, [in] LPRILPOSITIONINFO lpPositionInfo, [in] INT_PTR context); } [object, oleautomation, uuid(3b2481a7-aee9-462f-bd38-31f15c15ff88)] interface IPinLockStateCompletion : IUnknown { [helpstring ("Completion of a GetPinLockState call")] HRESULT OnGetPinLockStateCompletion([in] HRESULT result, [in] LPRILUICCLOCKSTATE pUICCLockState, [in] DWORD length, [in] INT_PTR context); } [object, oleautomation, uuid(2d033fa3-ae5c-495c-bcf5-459ffa07036a)] interface IGetRecordStatusCompletion : IUnknown { [helpstring ("On record status completion")] HRESULT OnGetRecordStatusCompletion([in] HRESULT result, [in] LPRILUICCRECORDSTATUS recordStatus, [in] DWORD length, [in] INT_PTR context); } [object, oleautomation, uuid(5a8c7c5f-aace-47b8-b38b-41785a9fc090)] interface IReadRecordCompletion : IUnknown { [helpstring ("On read record completion")] HRESULT OnReadRecordCompletion([in] HRESULT result, [in] BYTE *record, [in] DWORD cbSize, [in] INT_PTR context); } [object, oleautomation, uuid(f9b2b7de-3ab4-4af8-bac0-fd9a83113242)] interface IWriteRecordCompletion : IUnknown { [helpstring ("On write record completion")] HRESULT OnWriteRecordCompletion([in] HRESULT result, [in] INT_PTR context); } [object, oleautomation, uuid(A9342324-DA50-46B2-BA1C-2B1CB60C3817)] interface IIMSICompletion : IUnknown { [helpstring ("On get IMSI completion")] HRESULT OnGetIMSICompletion([in] HRESULT result, [in] const LPRILIMSI rilImsi, [in] INT_PTR context); } [object, oleautomation, uuid(e7d5d35e-a770-4adc-8bb1-a677ea6e89ac)] interface IGetSIDNIDCompletion : IUnknown { [helpstring ("On get SID NID completion")] HRESULT OnGetSIDNIDCompletion([in] HRESULT result, [in] const LPRILSIDNID rilSidNid, [in] INT_PTR context); } [object, oleautomation, uuid(4AFE7F70-7D1F-45D1-BC93-908161FEBC58)] interface IGetNAICompletion : IUnknown { [helpstring ("On get NAI completion")] HRESULT OnGetNAICompletion([in] HRESULT result, [in] const LPRILNAI rilNai, [in] INT_PTR context); } [object, oleautomation, uuid(be6d7c2a-ba04-4fcc-a611-d33000643d4f)] interface ISubscriberNumbersCompletion : IUnknown { [helpstring ("On get subscriber numbers")] HRESULT OnGetSubscriberNumbersCompletion([in] HRESULT result, [in] LPRILUICCSUBSCRIBERNUMBERS pSubscriberNumbers, [in] DWORD length, [in] INT_PTR context); } [object,oleautomation, uuid(E9BEB716-6ADD-492B-BBEA-B2FE1068A86E)] interface IGetPLMNwAcT: IUnknown { [helpstring("On get Prefered Operator List")] HRESULT OnGetPreferredOperatorListCompletion([in] HRESULT result, [in,size_is(dwLength)] RILOPERATORNAMES * pOperatorList, [in] DWORD dwLength); } [object,oleautomation, uuid(4E331477-F454-4DE7-8B18-5130B891B012)] interface ISetPLMNwAcT: IUnknown { [helpstring("On set Prefered Operator List")] HRESULT OnSetPreferredOperatorListCompletion([in] HRESULT result); } [object, oleautomation, uuid(c329148f-3374-438b-8ed4-e1b9ab28eee3)] interface IGetCallForwardingCompletion : IUnknown { HRESULT OnGetCallForwardingSettingsCompletion([in] HRESULT result, [in] INT_PTR context, [in] RILCALLFORWARDINGSETTINGS *settings, [in] DWORD cSettings); } [object, oleautomation, uuid(9A189741-DED1-4535-B116-B6D287BF70D2)] interface ISimpleModemCompletion : IUnknown { [helpstring("Called when a simple async command is completed")] HRESULT OnFinished(HRESULT result, [in] INT_PTR context); } [object, oleautomation, uuid(f9581718-2283-4336-9397-1c6c067299d2)] interface ICallWaitingSettingsCompletion : IUnknown { [helpstring("Called when getting CallWaitingSettings has completed")] HRESULT OnCallWaitingSettingsCompletion([in] HRESULT hr, [in] DWORD dwInfoClasses, [in] INT_PTR context); } [object, oleautomation, uuid(7d034a18-baef-4f86-ad84-bb0bbfb9f834)] interface IOemIMSStatusChange : IUnknown { [helpstring("Indicates that the IMS status has been changed")] HRESULT OnOemIMSStatusChanged([in] LPRILIMSSTATUS rilIMSStatus, [in] IOemCanExtForIMS * pCan); } /////////////////////////////////////////////////////////////////////////////////////////////// [uuid(32A11B9F-9C1D-46C2-B66F-6C05211135E1), version(1.0)] library OemCellularIF { importlib("stdole32.tlb"); interface ICanInfoCompletion; interface IGetRecordStatusCompletion; interface IGetRFStateCompletion; interface IGetSIDNIDCompletion; interface IGetNAICompletion; interface IIMSICompletion; interface IModemOpaqueCommandCompletion; interface IOemCan; interface IOemCanExtForIMS; interface IOemCanRegistrationStateChange; interface IOemCellular; interface IOemCellularCanAvailabilityChange; interface IOemCellularModem; interface IOemCellularModemExistenceChange; interface IOemRegistrationStatus; interface IOemSlot; interface IOemSlotChange; interface IOemSlotStateChange; interface IOemUICC; interface IOemUICCApp; interface IOemUICCAppEx; interface IOemUICCAppEx2; interface IOemUiccAppChange; interface IOemUiccChange; interface IOpaqueModemNotifications; interface IPinLockStateCompletion; interface IPositionInfoCompletion; interface IPowerStateChange; interface IReadRecordCompletion; interface ISetRFStateCompletion; interface ISubscriberNumbersCompletion; interface IWriteRecordCompletion; interface IGetPLMNwAcT; interface ISetPLMNwAcT; interface IOem3GPPSupServices; interface IGetCallForwardingCompletion; interface ISimpleModemCompletion; interface ICallWaitingSettingsCompletion; interface IOemIMSStatusChange; [uuid(9D27B916-4F17-4EE8-A71C-D84222993D64) ] coclass OemCellular { [default] interface IOemCellular; interface IOemCellular; }; }