Tag: winapi的

从Delphi调用SHGetSetSettings

我刚读了这个问题和这个问题 ,从那以后我一直试图在Delphi中调用SHGetSetSettings 。 这是shell32.dll一个function,但是在ShlObj.pas没有定义,所以我们需要编写自己的定义。 首先,我们需要翻译SHELLSTATE结构。 现在我只有有限的C经验,但我认为“:1”意味着结构的成员是一个位,也就是说,它们中的八个可以在一个字节中打包在一起。 我还假设DWORD = UINT = 32位无符号整数, LONG = int是32位有符号整数。 但后来我们遇到了一个问题:整个结构将占用228位,即28.5字节,这是……相当不可能,至少在Delphi中, sizeof(SomeRecord)必须是一个整数。 不过,我试图通过在末尾添加四个虚拟位来解决它。 232位= 29字节,这很好。 因此我试过了 PShellState = ^TShellState; TShellState = packed record Data1: cardinal; Data2: cardinal; Data3: cardinal; Data4: cardinal; Data5: cardinal; Data6: cardinal; Data7: cardinal; Data8: byte; // Actually a nibble would be sufficient end; 然后我宣布(为了以后的方便) const fShowAllObjects = […]