Page 51 of 57 FirstFirst ... 414950515253 ... LastLast
Results 501 to 510 of 565

Thread: Tests Copying, Pasting, API Cliipboard issues. and Rough notes on Advanced API stuff

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10

    Clsid Clipboard

    This is post #544
    https://www.excelfox.com/forum/showt...ll=1#post24117
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues?p=24117&viewfull=1#post24117
    https://www.excelfox.com/forum/showt...ge55#post24117
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues/page55#post24117




    Some notes to bring together some "Clsid Clipboard" discussions from approximately here https://eileenslounge.com/viewtopic....288963#p288963 and here, https://eileenslounge.com/viewtopic....314925#p314925


    Clsid Late Binding

    These sort of things:
    MSForms.ListBox https://web.archive.org/web/20140610...emory-listbox/
    CreateObject("New:{8BD21D20-EC42-11CE-9E0D-00AA006002F3}")

    MSForms.DataObject https://web.archive.org/web/20140610...ms-dataobject/
    CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

    The last one is the most commonly used and known about, at least around the VBA area where I am, or have been, over the last few years

    Some notes picked up from smarter people
    Mike (SpeakEasy), Hans, Chris : From about here https://eileenslounge.com/viewtopic....288963#p288963
    Microsoft simply hasn't exposed a class name for DataObject. Most object we use do have a class name. For those we can use early binding by setting a reference, or late binding by using GetObject/CreateObject with a class name. DataObject is an exception, so we MUST use its hexadecimal ClassID.
    36-character strings: .. It's the formal string representation of the underlying 128bit UUID (which Microsoft tend to refer to as a GUID; a CLSID is just a GUID being used for a specific role - identifying a class object), that representation being 32 hexadecimal digits separated by 4 hyphens ...
    We humans are sheltered from them normally, but there are odd occasions where we find we have to use them. Not very often for most users, it has to be said.

    Mike (SpeakEasy), from about here https://eileenslounge.com/viewtopic....314925#p314925
    GUID is just a unique identifier. Microsoft use unique identifiers for all sorts of purposes in Windows, and then they are given specific names to better indicate their purpose, hence FMTID in my previous post. The GUIDs you can use with CreateObject are actually knows as CLSIDs (or Class IDs); each and every class on Windows has it's own CLSID, and you can look them all up in the registry under HKEY_CLASSES_ROOT.
    In general it offers little benefit compared to using the ProgID (the human readable string, such as word.application), and indeed often obfuscates what is going on (malware writers were big fans ...).

    There are, however, a few rare scenarios where it can prove useful. Some COM objects do not have a ProgID. Often such objects are not directly useful to VB/VBA programmers, but some are. The one you use in your example, 1C3B4210-F441-11CE-B9EA-00AA006B1A69, is the userform clipboard object*, so we get a cheap way of simple clipboard access.
    ( * More accurately the userform dataobject, (Microsoft.Vbe.Interop.Forms.DataObjectClass - this is NOT a ProgID) which provides simple access to the clipboard )




    Here is a macro I found a few years back:

    Code:
    '                             This workbook kept and updated here:   (Folder at appBox.com excel fox2 excelfox2@gmail.com   RegistryCmdListsWinGimics)
    ' https://powershell.one/wmi/root/cimv2/stdregprov-EnumKey    '   https://www.vbforums.com/showthread.php?552899-Getting-all-sub-keys-from-a-registry-value                  https://www.vba-tutorial.de/apireferenz/registry.htm
    Sub ListCLSIDs() '  http://www.eileenslounge.com/viewtopic.php?f=26&t=22603&p=289007#p289007
    Dim Ws As Worksheet: Set Ws = Me ' Set Ws = ActiveSheet
    Dim Registry As Object, varKey As Variant, varKeys As Variant
     Set Registry = GetObject("winmgmts:\\.\root\default:StdRegProv")
     Registry.EnumKey 2147483650#, "SOFTWARE\Classes\CLSID", varKeys ' https://powershell.one/wmi/root/cimv2/stdregprov-EnumKey
    Dim Cnt As Long: Let Cnt = 1
        For Each varKey In varKeys
    '    Let Ws.Range("A" & Ws.Range("A" & Ws.Rows.Count & "").End(xlUp).Row + 1 & "").Value = varKey
     Let Cnt = Cnt + 1
        Let Ws.Range("A" & Cnt & "").Value = varKey
        Next
    End Sub
    Here is a more recent one from Mike ( Speakeasy https://eileenslounge.com/viewtopic....314941#p314941 )

    Code:
    Public Const HKEY_CLASSES_ROOT = &H80000000  '  https://eileenslounge.com/viewtopic.php?p=314945#p314945
    Public Sub GetCLSIDs_and_ProgIDs() '  https://eileenslounge.com/viewtopic.php?p=314941#p314941
    
        Dim entryArray() As Variant
        Dim KeyValue  As Variant  '  Dim KeyValue  As String  ..... Automation-errors-The-called-object-has-been-disconnected-from-the-clients - https://eileenslounge.com/viewtopic.php?p=314950#p314950    Mike: The error is somewhat misleading. It is down to the fact that the XP (and presumably Vista and W7, although I can't test them) WMI provider (which gives us the Registry access) handles returning Null differently than the one on W10   https://eileenslounge.com/viewtopic.php?p=314953#p314953
        Dim KeyPath As String
        Dim x As Long
        Dim row As Long
        
        Dim RegistryObject As Object
        Dim strComputer As String
        
        strComputer = "."
        Set RegistryObject = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
        RegistryObject.EnumKey HKEY_CLASSES_ROOT, "CLSID", entryArray
        
        ActiveSheet.Cells(1, 1).Value = "CLSID"
        ActiveSheet.Cells(1, 2).Value = "ProgID"
        
        row = 2
        For x = 0 To UBound(entryArray)
            RegistryObject.getstringvalue HKEY_CLASSES_ROOT, "CLSID\" & entryArray(x) & "\ProgId", "", KeyValue
            If KeyValue <> "" Then
                ActiveSheet.Cells(row, 1) = entryArray(x)
                ActiveSheet.Cells(row, 2) = KeyValue
                row = row + 1
            End If
        Next x
        
    End Sub
    
    In post #545 , I slightly rearrange those routines above, ( mine and Mike’s Clsid list thing making codings) , just to make them easier to compare, and then in post #547 I do Some initial comparison thoughts





    By the way, back then I did myself the coding below to create an object from the Clsid and then look at the TypeName( object ) . I did that as a geuss on how to get the class name, if it had one. More about that abortion Later
    Code:
    ' https://powershell.one/wmi/root/cimv2/stdregprov-EnumKey    '   https://www.vbforums.com/showthread.php?552899-Getting-all-sub-keys-from-a-registry-value
    Sub CLSIDsValueNames() '
    Dim Ws As Worksheet: Set Ws = Me ' Set Ws = ActiveSheet
    Dim RngSel As Range:  Set RngSel = Selection
        If RngSel.Cells.Count = 1 Then MsgBox prompt:="Please select at least 2 cells in column A": Exit Sub
        If RngSel.Cells.Columns.Count <> 1 Then MsgBox prompt:="Please select at least 2 cells in only column A": Exit Sub
        If Not RngSel.Cells.Column = 1 Then MsgBox prompt:="Please select at least 2 cells in column A": Exit Sub
    Dim stearCel As Range
        For Each stearCel In RngSel
         Let Ws.Range("B" & stearCel.row & "").Value = "Tried" ' To indicate I tried - this can be useful to see where it crashed
        Dim OOPObj  As Object
        On Error GoTo EyeEyeSkipper
         Set OOPObj = CreateObject("New:" & stearCel.Value & "")
         Let Ws.Range("D" & stearCel.row & "").Value = TypeName(OOPObj)
         Let Application.DisplayAlerts = False
         ThisWorkbook.Save ' This is done to save all got so far incase Excel crashes on next loop or below
         Let Application.DisplayAlerts = True
        On Error Resume Next
        OOPObj.Close
        On Error GoTo 0
        Set OOPObj = Nothing
    EyeEyeSkipper:
        On Error GoTo -1
        On Error GoTo 0
        Next stearCel
    End Sub
    
    Last edited by DocAElstein; 03-29-2025 at 03:26 AM.

  2. #2
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10

    bb

    xnm ccy cy
    Last edited by DocAElstein; 10-20-2024 at 11:18 PM.

  3. #3
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10

    Test for a EileenLounge post 1 (Review of a similar older Thread, which failed to solve the problem)

    Review of a similar older Thread, which failed to solve the problem.




    Hi
    I thought it might be of general subject interest and helpful for future reference to mention that we had this exact same question from Yasser in 2019 ,
    (although it took us most of that Thread to figure out what he wanted, which was to get VBA to do something like when we manually click that Clear All Button .
    In the meantime we got a bit more insight into what The Windows Clipboard is really all about: It seems we are not strictly playing with a clipboard here, since there is only one, and that thing often referred to as the Office Clipboard aint really part of the The Windows Clipboard : What we are doing here is messing with something that makes its own limited copies of things last set to go on The Windows Clipboard , (in many cases, especially in Excel, those things never get there, ( there in the real clipboard that is) until a Paste. )
    We are messing with something that could also be described as a specific viewer of the phenomena that is The Windows Clipboard
    Also if you have multiple versions of Office open, they will all make their own independent copy of what is sent or set to be sent to the windows clipboard, but all our coding attempts so far will just clear stuff in the version its running in. That last bit is perhaps an important point that might be worth saying again a bit differently: Say I have Excel open from Office 2003, and I have word open from Office 2007. I then go somewhere, (anywhere, does not have to be anywhere in particular other than in Windows ), and I copy a word, Alan. That now appears in two list, one in each of the open Office versions: https://i.postimg.cc/nrhXLb56/A-Clip...ce-version.jpg
    But if I use just one of the two Clear All Buttons, then it only is cleared from that list. So that is telling us again that each of the two things is monitoring and making its own copy of what is going or set to be going to The Windows Clipboard
    (Some quirky contradiction like things do exist however. For example after using either Clear All button in one of the Offices, you will then no longer be able to do a simple windows Paste operation, even if things were copied from , and are still showing in the list in the other Office. So somehow either button does have the side effect of clearing the windows clipboard)

    So there is no single Office Clipboard in the way that there is a single windows clipboard.

    I am not trying to be annoyingly pedantic, - I just think it helps to understand things a bit better, which might lead to better and more interesting and clear solutions . Maybe calling it an Office’s Clipboard monitor might be better.
    A confusing quirk is that messing with it might effect the thing its monitoring. Maybe a bit like a old analogue pressure meter measuring some very high pressure large gas tank, and because of some badly designed leaking spaghetti dependency chains, if you mess with the monitor you might cause the tank to explode!

    Anyways, manipulating any Office’s Clipboard monitor thing in any direct way with VBA I have yet to see done.
    Smarter people have told me that third party software that tries to claim to be some clipboard monitor or other are a bit iffy.
    I think throughout we are concentrating here on just getting that button clicked, at some higher accessible interface level.
    _._________

    Back in 2019 we had a few of the mysterious API codings offered, big ones, most of which I think seemed to come from an Arab guy, who is an Author of a lot of these API thingies, Jaafar Tribak. I fiddled around, admittedly blindly, and got a version to work across Office versions 2003 2007 2010, (which was all I had at the time). It’s still was mostly Jaafar Tribak’s big coding and I was/am no the wiser how it works.
    In the light of this Thread, and also just re reading all the previous stuff, I did some minor changes/ updates, and this is probably "my" latest attempt – its still mostly from the mysterious big versions from Jaafar Tribak, which seemed to have been the standard used for many years. )


    We hit a brick wall back then, in 2019, as we could not get it working in Office 2016. So Yasser went off to mrexcel.com and got some interesting info from Jaafar Tribak , who tried but failed still to get it working in Office 2016. (Back then he only had Office versions 2007 2010 and 2013)
    (That mrexcel thread has got a bit messed up by a forum software update, so I tried to make a repaired summarized copy of it pulling out the important bits here )

    Back in 2019, the persistent error ( In Office 2016 ) with "my" coding and a few of the bigger codings offered by Jaafar Tribak at mrexcel was "Object doesn't support this property or method 'Error 438' " at the line
    Call oIA.accDoDefaultAction(vKid).
    For all previous Office version, that code line did not error, and that is the code line in the previous big codings that does the clearing, that is to say does the same as manually clicking that Clear All button in the Office’s Clipboard viewer, ( which incidentally must be open for any of the codings so far to work. I noticed on my recent review that it does not always get opened as it should by the previous codings, and I added a small mod that seems to overcome that problem)

    The only reason for this Office 2016 problem at the time that Jaafar Tribak could think of was that the hierarchy of the accessible buttons in the office clipboard had changed for Office 2016. My thinking was that something quirky was going on as we weren’t getting at any kid from the relevant interface out of the COM wrapper that should have that interface of the active accessibles…… :innocent:
    _.____________


    In the meantime I have got some 2013 Office versions and one 2016 versions, so I thought I would
    _ a) take a re look at the previous Threads
    and
    _b) a look at this recent one( the one I am writing in now) …..


    ….. maybe in the next post……
    Last edited by DocAElstein; 10-29-2024 at 11:36 AM.

  4. #4
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    ….. continued from the last two posts…..


    I am going to take a Layman guess for now that we can forget 32Bit / 64Bit issues, and that this attempt from me could be a new small coding version that will do the job from Office 2003 upwards. (It’s in the uploaded File also - Sub small_20202024_ClearOfficeClipBoard_() )
    I tested it so far on quite a few computers with operating systems XP, Vista Windows 7 8.1 10 and 11 and Office versions 2003 2007 2010 2013. Unfortunately I only have one higher version Office, 2016. It works on that.
    The important difference between mine and what Hans found is just this bit
    Code:
     '   coding change for Office versions at  --  Office 2016  ==
        If CLng(Val(Application.Version)) < 16 Then
    ' --For Office versions 2003 2007 2010 2013 ----------------------------------------
            For j = 1 To 4         '      J =    1  2  3  4
             AccessibleChildren avAcc, Choose(j, 0, 3, 0, 3), 1, avAcc, 1
            Next
         avAcc.accDoDefaultAction 2&  '           This seems to do the clearing   It will NOT error if viewer pain is already  Cleared                  1& for paste
    ' ----------------------------------------------------------------------------------
        Else
    ' ==For Office versions 2016 and higher ==============================================
            For j = 1 To 7      '           J =  1  2  3  4  5  6  7
             AccessibleChildren avAcc, Choose(j, 0, 3, 0, 3, 0, 3, 1), 1, avAcc, 1
            Next
         avAcc.accDoDefaultAction 0& '            This seems to do the clearing   It WILL error if viewer pain is already  Cleared
        End If ' =======================================================================
    So I have just a slightly changed section for Office 2013 and lower.

    I would welcome
    _1) any comments, generally
    as well as
    _2) if anyone passing could try that coding and tell me if it worked or not and at the same time tell me their version info.,( OS and Office). That would be particularly useful for newer versions, also 64 Bit versions if anyone has them.
    _3) Based on what we have seen and learnt with these more recent small codings, I wonder if anyone has any ideas on how to get the previous big coding types to work on Office 2016 upwards. I ask this because the big codings seem to be doing things a bit differently, and it could be useful to have the different coding available as an alternative, for example to try if for some reason the small ones one day did not work



    Some minor observations:
    (_(i) This is perhaps obvious from the discussions so far, but just to make sure and clear: The coding Hans found does not work in Offices 2013 and lower : In the loop at J = 6 I get the run time error '424' Object needed )
    _(ii)
    Quote Originally Posted by SpeakEasy post_id=319225 time=1721760469 user_id=8741
    the code as written will error if there is nothing in the Office Clipboard
    I can confirm that also for my coding on my Office 2016. However my coding does not error for Office versions 2013 and lower. Maybe that tells someone something, (of course for Office 2016 and higher my coding and the one Hans found are pretty well doing the same, but for Office 2013 and lower mine does it a bit differently, as seen in the snippet above)
    _ (iii) I don’t see any obvious difference in how a typical Offices Clipboard viewer pain looks like across the Office versions 2003 2007 2010 2013 2016 that might explain why the coding needs to be different from Office 2016: They all look a bit different to my layman eye?




    Alan
    Last edited by DocAElstein; 10-29-2024 at 11:40 AM. Reason: Test Post for an EileenLounge post PART 3

  5. #5
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    .c, cxn n
    Last edited by DocAElstein; 04-16-2024 at 09:30 PM.

  6. #6
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    later

  7. #7
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    This is post
    https://www.excelfox.com/forum/showt...ll=1#post24124
    https://www.excelfox.com/forum/showthread.php/2559-Notes-tests-text-files-manipulation-of-text-files-in-Excel-and-with-Excel-VBA-CSV-stuff?p=24124&viewfull=1#post24124
    https://www.excelfox.com/forum/showt...ge12#post24124
    https://www.excelfox.com/forum/showthread.php/2559-Notes-tests-text-files-manipulation-of-text-files-in-Excel-and-with-Excel-VBA-CSV-stuff/page12#post24124





    In support of these main forum posts
    https://www.excelfox.com/forum/showt...ge12#post24048
    https://eileenslounge.com/viewtopic....314920#p314920


    Similar to a post or two previously , just a bit more complicated, the full text in a cell may have these sort of forms, (4 cell examples are shown)
    Code:
    Address.Country -- PKEY_Address_Country
    //  Type:     String -- VT_LPWSTR  (For variants: VT_BSTR)
    //  FormatID: {C07B4199-E1DF-4493-B1E1-DE5946FB58F8}, 100
    DEFINE_PROPERTYKEY(PKEY_Address_Country, 0xC07B4199, 0xE1DF, 0x4493, 0xB1, 0xE1, 0xDE, 0x59, 0x46, 0xFB, 0x58, 0xF8, 100);
    #define INIT_PKEY_Address_Country { { 0xC07B4199, 0xE1DF, 0x4493, 0xB1, 0xE1, 0xDE, 0x59, 0x46, 0xFB, 0x58, 0xF8 }, 100 }
    
    
    Audio.Compression -- PKEY_Audio_Compression
    //  Type:     String -- VT_LPWSTR  (For variants: VT_BSTR)
    //  FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
    //
    //  
    DEFINE_PROPERTYKEY(PKEY_Audio_Compression, 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 10);
    #define INIT_PKEY_Audio_Compression { { 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03 }, 10 }
    
    
    IsSendToTarget -- PKEY_IsSendToTarget
    //  Type:     Boolean -- VT_BOOL
    //  FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 33
    //
    //  Provided by certain shell folders. Return TRUE if the folder is a valid Send To target.
    DEFINE_PROPERTYKEY(PKEY_IsSendToTarget, 0x28636AA6, 0x953D, 0x11D2, 0xB5, 0xD6, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0, 33);
    #define INIT_PKEY_IsSendToTarget { { 0x28636AA6, 0x953D, 0x11D2, 0xB5, 0xD6, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0 }, 33 }
    
    
    TitleSortOverride -- PKEY_TitleSortOverride
    //  Type:     String -- VT_LPWSTR  (For variants: VT_BSTR)  Legacy code may treat this as VT_LPSTR.
    //  FormatID: {F0F7984D-222E-4AD2-82AB-1DD8EA40E57E}, 300 (PIDSI_TITLE_SORT_OVERRIDE)
    //  
    //  This optional string value allows for overriding the standard sort order of System.Title.
    //  This is very important for proper sorting of music files in Japanese which cannot be
    //  correctly sorted phonetically (the user-expected ordering) without this field.
    //  It can also be used for customizing sorting in non-East Asian scenarios,
    //  such as allowing the user to remove articles for sorting purposes.
    DEFINE_PROPERTYKEY(PKEY_TitleSortOverride, 0xF0F7984D, 0x222E, 0x4AD2, 0x82, 0xAB, 0x1D, 0xD8, 0xEA, 0x40, 0xE5, 0x7E, 300);
    #define INIT_PKEY_TitleSortOverride { { 0xF0F7984D, 0x222E, 0x4AD2, 0x82, 0xAB, 0x1D, 0xD8, 0xEA, 0x40, 0xE5, 0x7E }, 300 }
    What I want is the SCIDS, aHoy, aHoy ( https://www.youtube.com/watch?v=DDg1hy6VhxY&t=110s
    https://eileenslounge.com/viewtopic....314905#p314905
    )

    I took a more fuller look those,
    Code:
     '   https://www.excelfox.com/forum/showthread.php/2909-Appendix-Thread-Evaluate-Range-(-Codes-for-other-Threads-HTML-Tables-etc-)?p=24049&viewfull=1#post24049
    Sub CheckCharacters()  '  Cells  A2  A8  A288  A377
     Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(Range("A2").Value)
     Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(Range("A8").Value)
     Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(Range("A288").Value)
     Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(Range("A377").Value)
    End Sub  '  see worksheet  WotchaGotInString  4 Mrz Results
    For the results, see worksheet WotchaGotInString 4 Mrz Results in the uploaded workbook
    Here again parts around the 4 examples simple text forms
    Cell A2
    Code:
    FormatID: {C07B4199-E1DF-4493-B1E1-DE5946FB58F8}, 100
    112           I	73
    113           D	68
    114           :	58
    115            	32
    116           {	123
    117           C	67
    118           0	48
    119           7	55
    120           B	66
    121           4	52
    122           1	49
    123           9	57
    124           9	57
    125           -	45
    126           E	69
    127           1	49
    128           D	68
    129           F	70
    130           -	45
    131           4	52
    132           4	52
    133           9	57
    134           3	51
    135           -	45
    136           B	66
    137           1	49
    138           E	69
    139           1	49
    140           -	45
    141           D	68
    142           E	69
    143           5	53
    144           9	57
    145           4	52
    146           6	54
    147           F	70
    148           B	66
    149           5	53
    150           8	56
    151           F	70
    152           8	56
    153           }	125
    154           ,	44
    155            	32
    156           1	49
    157           0	48
    158           0	48
    "159           
    "	13
    "160           
    "	10
    161           D	68
    162           E	69
    163           F	70
    Cell A8
    Code:
    FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
    116           I	73
    117           D	68
    118           :	58
    119            	32
    120           (	40
    121           F	70
    122           M	77
    123           T	84
    124           I	73
    125           D	68
    126           _	95
    127           A	65
    128           u	117
    129           d	100
    130           i	105
    131           o	111
    132           S	83
    133           u	117
    134           m	109
    135           m	109
    136           a	97
    137           r	114
    138           y	121
    139           I	73
    140           n	110
    141           f	102
    142           o	111
    143           r	114
    144           m	109
    145           a	97
    146           t	116
    147           i	105
    148           o	111
    149           n	110
    150           )	41
    151            	32
    152           {	123
    153           6	54
    154           4	52
    155           4	52
    156           4	52
    157           0	48
    158           4	52
    159           9	57
    160           0	48
    161           -	45
    162           4	52
    163           C	67
    164           8	56
    165           B	66
    166           -	45
    167           1	49
    168           1	49
    169           D	68
    170           1	49
    171           -	45
    172           8	56
    173           B	66
    174           7	55
    175           0	48
    176           -	45
    177           0	48
    178           8	56
    179           0	48
    180           0	48
    181           3	51
    182           6	54
    183           B	66
    184           1	49
    185           1	49
    186           A	65
    187           0	48
    188           3	51
    189           }	125
    190           ,	44
    191            	32
    192           1	49
    193           0	48
    194            	32
    195           (	40
    196           P	80
    197           I	73
    198           D	68
    199           A	65
    200           S	83
    201           I	73
    202           _	95
    203           C	67
    204           O	79
    205           M	77
    206           P	80
    207           R	82
    208           E	69
    209           S	83
    210           S	83
    211           I	73
    212           O	79
    213           N	78
    214           )	41
    "215           
    "	13
    "216           
    "	10
    Cell A288
    Code:
     FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 33
    84           I	73
    85           D	68
    86           :	58
    87            	32
    88           (	40
    89           F	70
    90           M	77
    91           T	84
    92           I	73
    93           D	68
    94           _	95
    95           S	83
    96           h	104
    97           e	101
    98           l	108
    99           l	108
    100           D	68
    101           e	101
    102           t	116
    103           a	97
    104           i	105
    105           l	108
    106           s	115
    107           )	41
    108            	32
    109           {	123
    110           2	50
    111           8	56
    112           6	54
    113           3	51
    114           6	54
    115           A	65
    116           A	65
    117           6	54
    118           -	45
    119           9	57
    120           5	53
    121           3	51
    122           D	68
    123           -	45
    124           1	49
    125           1	49
    126           D	68
    127           2	50
    128           -	45
    129           B	66
    130           5	53
    131           D	68
    132           6	54
    133           -	45
    134           0	48
    135           0	48
    136           C	67
    137           0	48
    138           4	52
    139           F	70
    140           D	68
    141           9	57
    142           1	49
    143           8	56
    144           D	68
    145           0	48
    146           }	125
    147           ,	44
    148            	32
    149           3	51
    150           3	51
    "151            "	13
    "152           
    "	10
    Cell A377
    Code:
     FormatID: {F0F7984D-222E-4AD2-82AB-1DD8EA40E57E}, 300 (PIDSI_TITLE_SORT_OVERRIDE)
    155           a	97
    156           t	116
    157           I	73
    158           D	68
    159           :	58
    160            	32
    161           {	123
    162           F	70
    163           0	48
    164           F	70
    165           7	55
    166           9	57
    167           8	56
    168           4	52
    169           D	68
    170           -	45
    171           2	50
    172           2	50
    173           2	50
    174           E	69
    175           -	45
    176           4	52
    177           A	65
    178           D	68
    179           2	50
    180           -	45
    181           8	56
    182           2	50
    183           A	65
    184           B	66
    185           -	45
    186           1	49
    187           D	68
    188           D	68
    189           8	56
    190           E	69
    191           A	65
    192           4	52
    193           0	48
    194           E	69
    195           5	53
    196           7	55
    197           E	69
    198           }	125
    199           ,	44
    200            	32
    201           3	51
    202           0	48
    203           0	48
    204            	32
    205           (	40
    206           P	80
    207           I	73
    208           D	68
    209           S	83
    210           I	73
    211           _	95
    212           T	84
    213           I	73
    214           T	84
    215           L	76
    216           E	69
    217           _	95
    218           S	83
    219           O	79
    220           R	82
    221           T	84
    222           _	95
    223           O	79
    224           V	86
    225           E	69
    226           R	82
    227           R	82
    228           I	73
    229           D	68
    230           E	69
    231           )	41
    "232            "	13
    "233           
    "	10
    The conclusion from examination of those text parts, is that there are no surprises such as strange "invisible coding". The line separator is the typical pair, vbCr & vbLf
    So we can simply look at these 4 lines, when thinking of how to get at the SCIDS, (and the second one I show again the whole cell of it, just to remind of how the full strings containing the lines of interest look like)
    Code:
     FormatID: {C07B4199-E1DF-4493-B1E1-DE5946FB58F8}, 100
    FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
    FormatID: (FMTID_ShellDetails) {28636AA6-953D-11D2-B5D6-00C04FD918D0}, 33
    FormatID: {F0F7984D-222E-4AD2-82AB-1DD8EA40E57E}, 300 (PIDSI_TITLE_SORT_OVERRIDE) 
    
    Audio.Compression -- PKEY_Audio_Compression
    //  Type:     String -- VT_LPWSTR  (For variants: VT_BSTR)
    //  FormatID: (FMTID_AudioSummaryInformation) {64440490-4C8B-11D1-8B70-080036B11A03}, 10 (PIDASI_COMPRESSION)
    //
    //  
    DEFINE_PROPERTYKEY(PKEY_Audio_Compression, 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 10);
    #define INIT_PKEY_Audio_Compression { { 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03 }, 10 }
    So we will check that out in the next post
    Last edited by DocAElstein; 04-16-2024 at 09:34 PM.

  8. #8
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    Later

  9. #9
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    Problem getting links to this post
    Last edited by DocAElstein; 03-29-2025 at 01:24 PM.

  10. #10
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10
    Later

Similar Threads

  1. Some Date Notes and Tests
    By DocAElstein in forum Test Area
    Replies: 5
    Last Post: 03-26-2025, 02:56 AM
  2. Replies: 116
    Last Post: 02-23-2025, 12:13 AM
  3. Replies: 21
    Last Post: 12-15-2024, 07:13 PM
  4. Replies: 42
    Last Post: 05-29-2023, 01:19 PM
  5. Replies: 11
    Last Post: 10-13-2013, 10:53 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •