Jump to content

Search the Community

Showing results for tags 'get com arrays'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Deutsch
    • Ankündigungen & Neuigkeiten
    • Einsteigerfragen DVBViewer Pro/GE
    • Allgemeines DVBViewer Pro/GE
    • Vorschläge & Ideen
    • Fehlermeldungen DVBViewer Pro/GE
    • Plugins und AddOns
    • DVB Hardware (Digital TV Karten)
    • DVBViewer Recording Service 1.x
    • DVBViewer Media Server
    • Sat>IP Viewer & Co (Android,iOS,Mac)
    • Verschiedenes
    • DVBViewer Video Editor
  • English
    • News & Announcements
    • Newbies DVBViewer Pro/GE
    • General DVBViewer Pro/GE
    • Suggestions & Ideas
    • Bug Reports DVBViewer Pro/GE
    • Plugins and AddOns
    • DVB Hardware (Digital TV cards)
    • DVBViewer Recording Service 1.x
    • DVBViewer Media Server
    • Sat>IP Viewer & Co (Android,iOS,Mac)
    • Off-Topic
    • DVBViewer Video Editor
  • Miscellaneous
    • Scripting Lounge / API (de/en)
    • Area HTPC
    • HDTV / UHDTV (de/en)
    • DVB - The technique behind
    • Conversion & Encoding
    • OEM Edition - User Helping Users (de/en)
    • Forum / Wiki / Website (de/en)
  • Survey ● Umfragen
    • DVBViewer Pro Cleanup (en/de)

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 1 result

  1. majstang

    Get COM arrays

    Hello! Here is a few samples of getting DVBViewer COM safearrays with AutoHotkey: - ChannelCollection.GetChannelList(List) - FavoritesManager.GetFavoritesList(List) - EPGManager.GetAsArray(0,0,0,List) /* ;---------------------------------------------------------------------------- ;---ChannelCollection.GetChannelList(vref)----------------------------------- ;---------------------------------------------------------------------------- #NoEnv iDVBViewer := ComObjActive("DVBViewerServer.DVBViewer") ; https://lexikos.github.io/v2/docs/commands/ComObject.htm#ByRef VarSetCapacity(var, 24, 0) vref := ComObject(0x400C, &var) expected_type := 0x2000 | 0xC if ((count := iDVBViewer.ChannelCollection.GetChannelList(vref)) && NumGet(var,,"UShort") & expected_type) { List := ComObject(expected_type, NumGet(var, 8, "Ptr"), 1) Loop %count% { Root := List[A_Index - 1, 0] Name := List[A_Index - 1, 1] Category := List[A_Index - 1, 2] Encrypted := List[A_Index - 1, 3] TunerType := List[A_Index - 1, 4] Frequency := List[A_Index - 1, 5] SymbolRate := List[A_Index - 1, 6] LNB := List[A_Index - 1, 7] PMT := List[A_Index - 1, 8] ECM_0 := List[A_Index - 1, 9] SatModulation := List[A_Index - 1, 10] AVFormat := List[A_Index - 1, 11] FEC := List[A_Index - 1, 12] CAID_0 := List[A_Index - 1, 13] Polarity := List[A_Index - 1, 14] ECM_1 := List[A_Index - 1, 15] LNBSelection := List[A_Index - 1, 16] CAID_1 := List[A_Index - 1, 17] Diseqc := List[A_Index - 1, 18] ECM_2 := List[A_Index - 1, 19] AudioPID := List[A_Index - 1, 20] CAID_2 := List[A_Index - 1, 21] VideoPID := List[A_Index - 1, 22] TransportStreamID := List[A_Index - 1, 23] telePID := List[A_Index - 1, 24] NetworkID := List[A_Index - 1, 25] SID := List[A_Index - 1, 26] PCRPID := List[A_Index - 1, 27] ChannelGroup := List[A_Index - 1, 28] MsgBox % Root . "`r`nName: " . Name . "`r`nCategory: " . Category . "`r`nEncrypted: " . Encrypted . "`r`nTunerType: " . TunerType . "`r`nFrequency: " . Frequency . "`r`nSymbolRate: " . SymbolRate . "`r`nLNB: " . LNB . "`r`nPMT: " . PMT . "`r`nECM_0: " . ECM_0 . "`r`nSatModulation: " . SatModulation . "`r`nAVFormat: " . AVFormat . "`r`nFEC: " . FEC . "`r`nCAID_0: " . CAID_0 . "`r`nPolarity: " . Polarity . "`r`nECM_1: " . ECM_1 . "`r`nLNBSelection: " . LNBSelection . "`r`nCAID_1: " . CAID_1 . "`r`nDiseqc: " . Diseqc . "`r`nECM_2: " . ECM_2 . "`r`nAudioPID: " . AudioPID . "`r`nCAID_2: " . CAID_2 . "`r`nVideoPID: " . VideoPID . "`r`nTransportStreamID: " . TransportStreamID . "`r`ntelePID: " . telePID . "`r`nNetworkID: " . NetworkID . "`r`nSID: " . SID . "`r`nPCRPID: " . PCRPID . "`r`nChannelGroup: " . ChannelGroup } ; to access the name of, say, the second channel directly MsgBox % List[1, 1] } else { DllCall("ole32\VariantClear", "Ptr", &var) } */ ;---------------------------------------------------------------------------- /* ;---------------------------------------------------------------------------- ;---FavoritesManager.GetFavoritesList(vref)---------------------------------- ;---------------------------------------------------------------------------- #NoEnv iDVBViewer := ComObjActive("DVBViewerServer.DVBViewer") ; https://lexikos.github.io/v2/docs/commands/ComObject.htm#ByRef VarSetCapacity(var, 24, 0) vref := ComObject(0x400C, &var) expected_type := 0x2000 | 0xC if ((count := iDVBViewer.FavoritesManager.GetFavoritesList(vref)) && NumGet(var,,"UShort") & expected_type) { List := ComObject(expected_type, NumGet(var, 8, "Ptr"), 1) Loop %count% { Groupname := List[A_Index - 1, 0] Name := List[A_Index - 1, 1] ChannelID := List[A_Index - 1, 2] ID_Number := List[A_Index - 1, 3] MsgBox % ID_Number . "`r`nGroup: " . Groupname . "`r`nName: " . Name . "`r`nChannel ID: " . ChannelID } ; to access the name of, say, the second favourite directly MsgBox % List[1, 1] } else { DllCall("ole32\VariantClear", "Ptr", &var) } ;---------------------------------------------------------------------------- */ /* ;---------------------------------------------------------------------------- ;---EPGManager.GetAsArray(0,0,0,vref)---------------------------------------- ;---------------------------------------------------------------------------- #NoEnv iDVBViewer := ComObjActive("DVBViewerServer.DVBViewer") ; https://lexikos.github.io/v2/docs/commands/ComObject.htm#ByRef VarSetCapacity(var, 24, 0) vref := ComObject(0x400C, &var) expected_type := 0x2000 | 0xC if ((count := iDVBViewer.EPGManager.GetAsArray(0,0,0,vref)) && NumGet(var,,"UShort") & expected_type) { List := ComObject(expected_type, NumGet(var, 8, "Ptr"), 1) Loop %count% { EPGChannelID := List[A_Index - 1, 0] ; // Longword (unsigned int) EventID := List[A_Index - 1, 1] ; // Longword (unsigned int) Time := List[A_Index - 1, 2] ; // Datetime (Double) Duration := List[A_Index - 1, 3] ; // Datetime (Double) Event := List[A_Index - 1, 4] ; // String Title := List[A_Index - 1, 5] ; // String Description := List[A_Index - 1, 6] ; // String CharSet := List[A_Index - 1, 7] ; // Byte Content := List[A_Index - 1, 8] ; // Byte MsgBox % EPGChannelID . "`r`nEventID: " . EventID . "`r`nTime: " . Time . "`r`nDuration: " . Duration . "`r`nEvent: " . Event . "`r`nTitle: " . Title . "`r`nDescription: " . Description . "`r`nCharSetList: " . CharSetList . "`r`nContent: " . Content } ; to access the EventID of, say, the second EPG_entry directly MsgBox % List[1, 1] } else { DllCall("ole32\VariantClear", "Ptr", &var) } ;---------------------------------------------------------------------------- */
×
×
  • Create New...