BonDecoder (1.0.0) | 2012-08-21 00:03 |
BonDecoder IDL includes two parts,
* IBonDecoder is standard dual (IDispatch automation) interface implements. * IRawBonDecoder is custom (More fast data transfer) interface implements.
"Decode" and "Finish" method data argument type is VARIANT/SAFEARRAY. "DecodeDirect" and "FinishDirect" method data argument type is direct point buffer address.
(BonDecoder contains proxy/stub marshal data, can over apartment boundary calls, but direct point buffer address is not direct.)
[ uuid(D0D538A0-CAC8-4938-8257-0DCC89639754) ] enum UsingInstructions { UsingInstruction_Normal, UsingInstruction_SSE2, UsingInstruction_SSSE3 }; [ uuid(0F255E0D-1DF5-4FB4-B917-DACF9C3311A5) ] enum CardTypes { CardType_PrePaid = 0x00, CardType_Standard = 0x01, CardType_Invalid = 0xFF }; [ object, uuid(454BE5FE-862F-4A20-9F75-9C4C8D2FEC5B), dual, nonextensible, helpstring("IBonDecoder interface"), pointer_default(unique) ] interface IBonDecoder : IDispatch { [propget, id(1), helpstring("Property WinSCardPath")] HRESULT WinSCardPath([out, retval] BSTR* pVal); [propput, id(1), helpstring("Property WinSCardPath")] HRESULT WinSCardPath([in] BSTR newVal); [propget, id(2), helpstring("Property EMMProcess")] HRESULT EMMProcess([out, retval] VARIANT_BOOL* pVal); [propput, id(2), helpstring("Property EMMProcess")] HRESULT EMMProcess([in] VARIANT_BOOL newVal); [propget, id(3), helpstring("Property ServiceID")] HRESULT ServiceID([out, retval] USHORT* pVal); [propput, id(3), helpstring("Property ServiceID")] HRESULT ServiceID([in] USHORT newVal); [propget, id(4), helpstring("Property PATGeneration")] HRESULT PATGeneration([out, retval] VARIANT_BOOL* pVal); [propput, id(4), helpstring("Property PATGeneration")] HRESULT PATGeneration([in] VARIANT_BOOL newVal); [propget, id(5), helpstring("Property TransportStreamID")] HRESULT TransportStreamID([out, retval] USHORT* pVal); [propput, id(5), helpstring("Property TransportStreamID")] HRESULT TransportStreamID([in] USHORT newVal); [propget, id(10), helpstring("Property Running")] HRESULT Running([out, retval] VARIANT_BOOL* pVal); [propget, id(11), helpstring("Property UsingInstruction")] HRESULT UsingInstruction([out, retval] enum UsingInstructions* pVal); [propget, id(12), helpstring("Property CardID")] HRESULT CardID([out, retval] ULONGLONG* pVal); [propget, id(13), helpstring("Property CardType")] HRESULT CardType([out, retval] enum CardTypes* pVal); [propget, id(14), helpstring("Property CardManufacturerID")] HRESULT CardManufacturerID([out, retval] UCHAR* pVal); [propget, id(15), helpstring("Property CardVersion")] HRESULT CardVersion([out, retval] UCHAR* pVal); [propget, id(16), helpstring("Property CardReaderName")] HRESULT CardReaderName([out, retval] BSTR* pVal); [id(17), helpstring("Method GetEcmPIDByServiceID")] HRESULT GetEcmPIDByServiceID([in] USHORT serviceID, [out, retval] USHORT* pVal); [id(20), helpstring("Method Start")] HRESULT Start(); [id(21), helpstring("Method Decode")] HRESULT Decode([in] VARIANT sourceData, [in] ULONG maxResultSize, [out, retval] VARIANT *pRetVal); [id(22), helpstring("Method Finish")] HRESULT Finish([in] ULONG maxResultSize, [out, retval] VARIANT *pRetVal); [id(23), helpstring("Method Flush")] HRESULT Flush(); [id(24), helpstring("Method Reset")] HRESULT Reset(); }; [ object, uuid(454BE5FF-862F-4A20-9F75-9C4C8D2FEC5B), nonextensible, helpstring("IRawBonDecoder interface"), pointer_default(unique) ] interface IRawBonDecoder : IUnknown { [propget, helpstring("Property WinSCardPath")] HRESULT WinSCardPath([out, retval] BSTR* pVal); [propput, helpstring("Property WinSCardPath")] HRESULT WinSCardPath([in] BSTR newVal); [propget, helpstring("Property EMMProcess")] HRESULT EMMProcess([out, retval] VARIANT_BOOL* pVal); [propput, helpstring("Property EMMProcess")] HRESULT EMMProcess([in] VARIANT_BOOL newVal); [propget, helpstring("Property ServiceID")] HRESULT ServiceID([out, retval] USHORT* pVal); [propput, helpstring("Property ServiceID")] HRESULT ServiceID([in] USHORT newVal); [propget, helpstring("Property PATGeneration")] HRESULT PATGeneration([out, retval] VARIANT_BOOL* pVal); [propput, helpstring("Property PATGeneration")] HRESULT PATGeneration([in] VARIANT_BOOL newVal); [propget, helpstring("Property TransportStreamID")] HRESULT TransportStreamID([out, retval] USHORT* pVal); [propput, helpstring("Property TransportStreamID")] HRESULT TransportStreamID([in] USHORT newVal); [propget, helpstring("Property Running")] HRESULT Running([out, retval] VARIANT_BOOL* pVal); [propget, helpstring("Property UsingInstruction")] HRESULT UsingInstruction([out, retval] enum UsingInstructions* pVal); [propget, helpstring("Property CardID")] HRESULT CardID([out, retval] ULONGLONG* pVal); [propget, helpstring("Property CardType")] HRESULT CardType([out, retval] enum CardTypes* pVal); [propget, helpstring("Property CardManufacturerID")] HRESULT CardManufacturerID([out, retval] UCHAR* pVal); [propget, helpstring("Property CardVersion")] HRESULT CardVersion([out, retval] UCHAR* pVal); [propget, helpstring("Property CardReaderName")] HRESULT CardReaderName([out, retval] BSTR* pVal); [helpstring("Method GetEcmPIDByServiceID")] HRESULT GetEcmPIDByServiceID([in] USHORT serviceID, [out, retval] USHORT* pVal); [helpstring("Method Start")] HRESULT Start(); [helpstring("Method Decode")] HRESULT Decode([in] SAFEARRAY(UCHAR) sourceData, [in] ULONG maxResultSize, [out, retval] SAFEARRAY(UCHAR) *pRetVal); [helpstring("Method DecodeDirect")] HRESULT DecodeDirect( [in] ULONG sourceSize, [in, size_is(sourceSize)] UCHAR *pSourceData, [in] ULONG maxResultSize, [out] ULONG *pResultSize, [out, size_is(maxResultSize), length_is(*pResultSize)] UCHAR *pResultData); [helpstring("Method Finish")] HRESULT Finish([in] ULONG maxResultSize, [out, retval] SAFEARRAY(UCHAR) *pRetVal); [helpstring("Method FinishDirect")] HRESULT FinishDirect( [in] ULONG maxResultSize, [out] ULONG *pResultSize, [out, size_is(maxResultSize), length_is(*pResultSize)] UCHAR *pResultData); [helpstring("Method Flush")] HRESULT Flush(); [helpstring("Method Reset")] HRESULT Reset(); }; [ uuid(00298FEF-4F7E-44CD-B424-0FB9C91C17DD), version(1.0), helpstring("BonDecoder 1.0 Type library") ] library BonDecoderLib { importlib("stdole2.tlb"); [ uuid(20A53A0A-A803-41EC-8C42-3FDF9BF538F0), helpstring("BonDecoder Class") ] coclass BonDecoder { [default] interface IBonDecoder; interface IRawBonDecoder; }; };
[PageInfo]
LastUpdate: 2012-08-21 07:10:09, ModifiedBy: bondecoder
[Permissions]
view:all, edit:login users, delete/config:members