This is post
https://www.excelfox.com/forum/showt...ull=#post23972
https://www.excelfox.com/forum/showthread.php/2951-TestsExplorerWSO?p=23971&viewfull=1#post23972
https://www.excelfox.com/forum/showt...age4#post23972
https://www.excelfox.com/forum/showthread.php/2951-TestsExplorerWSO/page4#post239729
Some extra notes for this forum post
https://eileenslounge.com/viewtopic....313961#p313961 https://eileenslounge.com/viewtopic....313971#p313971
Originally Posted by
SpeakEasy
https://eileenslounge.com/viewtopic....313961#p313961
>
How? By uising the (hidden) ExtendedProperty property ...
… these do not match (generally) the GetDetailsOf property names. So if you want the full list you'll need to get hold of propkey.h, a header file in the Windows SDK. That file currently lists over 1000 extended properties (although many are not related to files or folders)
Microsoft Windows SDK
This is one of those Microsoft things that no one understands because it is too vague and open to interpretation and later change to whatever it ever was, but people who used something that may be somehow or was at some time part of whatever it is, or may have been at any time, will use words as if they know what it is, even though that is impossible. It might be just about possible to say it has things, such as important lists not so typically available or talked about information but that might be necessary for a software developer to make something using Microsoft stuff that might be to the benefit of Microsoft. So a sort of physiological trick to make useful information available to some people in a careful selective way: Microsoft don’t want people to get useful things of theirs working consistently too well. It’s partly useful background long time reliable windows stuff that Microsoft might use themselves but then try to wrap in a way that they can more easily control and sabotage later. It has some similar stuff and ideas to the equally mysterious .Net
[Joke]I think Mike (SpeakEasy) is a fifth columnist working for Microsoft, feeding us some secrets to gain our trust, then he will drop something on us that will trash all or computers forcing us all to get windows 12 which will just be a wrapper for an artificial intelligence that will take over and control us as its servants.[/joke]
Anyway, I found after downloading this , in it somewhere after downloading it, whatever it is, this file here
here: C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\propkey.h
https://i.postimg.cc/xdVmfPYz/C-Prog...-propkey-h.jpg
C Program Files (x86) Windows Kits 10 Include 10 0 22621 0 um propkey h.JPG
That appears to be something of as text file,
https://i.postimg.cc/6q9QGDf2/propkey-h-Properties.jpg
propkey h Properties.JPG
, which I opened with a text editor and saved as a text file
propkey h.txt https://app.box.com/s/q8klctlcfka8s1uecklbf15n75cxc3v2
Took a look at the text file, https://www.excelfox.com/forum/showt...V-stuff/page12
https://www.excelfox.com/forum/showt...ll=1#post23981 https://www.excelfox.com/forum/showt...ll=1#post23979
The TLDR
It’s nicely ordered in text sections like this
Code:
// Name: System.Size -- PKEY_Size
// Type: UInt64 -- VT_UI8
// FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 12 (PID_STG_SIZE)
//
//
DEFINE_PROPERTYKEY(PKEY_Size, 0xB725F130, 0x47EF, 0x101A, 0xA5, 0xF1, 0x02, 0x60, 0x8C, 0x9E, 0xEB, 0xAC, 12);
#define INIT_PKEY_Size { { 0xB725F130, 0x47EF, 0x101A, 0xA5, 0xF1, 0x02, 0x60, 0x8C, 0x9E, 0xEB, 0xAC }, 12 }
Did a macro , Sub ExtendedPropertiesList(), it…
_ REM 1 gets the text file as a long string
_ '1b splits the text up using something that appears to be used once for every property ,
// Name: System.
_ Rem 2 The macro then puts that array of text(string) elements as a simple list in the first column of an Excel file https://i.postimg.cc/QMtxzmJ8/Excel-...Proph-Keys.jpg , https://postimg.cc/sMkrQpLq/1ed786fd
( I remove wrap text with the macro , so as to make the list and those derived from part of the data a bit more manageable. That way I can reduce the column width and when I put anything in the next column, I don’t easily see all the text, but it is there if I need it. I am mainly interested in having the data somewhere for now.)
( _ Rem 3
I took look in detail at the exact characters in a few of those sections. There were no great surprises in terms of strange characters. https://www.excelfox.com/forum/showt...ll=1#post23981 )
_ Rem 4
This demonstrates why in this case a list in an Excel column can be useful, (which I might more usually avoid for performance reasons such as spreadsheet interactions being relatively slow, and simple text file alternative list would be easier to store, share etc.). The Evaluate Range very efficiently picks out the important name part of the propherkeys, for example in the above section example, that would be Size. Here is a full development of that Evaluate range solution, https://www.excelfox.com/forum/showt...ll=1#post23983
WSO_PropNamesExtended.xls https://app.box.com/s/sv5rxxtwv1v18ir3xmi6gdti8pawx0jq
Code:
' 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=23979&viewfull=1#post23979 https://www.excelfox.com/forum/showthread.php/2909-Appendix-Thread-Evaluate-Range-(-Codes-for-other-Threads-HTML-Tables-etc-)?p=23983&viewfull=1#post23983
Sub ExtendedPropertiesList()
' Rem 1 Get the text file as a long single string
Dim FileNum As Long: Let FileNum = FreeFile(1) ' https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/freefile-function
Dim PathAndFileName As String, TotalFile As String
Let PathAndFileName = ThisWorkbook.Path & Application.PathSeparator & "propkey h.txt" '
Open PathAndFileName For Binary As #FileNum 'Open Route to data. Binary is a fundamental type data input...
' Let TotalFile = Space(LOF(FileNum)) '....and wot receives it has to be a string of exactly the right length
'Get #FileNum, , TotalFile
' Or http://www.eileenslounge.com/viewtopic.php?p=295782&sid=f6dcab07c4d24e00e697fe4343dc7392#p295782
Let TotalFile = Input(LOF(FileNum), FileNum)
Close #FileNum
' 1b Split the Prophs
Dim arrProphs() As String: Let arrProphs() = Split(TotalFile, "// Name: System.", -1, vbBinaryCompare)
' Rem 2 Quick look at list
Dim LCnt As Long: Let LCnt = UBound(arrProphs())
Dim Rws() As Variant, Clms() As Variant, VertList() As Variant
Let Rws() = Evaluate("ROW(1:" & LCnt + 1 & ")/ROW(1:" & LCnt + 1 & ")")
Let Clms() = Evaluate("ROW(1:" & LCnt + 1 & ")")
Let VertList() = Application.Index(arrProphs(), Rws(), Clms())
Let Me.Range("A1:A" & LCnt & "") = VertList()
Me.Cells.WrapText = False
Rem 4
'' 2b) Look at some example props using function WtchaGot_Unic_NotMuchIfYaChoppedItOff
'' The next text is copied from cell A 350
'' "Size -- PKEY_Size
'' // Type: UInt64 -- VT_UI8
'' // FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 12 (PID_STG_SIZE)
'' //
'' //
'' DEFINE_PROPERTYKEY(PKEY_Size, 0xB725F130, 0x47EF, 0x101A, 0xA5, 0xF1, 0x02, 0x60, 0x8C, 0x9E, 0xEB, 0xAC, 12);
'' #define INIT_PKEY_Size { { 0xB725F130, 0x47EF, 0x101A, 0xA5, 0xF1, 0x02, 0x60, 0x8C, 0x9E, 0xEB, 0xAC }, 12 }
''
'' "
'' The next text is copied from watch window at arrProphs()(349)
'' : arrProphs()(349) : "Size -- PKEY_Size
'' // Type: UInt64 -- VT_UI8
'' // FormatID: (FMTID_Storage) {B725F130-47EF-101A-A5F1-02608C9EEBAC}, 12 (PID_STG_SIZE)
'' //
'' //
'' DEFINE_PROPERTYKEY(PKE"
Rem 3
' Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(arrProphs()(349), "Size349")
Rem 4 Evaluate Range to get just the property to use in like .ExtendedProperty("System.Size")
Dim arrExtProps() As Variant '
Let arrExtProps() = Me.Evaluate("IF({1},LEFT(A2:A1055,SEARCH("" -- PKEY"",A2:A1055)-1))")
' 3b) Paste into a worksheet column
Let Me.Range("E2:E1055") = arrExtProps()
'Stop
End Sub
A simple coding puts that second column of propherkeys in a text file
https://www.excelfox.com/forum/showt...ll=1#post23981
Conclusions
So from the initial Investigations, It appears that we have 1054 of these things.
In the next posts we review and look in more detail
Bookmarks